Okta User Context ログを収集する

以下でサポートされています。

このドキュメントでは、サードパーティ API を使用して Google Security Operations フィードを設定し、Okta ユーザー コンテキスト ログを収集する方法について説明します。

始める前に

次の前提条件を満たしていることを確認します。

  • Google SecOps インスタンス
  • Okta テナントまたは管理コンソールへの特権アクセス
  • Okta での API トークン作成権限

IP 許可リストを構成する

フィードを作成する前に、Okta のファイアウォールまたはネットワーク設定で Google SecOps の IP 範囲を許可リストに登録する必要があります。

Google SecOps の IP 範囲を取得する

IP 範囲を Okta ユーザー コンテキストに追加する

  1. Okta 管理コンソールにログインします。
  2. [セキュリティ] > [ネットワーク] に移動します。
  3. [IP アドレス制限] で、[編集] をクリックします。
  4. 各 Google SecOps IP 範囲を CIDR 表記で信頼できる IP アドレスに追加します。
  5. [保存] をクリックします。

Okta User Context API へのアクセスを構成する

Google SecOps がユーザー コンテキスト データを取得できるようにするには、読み取り権限を持つ API トークンを作成する必要があります。

API トークンを作成する

  1. Okta 管理コンソールにログインします。
  2. [セキュリティ] > [API] に移動します。
  3. [トークン] タブを選択します。
  4. [トークンの作成] をクリックします。
  5. 次の構成の詳細を入力します。
    • 名前: わかりやすい名前を入力します(例: Google SecOps Integration)。
    • 説明(省略可): 説明を入力します。
  6. [トークンの作成] をクリックします。

API 認証情報を記録する

