> 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). 디택션 로직에서 유용한 사용자 정의 속성, 예를 들어 해당 사용자에게 기대되는 권한 수준 등을 추가하는 것을 고려할 수 있습니다.

방법 알아보기 [저장된 enrichment 데이터를 여기에서 보기](/ko/enrichment.md#viewing-and-managing-enrichments).

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

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

* 작업이 수행된 디바이스가 휴대폰이고 행위자가 System Administrator가 아닐 때를 디택션합니다.
* 퇴사한 직원이 어떤 작업을 수행했는지 탐지하면, 오프보딩이 완료되지 않았음을 나타낼 수 있습니다.
* 디택션 구성에서 이벤트 행위자의 직함에 따라 알러트 심각도 수준을 조정합니다. 예를 들어, 다음과 같은 것을 사용할 수 있습니다 `INFO` System Administrator가 어떤 작업을 수행한 경우 INFO 심각도 수준을 사용하지만, `HIGH` 다른 역할의 사용자가 수행한 경우 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 제공자** 탭](#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 제공자" %}
**Enrichment Providers 화면에서 Okta 로그 소스 설정 후 Okta 프로필 구성**

1. Panther 콘솔의 왼쪽 탐색 표시줄에서 다음을 클릭합니다: **구성** > E**nrichment 제공자**.
2. 오른쪽 상단에서 다음을 클릭합니다: **새로 만들기**.
3. 다음을 클릭합니다: **Okta**.
4. 이미 생성한 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. 다음에서 **보강** 페이지에서 다음 오른쪽의 토글을 클릭합니다 **User Profiles** 및/또는 **디바이스 프로필** `켬`.
   * 켜 둔 각 토글에 대해 `켬`새로 고침 주기를 설정합니다 **새로 고침 주기(분)**&#xC774;는 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 콘솔의 왼쪽 탐색 표시줄에서 다음을 클릭합니다: **구성** > **로그 소스**.
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. 다음에서 **보강** 페이지에서 다음 오른쪽의 토글을 클릭합니다 **User Profiles** 및/또는 **디바이스 프로필** `켬`.
   * 켜 둔 각 토글에 대해 `켬`새로 고침 주기를 설정합니다 **새로 고침 주기(분)**&#xC774;는 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
fields:
    - 이름: match
      설명: 조회 테이블에서 일치시킬 키
      type: array
      element:
        type: string
    - 이름: id
      설명: 이 사용자의 Okta 내부 ID
      type: string
      표시자:
        - 행위자 ID
    - 이름: created
      설명: 사용자 레코드 생성 시간
      type: timestamp
      timeFormats:
        - rfc3339
    - 이름: activated
      설명: 사용자 레코드의 활성화 시간
      type: timestamp
      timeFormats:
        - rfc3339
    - 이름: statusChanged
      설명: 사용자 상태가 변경된 시간
      type: timestamp
      timeFormats:
        - rfc3339
    - 이름: lastLogin
      설명: 마지막 인증 시간
      type: timestamp
      timeFormats:
        - rfc3339
    - 이름: lastUpdated
      설명: 마지막 레코드 업데이트 시간
      type: timestamp
      timeFormats:
        - rfc3339
    - 이름: passwordChanged
      설명: 마지막 비밀번호 변경 시간
      type: timestamp
      timeFormats:
        - rfc3339
    - 이름: status
      설명: 사용자의 상태
      type: string
    - 이름: profile
      설명: Okta 사용자 프로필
      유형: json
```

### Okta.Devices

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

## 예시: 디택션에서 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
    Condition: Equals
    값: 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:

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

The question should be specific, self-contained, and written in natural language.
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.
