> For the complete documentation index, see [llms.txt](https://docs.panther.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.panther.com/ko/enrichment/okta.md).

# Okta 프로필

## 개요

Panther에서 Okta 로그 소스 통합을 구성하여 가져오도록 할 수 있습니다 [사용자 프로필](#okta.users) 및 [디바이스 프로필](#okta.devices) Panther에서 관리하는 Enrichment로 가져올 수 있습니다. 이는 프로필 및 디바이스 데이터를 디택션 로직과 검색 쿼리에서 사용할 수 있음을 의미합니다.

다음을 따라 Okta에서 사용자 프로필을 사용자 지정할 수 있습니다 [해당 문서](https://help.okta.com/en-us/Content/Topics/users-groups-profiles/usgp-add-custom-user-attributes.htm). 디택션 로직에서 유용한 사용자 지정 속성, 예를 들어 해당 사용자에게 기대되는 권한 수준 등을 추가하는 것을 고려할 수 있습니다.

다음 방법을 알아보세요 [저장된 보강 데이터를 여기에서 확인하는 방법](/ko/enrichment.md#viewing-and-managing-enrichments).

### 디택션 사용 사례 예시

디택션에서 Okta 사용자 및 디바이스 프로필 데이터를 활용할 수 있습니다. 다음 예시 사용 사례를 확인하세요:

* 어떤 작업이 수행된 디바이스가 휴대폰이고 행위자가 System Administrator가 아닌 경우를 탐지합니다.
* 작업이 퇴사한 직원에 의해 수행된 경우를 탐지하여 오프보딩이 완료되지 않았음을 나타낼 수 있습니다.
* 디택션의 구성에서 이벤트 행위자의 직함에 따라 알러트 심각도 수준을 조정합니다. 예를 들어, 다음과 같은 값을 사용할 수 있습니다. `INFO` 심각도 수준을 System Administrator가 어떤 작업을 수행한 경우에는 `HIGH` 다른 역할을 가진 사용자가 수행한 경우에는.

## Panther에서 Okta 사용자 및 디바이스 프로필을 설정하는 방법

Panther에서 Okta 로그 소스 통합을 처음 설정하는 동안, 또는 나중에 소스를 편집하여 Okta 사용자 및 디바이스 프로필을 구성할 수 있습니다.

어떤 방식이든 Okta 프로필 가져오기 설정을 켠 다음, 프로필 데이터가 새로 고쳐지길 원하는 주기를 설정합니다.

{% hint style="info" %}
Panther에서 Okta 사용자 및/또는 디바이스 프로필을 사용하려면 먼저(또는 동시에) Okta를 로그 소스로 온보딩해야 합니다. Okta 디바이스 또는 사용자 프로필 통합을 설정하는 것은 불가능합니다 *없이* Panther에서 Okta를 로그 소스로 온보딩하는 것.
{% endhint %}

### Okta 디바이스 프로필의 사전 요구 사항

* Okta 디바이스 프로필을 Panther로 가져오려면 다음이 필요합니다 [Okta Devices](https://www.okta.com/platform/devices/) 활성화되어 있어야 합니다.

### Okta 소스 설정 중 Panther에서 Okta 프로필 구성

* 다음을 따르세요: [Panther에서 새 Okta 소스를 만드는 방법에 대한 이 지침](/ko/data-onboarding/supported-logs/okta.md#how-to-onboard-okta-logs-to-panther), 다음에 특히 주의하면서 **사용자 프로필 사용** 및 **디바이스 프로필 활성화** 필드.

### Okta 소스 설정 후 Panther에서 Okta 프로필 구성

Panther에서 이미 Okta 로그 소스를 만든 후에도 Okta 프로필을 설정할 수 있으며, [다음의 **Enrichment Providers** 탭](#configure-okta-profiles-after-okta-log-source-setup-from-the-enrichment-providers-screen) 또는 [해당 **로그 소스** 탭](#configure-okta-profiles-after-okta-log-source-setup-from-the-log-sources-screen) 콘솔에서.

{% tabs %}
{% tab title="콘솔: Enrichment Providers" %}
**Enrichment Providers 화면에서 Okta 로그 소스 설정 후 Okta 프로필 구성**

1. Panther Console의 왼쪽 탐색 모음에서 **보강**.
2. 오른쪽 상단에서 다음을 클릭하세요: **새로 만들기**.
3. 클릭합니다 **Okta**.
4. Panther에 이미 생성된 Okta 로그 소스를 나열한 팝업 모달에서 프로필 데이터를 가져오고 싶은 항목을 클릭하세요.\
   ![An Available Okta Sources modal lists an Okta source called "test," which is circled. Below, there is a Done button.](/files/632700d37c526d03219196a66a69c0e622e913e3)
   * 아직 Okta 로그 소스를 설정하지 않았다면, 대신 다음을 따르세요 [Okta 로그를 Panther에 온보딩하는 방법](/ko/data-onboarding/supported-logs/okta.md#how-to-onboard-okta-logs-to-panther) 지침의 단계를 완료했습니다.
5. 다음 페이지에서 **보강** 페이지에서 오른쪽의 토글을 클릭합니다. **사용자 프로필** 및/또는 **디바이스 프로필** `켜기`.
   * 켜 둔 각 토글에 대해 `켜기`, 다음을 설정하세요 **새로고침 주기(분)**. 이는 Panther가 Okta에 저장된 내용으로 프로필 데이터를 업데이트하는 주기를 나타냅니다.

     <div align="left"><figure><img src="/files/abbbf6e83c52bfa743dd376facc50ccff2756799" alt="In the Enrichment settings box, there are toggles for User Profiles and Device Profiles. Next to each is a Refresh period (min) field." width="375"><figcaption></figcaption></figure></div>
6. 오른쪽 상단에서 다음을 클릭하세요: **저장**.
   {% endtab %}

{% tab title="콘솔: 로그 소스" %}
**Log Sources 화면에서 Okta 로그 소스 설정 후 Okta 프로필 구성**

1. Panther Console의 왼쪽 탐색 모음에서 **로그 소스**.
2. 프로필을 설정하려는 Okta 로그 소스를 찾아 이름을 클릭하세요.
3. 로그 소스 페이지의 오른쪽 상단 모서리에서 다음을 클릭합니다. **구성,** 그런 다음 **편집**\
   ![The Okta Sand Box log source page has Overview, Schemas, Health, and Filters tabs. On the right side, there is a Configuration button, with an arrow pointing from it to an Edit button.](/files/8eb83499703290149c1fdcbc11b96c076dc1963b)
4. 오른쪽 상단에서 다음을 클릭하세요: **보강**.
5. 다음 페이지에서 **보강** 페이지에서 오른쪽의 토글을 클릭합니다. **사용자 프로필** 및/또는 **디바이스 프로필** `켜기`.
   * 켜 둔 각 토글에 대해 `켜기`, 다음을 설정하세요 **새로고침 주기(분)**. 이는 Panther가 Okta에 저장된 내용으로 프로필 데이터를 업데이트하는 주기를 나타냅니다.

     <div align="left"><figure><img src="/files/abbbf6e83c52bfa743dd376facc50ccff2756799" alt="In the Enrichment settings box, there are toggles for User Profiles and Device Profiles. Next to each is a Refresh period (min) field." width="375"><figcaption></figcaption></figure></div>
6. 오른쪽 상단에서 다음을 클릭하세요: **저장**.
   {% endtab %}
   {% endtabs %}

## 지원되는 프로필 유형

Panther는 다음을 가져오는 것을 지원합니다 [사용자 프로필](#okta.users) 및 [디바이스 프로필](#okta.devices) Okta에서. 아래는 각 프로필 유형 데이터의 구조 방식을 나타내는 스키마입니다.

### Okta.Users

```yaml
스키마: Okta.Users
설명: Panther에서 관리하는 Okta 사용자 프로필
referenceURL: https://developer.okta.com/docs/reference/api/users/#list-users
필드:
    - 이름: match
      설명: 조회 테이블과 일치시킬 키
      유형: array
      요소:
        유형: string
    - 이름: id
      설명: 이 사용자의 Okta 내부 ID
      유형: string
      지표:
        - actor_id
    - 이름: created
      설명: 사용자 레코드 생성 시간
      유형: timestamp
      시간 형식:
        - rfc3339
    - name: activated
      설명: 사용자 레코드의 활성화 시간
      유형: timestamp
      시간 형식:
        - rfc3339
    - name: statusChanged
      설명: 사용자 상태가 변경된 시간
      유형: timestamp
      시간 형식:
        - rfc3339
    - name: lastLogin
      설명: 마지막 인증 시간
      유형: timestamp
      시간 형식:
        - rfc3339
    - name: lastUpdated
      설명: 마지막 레코드 업데이트 시간
      유형: timestamp
      시간 형식:
        - rfc3339
    - name: passwordChanged
      설명: 마지막 비밀번호 변경 시간
      유형: timestamp
      시간 형식:
        - rfc3339
    - 이름: status
      설명: 사용자의 상태
      유형: string
    - name: profile
      설명: Okta 사용자 프로필
      유형: json
```

### Okta.Devices

```yaml
스키마: Okta.Devices
설명: Panther에서 관리하는 Okta 디바이스 프로필
referenceURL: https://developer.okta.com/docs/reference/api/devices/#list-devices
필드:
    - 이름: match
      설명: 조회 테이블과 일치시킬 키
      유형: array
      요소:
        유형: string
    - 이름: id
      설명: 이 디바이스의 Okta 내부 ID
      유형: string
    - 이름: created
      설명: 디바이스 레코드 생성 시간
      유형: timestamp
      시간 형식:
        - rfc3339
    - name: lastUpdated
      설명: 마지막 레코드 업데이트 시간
      유형: timestamp
      시간 형식:
        - rfc3339
    - 이름: status
      설명: 디바이스 상태
      유형: string
    - name: resourceType
      설명: 디바이스 유형
      유형: string
    - name: resourceDisplayName
      description: 디바이스 이름
      유형: object
      필드:
        - 이름: value
          description: 디바이스 이름
          유형: string
        - name: sensitive
          설명: 민감한 경우 True
          유형: boolean
    - 이름: resourceId
      설명: 디바이스의 외부 ID
      유형: string
    - name: resourceAlternateId
      설명: 디바이스의 대체 외부 ID
      유형: string
    - name: profile
      설명: Okta 디바이스 프로필
      유형: json
    - name: users
      설명: 이 디바이스와 연결된 사용자
      유형: array
      요소:
        유형: object
        필드:
            - 이름: id
              설명: 이 사용자의 Okta 내부 ID
              유형: string
              지표:
                - actor_id
            - 이름: emails
              설명: 이 사용자와 연결된 이메일
              유형: array
              요소:
                유형: string
                지표:
                    - email
```

## 예시: 디택션에서 Okta 프로필 데이터 사용

Okta 사용자 또는 디바이스 프로필을 설정하고 데이터가 수집되면, 디택션 로직에서 해당 데이터를 참조하기 시작할 수 있습니다.

다음 Okta 사용자 프로필을 예로 들면:

```json
{
    "activated": "2023-02-22 20:14:57",
    "created": "2023-02-22 20:14:57",
    "id": "00u7364cqlAxlJrgX1d7",
    "lastlogin": "2023-02-22 20:28:05",
    "lastupdated": "2023-02-22 20:27:57",
    "match": [
        "00u7364cqlAxlJrgX1d7",
	"henry.ford@panther.com"
    ],
    "p_any_actor_ids": [
	"00u7364cqlAxlJrgX1d7"
    ],
    "p_any_emails": [
	"henry.ford@panther.com"
    ],
    "p_event_time": "2023-06-01 20:48:36.12",
    "p_log_type": "Okta.Users",
    "p_parse_time": "2023-06-01 20:48:36.12",
    "p_row_id": "623cde25b9568494cebbdfc118a310",
    "p_schema_version": 0,
    "passwordchanged": "2023-02-22 20:27:57",
    "profile": {
	"email": "henry.ford@panther.com",
	"firstName": "Henry",
	"lastName": "Ford",
	"login": "henry.ford@panther.com",
	"manager": "Joe Jacobs",
	"mobilePhone": null,
	"secondEmail": null
	},
    "status": "ACTIVE",
    "statuschanged": "2023-02-22 20:27:57"
}
```

그리고 다음 수신 이벤트:

```json
{
    "actorEmail": "henry.ford@panther.com",
    "action": "deleted_file"
}
```

디택션을 거치기 전에 이벤트는 Okta 프로필 데이터로 보강되어 다음과 같이 됩니다:

```json
{
    "actorEmail": "henry.ford@panther.com",
    "action": "deleted_file",
    "p_enrichment": {
    	"okta_users": {
    	    "actorEmail": {
    		"p_match": "henry.ford@panther.com",
                "activated": "2023-02-22 20:14:57",
	        "created": "2023-02-22 20:14:57",
		"id": "00u7364cqlAxlJrgX1d7",
		"lastlogin": "2023-02-22 20:28:05",
		"lastupdated": "2023-02-22 20:27:57",
		"match": [
		    "00u7364cqlAxlJrgX1d7",
		    "henry.ford@panther.com"
		],
		"p_any_actor_ids": [
		    "00u7364cqlAxlJrgX1d7"
		],
		"p_any_emails": [
		    "henry.ford@panther.com"
		],
		"passwordchanged": "2023-02-22 20:27:57",
		"profile": {
		    "email": "henry.ford@panther.com",
		    "firstName": "Henry",
		    "lastName": "Ford",
		    "login": "henry.ford@panther.com",
		    "manager": "Joe Jacobs",
		    "mobilePhone": null,
		    "secondEmail": null
		},
	        "status": "ACTIVE",
		"statuschanged": "2023-02-22 20:27:57"
    	    }
    	}
    }
}
```

그런 다음 다음과 같이 Okta 프로필 데이터를 참조하는 디택션을 작성할 수 있습니다:

{% tabs %}
{% tab title="Python" %}

```python
def 룰(event):
  userManager = deep_get(event, 'p_enrichment', 'okta_users', 'actorEmail', 'profile', 'manager')
  
  return userManager == 'Joe Jacobs'
```

{% endtab %}

{% tab title="YAML" %}

```yaml
디택션:
  - Enrichment:
      테이블: okta_users
      선택자: actorEmail
      필드 경로: profile.manager
    조건: 같음
    값: Joe Jacobs
```

{% endtab %}
{% endtabs %}


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.panther.com/ko/enrichment/okta.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