API トークンを作成すると、次の認証情報が届きます。

  • API トークン: API トークンの値(例: 00QCGr-1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1

必要な API 権限

API トークンには、Okta で次の権限が必要です。

権限/ロール アクセスレベル 目的
読み取り専用管理者 読み取り ユーザー プロファイル データにアクセスする
特権管理者 読み取り すべてのユーザーデータへの完全なアクセス

フィードを設定する

フィードを構成する手順は次のとおりです。

  1. [SIEM 設定] > [フィード] に移動します。
  2. [Add New Feed] をクリックします。
  3. 次のページで [単一フィードを設定] をクリックします。
  4. [フィード名] フィールドに、フィードの名前を入力します(例: Okta User Context)。
  5. [ソースタイプ] として [サードパーティ API] を選択します。
  6. [ログタイプ] として [Okta User Context] を選択します。
  7. [次へ] をクリックします。
  8. 次の入力パラメータの値を指定します。

    • Authentication HTTP header: 認証情報を次の形式で入力します。

      Authorization:SSWS your-api-token
      
      • 次に例を示します。Authorization:SSWS 00QCGr-1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1
    • API Hostname: Okta インスタンスの完全修飾ドメイン名(構成されている可能性のあるカスタム ドメインではなく、example.okta.com など)。

      • 次に例を示します。company.okta.com
    • Manager ID Reference Field(マネージャー ID 参照フィールド): Okta 以外の ID を使用してマネージャーを参照する場合に必要な ID(省略可)。

    • アセットの名前空間: アセットの名前空間

    • Ingestion labels: このフィードのイベントに適用されるラベル。

  9. [次へ] をクリックします。

  10. [Finalize] 画面で新しいフィードの設定を確認し、[送信] をクリックします。

設定が完了すると、フィードは Okta User Context インスタンスからログを時系列順に取得し始めます。

リージョン エンドポイント

Okta では、組織の地域に基づいて異なる API エンドポイントが使用されます。

地域 ベース URL / ホスト名
米国(デフォルト) {org-name}.okta.com
EU(EMEA) {org-name}.okta-emea.com
アジア太平洋 {org-name}.okta.com.au
プレビュー(テスト) {org-name}.oktapreview.com

Okta インスタンスのリージョンに対応するホスト名を使用します。

API レート上限

Okta API には次のレート制限があります。

  • デフォルトのレート制限: ほとんどのエンドポイントで 1 分あたり 600 件のリクエスト
  • システムログ API: 1 分あたり 60 件のリクエスト
  • ユーザー エンドポイント: 1 分あたり 600 件のリクエスト

Google SecOps は、指数バックオフを使用してレート制限を自動的に処理します。問題が発生した場合は、Okta サポートに連絡して API 上限を引き上げてください。

UDM マッピング テーブル

ログフィールド UDM マッピング ロジック
activated event.idm.entity.entity.labels activated が存在する場合、その値はキー「activated」で Key-Value ペアとして追加されます。
created event.idm.entity.entity.labels created が存在する場合、その値はキー「created」で Key-Value ペアとして追加されます。
profile.costCenter event.idm.entity.entity.labels profile.costCenter が存在する場合、その値はキー「costCenter」で Key-Value ペアとして追加されます。
profile.Function event.idm.entity.entity.labels profile.Function が存在する場合、その値はキー「Function」で Key-Value ペアとして追加されます。
statusChanged event.idm.entity.entity.labels statusChanged が存在する場合、その値はキー「statusChanged」で Key-Value ペアとして追加されます。
type.id event.idm.entity.entity.labels type.id が存在する場合は、その値がキー「type_id」で Key-Value ペアとして追加されます。
profile.location event.idm.entity.entity.location.name profile.location から取得された値。
profile.AD_ObjectGUID event.idm.entity.entity.user.attribute.labels profile.AD_ObjectGUID が存在する場合、その値はキー「AD_ObjectGUID」で Key-Value ペアとして追加されます。
profile.ADpwdLastSet event.idm.entity.entity.user.attribute.labels profile.ADpwdLastSet が存在する場合、その値はキー「ADpwdLastSet」で Key-Value ペアとして追加されます。
profile.AFF_Code event.idm.entity.entity.user.attribute.labels profile.AFF_Code が存在する場合、その値はキー「AFF_Code」で Key-Value ペアとして追加されます。
profile.Desk_Location_WD event.idm.entity.entity.user.attribute.labels profile.Desk_Location_WD が存在する場合、その値はキー「Desk_Location_WD」で Key-Value ペアとして追加されます。
profile.Mailing_Address_WD event.idm.entity.entity.user.attribute.labels profile.Mailing_Address_WD が存在する場合、その値はキー「Mailing_Address_WD」で Key-Value ペアとして追加されます。
profile.Manager_UPN event.idm.entity.entity.user.attribute.labels profile.Manager_UPN が存在する場合、その値はキー「Manager_UPN」で Key-Value ペアとして追加されます。
profile.PRIVATE_CONF_Profile event.idm.entity.entity.user.attribute.labels profile.PRIVATE_CONF_Profile が存在する場合、その値はキー「PRIVATE_CONF_Profile」で Key-Value ペアとして追加されます。
profile.Region_WD event.idm.entity.entity.user.attribute.labels profile.Region_WD が存在する場合、その値はキー「Region_WD」で Key-Value ペアとして追加されます。
profile.Subsidiary_Company event.idm.entity.entity.user.attribute.labels profile.Subsidiary_Company が存在する場合、その値はキー「Subsidiary_Company」で Key-Value ペアとして追加されます。
profile.Telephone_Work event.idm.entity.entity.user.attribute.labels profile.Telephone_Work が存在する場合、その値はキー「Telephone_Work」で Key-Value ペアとして追加されます。
profile.Temp_WD_Primary_Email event.idm.entity.entity.user.attribute.labels profile.Temp_WD_Primary_Email が存在する場合、その値はキー「Temp_WD_Primary_Email」で Key-Value ペアとして追加されます。
profile.VMware_WS1_Username event.idm.entity.entity.user.attribute.labels profile.VMware_WS1_Username が存在する場合、その値はキー「VMware_WS1_Username」で Key-Value ペアとして追加されます。
profile.Work_Street_Address_WD event.idm.entity.entity.user.attribute.labels profile.Work_Street_Address_WD が存在する場合、その値はキー「Work_Street_Address_WD」で Key-Value ペアとして追加されます。
profile.Workato_WD_Primary_Email event.idm.entity.entity.user.attribute.labels profile.Workato_WD_Primary_Email が存在する場合、その値はキー「Workato_WD_Primary_Email」で Key-Value ペアとして追加されます。
profile.Workday_ID event.idm.entity.entity.user.attribute.labels profile.Workday_ID が存在する場合、その値はキー「Workday_ID」で Key-Value ペアとして追加されます。
profile.Worker_Type_WD event.idm.entity.entity.user.attribute.labels profile.Worker_Type_WD が存在する場合、その値はキー「Worker_Type_WD」で Key-Value ペアとして追加されます。
profile.businessUnit event.idm.entity.entity.user.attribute.labels profile.businessUnit が存在する場合、その値はキー「businessUnit」で Key-Value ペアとして追加されます。
profile.companyName event.idm.entity.entity.user.attribute.labels profile.companyName が存在する場合、その値はキー「companyName」で Key-Value ペアとして追加されます。
profile.contingentSupplierName event.idm.entity.entity.user.attribute.labels profile.contingentSupplierName が存在する場合、その値はキー「contingentSupplierName」で Key-Value ペアとして追加されます。
profile.conversationId event.idm.entity.entity.user.attribute.labels profile.conversationId が存在する場合、その値はキー「conversationId」で Key-Value ペアとして追加されます。
profile.distinguishedName event.idm.entity.entity.user.attribute.labels profile.distinguishedName が存在する場合、その値はキー「distinguishedName」で Key-Value ペアとして追加されます。
profile.division event.idm.entity.entity.user.attribute.labels profile.division が存在する場合、その値はキー「division」で Key-Value ペアとして追加されます。
profile.emailPrefix event.idm.entity.entity.user.attribute.labels profile.emailPrefix が存在する場合、その値はキー「emailPrefix」で Key-Value ペアとして追加されます。
profile.employeeType event.idm.entity.entity.user.attribute.labels profile.employeeType が存在する場合、その値はキー「employeeType」で Key-Value ペアとして追加されます。
profile.homePostalAddress event.idm.entity.entity.user.attribute.labels profile.homePostalAddress が存在する場合、その値はキー「homePostalAddress」で Key-Value ペアとして追加されます。
profile.isManager event.idm.entity.entity.user.attribute.labels profile.isManager が存在する場合、その値はキー「isManager」で Key-Value ペアとして追加されます。
lastLogin event.idm.entity.entity.user.attribute.labels lastLogin が存在する場合、その値はキー「lastLogin」で Key-Value ペアとして追加されます。
profile.leaveOfAbsence event.idm.entity.entity.user.attribute.labels profile.leaveOfAbsence が存在する場合、その値はキー「leaveOfAbsence」で Key-Value ペアとして追加されます。
profile.managerDn event.idm.entity.entity.user.attribute.labels profile.managerDn が存在する場合、その値はキー「managerDn」で Key-Value ペアとして追加されます。
profile.payGroup event.idm.entity.entity.user.attribute.labels profile.payGroup が存在する場合、その値はキー「payGroup」で Key-Value ペアとして追加されます。
profile.wdemployeeID event.idm.entity.entity.user.attribute.labels profile.wdemployeeID が存在する場合、その値はキー「wdemployeeID」で Key-Value ペアとして追加されます。
profile.zipCode event.idm.entity.entity.user.attribute.labels profile.zipCode が存在する場合は、その値がキー「zipCode」で Key-Value ペアとして追加されます。
profile.userType event.idm.entity.entity.user.attribute.roles profile.userType が存在する場合は、その値がロールの配列に追加されます。
profile.organizationprofile.company event.idm.entity.entity.user.company_name profile.organization から取得された値。profile.organization が存在しない場合は profile.company
profile.department event.idm.entity.entity.user.department profile.department から取得された値。
profile.emailprofile.secondEmailprofile.login event.idm.entity.entity.user.email_addresses profile.emailprofile.secondEmailprofile.login の値(メールで重複がない場合)がこのフィールドに統合されます。
profile.employeeNumber event.idm.entity.entity.user.employee_id profile.employeeNumber から取得された値。
profile.firstNameprofile.Preferred_First_Name event.idm.entity.entity.user.first_name profile.firstName から取得された値。profile.firstName が存在しない場合は profile.Preferred_First_Name
profile.EmployeeWorkGroup event.idm.entity.entity.user.group_identifiers profile.EmployeeWorkGroup から取得された値。
profile.HireDateprofile.hiredate event.idm.entity.entity.user.hire_date profile.HireDate が存在しない場合、値は profile.HireDate または profile.hiredate から解析されます。
profile.lastNameprofile.preferred_Last_Name event.idm.entity.entity.user.last_name profile.lastName または profile.preferred_Last_Name のいずれかが存在する場合、profile.lastName から取得された値。
lastLogin event.idm.entity.entity.user.last_login_time 値は lastLogin から解析されます。
passwordChanged event.idm.entity.entity.user.last_password_change_time 値は passwordChanged から解析されます。
profile.managerprofile.managerEmailprofile.managerId event.idm.entity.entity.user.managers profile.manageruser_display_nameprofile.managerEmailemail_addressesprofile.managerIdemployee_id を含むオブジェクトが入力されます。
profile.cityprofile.firstBaseCity event.idm.entity.entity.user.office_address.city profile.city から取得された値。profile.city が存在しない場合は profile.firstBaseCity
profile.countryCodeprofile.country event.idm.entity.entity.user.office_address.country_or_region profile.countryCode から取得された値。profile.countryCode が存在しない場合は profile.country
profile.streetAddress event.idm.entity.entity.user.personal_address.name profile.streetAddress から取得された値。
profile.state event.idm.entity.entity.user.personal_address.state profile.state から取得された値。
profile.primaryPhoneprofile.mobilePhoneprofile.mobile event.idm.entity.entity.user.phone_numbers profile.primaryPhoneprofile.mobilePhoneprofile.mobile の値がこのフィールドに統合されます。
profile.terminationDateprofile.terminationdate event.idm.entity.entity.user.termination_date profile.terminationDate が存在しない場合、値は profile.terminationDate または profile.terminationdate から解析されます。
profile.title event.idm.entity.entity.user.title profile.title から取得された値。
status event.idm.entity.entity.user.user_authentication_status status からマッピング: ACTIVE/RECOVERY/LOCKED_OUT/PASSWORD_EXPIRED -> ACTIVESUSPENDED -> SUSPENDEDDEPROVISIONED -> DELETED、それ以外は UNKNOWN_AUTHENTICATION_STATUS
profile.displayName event.idm.entity.entity.user.user_display_name profile.displayName から取得された値。
profile.samAccountNameprofile.samaccountnameprofile.loginprofile.ldapUid event.idm.entity.entity.user.userid 優先順位 profile.samAccountNameprofile.samaccountnameprofile.login(メール以外の場合)、profile.ldapUidprofile.login がメール以外の場合)が入力されます。
event.idm.entity.metadata.entity_type USER に設定します。
id event.idm.entity.metadata.product_entity_id id から取得された値。
event.idm.entity.metadata.product_name Identity Cloud に設定します。
event.idm.entity.metadata.vendor_name Okta に設定します。

さらにサポートが必要な場合 コミュニティ メンバーや Google SecOps のプロフェッショナルから回答を得ることができます。