Okta を Google SecOps と統合する

このドキュメントでは、Okta を Google Security Operations と統合する方法について説明します。

ユースケース

Okta 統合では、Google SecOps の機能を使用して次のユースケースをサポートします。

  • ユーザー ライフサイクルを管理する: セキュリティ通知に基づいてユーザーのパスワードを自動的に有効化、無効化、リセットして、リスクを軽減します。

  • アクティブなセッションを終了する: 不正使用されたアカウントのアクティブな Okta セッションをすべて即座にクリアして、統合アプリケーション全体で不正アクセスを防止します。

  • ロールの割り当てを自動化する: 調査中に最小権限の原則を維持するため、ユーザーに管理ロールを動的に割り当てたり、割り当てを解除したりします。

  • 脅威シグナルを同期する: Identity Threat Protection(ITP)シグナルを Okta に送信して、リスク コンテキストを共有し、自動セキュリティ レスポンスをトリガーします。

  • ID コンテキストを拡充する: 詳細なユーザー プロフィールとグループ メンバーシップを取得して、アナリストがアカウント アクティビティを詳細に把握できるようにします。

始める前に

Google SecOps で統合を構成する前に、Okta 環境で次の要件を満たしていることを確認します。

  • 認証方法: 組織で認証に API トークン(SSWS)または OAuth 2.0 を使用するかどうかを決定します。

  • アカウントの権限: アカウントに、ユーザー管理とセッション終了アクションを実行するための十分な権限があることを確認します。

統合のパラメータ

Okta 統合には、次のパラメータが必要です。

パラメータ 説明
Api Root

必須。

API へのアクセスに使用される Okta インスタンスのベース URL。

デフォルト値は https://{okta_domain}.com/ です。

Api Token

省略可。

Okta インスタンスでの認証に使用される API トークン(SSWS)。

Use Oauth Authentication が無効になっている場合、このパラメータは必須です。

Use Oauth Authentication

必須。

有効にすると、統合では API トークンの代わりに OAuth 2.0 が認証に使用されます。

OAuth を使用する場合、Client ID、Key ID、Private Key は必須です。Api Token は空白のままにします。

無効にすると、Api Token は必須になります。

Client ID

省略可。

Okta OAuth アプリケーションの固有識別子。

Use Oauth Authentication が有効になっている場合、このパラメータは必須です。

API トークンを使用して認証する場合は、このフィールドを空のままにします。

Key ID

省略可。

OAuth 認証に使用される秘密鍵に関連付けられた公開鍵の ID。

Use Oauth Authentication が有効になっている場合、このパラメータは必須です。

API トークンを使用して認証する場合は、このフィールドを空のままにします。

Private Key

省略可。

OAuth 認証に使用される PEM 形式の秘密鍵。

Use Oauth Authentication が有効になっている場合、このパラメータは必須です。

API トークンを使用して認証する場合は、このフィールドを空のままにします。

Verify SSL

省略可。

選択すると、統合は Okta サーバーに接続するときに SSL 証明書を検証します。

デフォルトで有効になっています。

Google SecOps で統合を構成する方法については、統合を構成するをご覧ください。

必要に応じて、後の段階で変更できます。統合インスタンスを構成すると、ハンドブックで使用できます。複数のインスタンスを構成してサポートする方法の詳細については、複数のインスタンスのサポートをご覧ください。

操作

アクションの詳細については、 デスクから保留中のアクションに対応するとケースで手動アクションを実行するをご覧ください。

グループを追加

グループを追加します。

パラメータ

ユースケース

なし

実行

このアクションはすべてのエンティティに対して実行されます。

アクションの結果

スクリプトの結果
スクリプトの結果名 値のオプション 例
ScriptResult なし なし
JSON の結果
N/A
エンティティ拡充

なし

分析情報

なし

ロールの割り当て

ユーザーにロールを割り当てる。

パラメータ

パラメータ名 種類 デフォルト値 説明
ユーザー ID 文字列 なし Okta のユーザーの ID。
ロールのタイプ 文字列 なし ユーザーに割り当てるロールのタイプ。
スコープ時にも実行 チェックボックス オン 入力だけでなくエンティティでも実行するかどうか。

ユースケース

なし

実行

このアクションは次のエンティティに対して実行されます。

  • ユーザー
  • ホスト名

アクションの結果

スクリプトの結果
スクリプトの結果名 値のオプション 例
ScriptResult なし なし
JSON の結果
N/A
エンティティ拡充
拡充フィールド名 ロジック - 適用するタイミング
ロール JSON の結果に存在する場合に返す
分析情報

なし

Okta ユーザー セッションをクリアする

[Clear Okta User Session] アクションを使用して、すべてのデバイスと統合アプリケーションで特定のユーザーのすべてのアクティブな Okta セッションを終了します。

このアクションは、Google SecOps Username エンティティに対して実行されます。

アクションへの入力

[Clear Okta User Session] アクションには、次のパラメータが必要です。

パラメータ 説明
User IDs Or Logins

省略可。

Okta ユーザー ID またはログイン ID のカンマ区切りのリスト。

Also Run On Scope

省略可。

選択すると、User IDs Or Logins に明示的にリストされているユーザーに加えて、エンティティ スコープで識別されたすべてのユーザーのアクティブな ID プロバイダ(IdP)セッションが取り消されます。

アクションの出力

Okta ユーザー セッションをクリアアクションは、次の出力を提供します。

アクションの出力タイプ 対象
ケースウォールのアタッチメント 利用不可
ケースウォールのリンク 利用不可
ケースウォール テーブル 利用不可
拡充テーブル 利用不可
JSON の結果 利用不可
出力メッセージ 利用可能
スクリプトの結果 利用可能
出力メッセージ

Clear Okta User Session アクションは、次の出力メッセージを返すことができます。

出力メッセージ メッセージの説明

Successfully cleared sessions for the following users: ENTITY_IDS.

The sessions failed to clear for the following user in Okta: ENTITY_ID.

No users were found to clear sessions.

アクションが成功しました。
Error executing action "Clear Okta User Session". Reason: ERROR_REASON

アクションが失敗しました。

サーバーへの接続、入力パラメータ、または認証情報を確認してください。

スクリプトの結果

次の表に、Okta ユーザー セッションをクリアするアクションを使用した場合のスクリプト結果の出力値を示します。

スクリプトの結果名 値
is_success true または false

ユーザーを無効にする

指定されたユーザーを無効にします。

パラメータ

パラメータ名 種類 デフォルト値 説明
ユーザー ID またはログイン 文字列 なし Okta のユーザーの ID。
無効 チェックボックス オン ユーザーを無効にするか、一時停止のみにするか。
無効化された場合にメールを送信 チェックボックス オン 無効化後にメールを送信するかどうか。
スコープ時にも実行 チェックボックス オン 入力だけでなくエンティティでも実行するかどうか。

ユースケース

なし

実行

このアクションは次のエンティティに対して実行されます。

  • ユーザー
  • ホスト名

アクションの結果

スクリプトの結果
スクリプトの結果名 値のオプション 例
ScriptResult なし なし
JSON の結果
N/A
エンティティ拡充
拡充フィールド名 ロジック - 適用するタイミング
is_deactivate True の場合、ユーザーは無効になっています。それ以外の場合は、False です。
is_send_email_deactivate True の場合、ユーザーは無効になっています。それ以外の場合は、False です。
分析情報

なし

ユーザーを有効にする

指定されたユーザーを有効にします。

パラメータ

パラメータ名 種類 デフォルト値 説明
ユーザー ID またはログイン 文字列 なし Okta のユーザーの ID またはログイン。
有効 チェックボックス オン ユーザーを有効にするか、停止を解除するだけにするか。
有効化された場合にメールを送信する チェックボックス オン 有効化後にメールを送信するかどうか。
スコープ時にも実行 チェックボックス オン 入力だけでなくエンティティでも実行するかどうか。

ユースケース

なし

実行

このアクションは次のエンティティに対して実行されます。

  • ユーザー
  • ホスト名

アクションの結果

スクリプトの結果
スクリプトの結果名 値のオプション 例
ScriptResult なし なし
JSON の結果
N/A
エンティティ拡充
拡充フィールド名 ロジック - 適用するタイミング
is_reactivate True の場合、ユーザーは有効になっています。それ以外の場合は、False です。
is_send_email_reactivate True の場合、ユーザーは無効になっています。それ以外の場合は、False です。
分析情報

なし

グループの取得

グループに関する情報を取得します。

パラメータ

パラメータ名 種類 デフォルト値 説明
グループ ID または名前 文字列 なし Okta のグループの ID または名前。
ID チェックボックス オン 値が ID か名前か。

ユースケース

なし

実行

このアクションはすべてのエンティティに対して実行されます。

アクションの結果

スクリプトの結果
スクリプトの結果名 値のオプション 例
ScriptResult なし なし
JSON の結果
N/A
エンティティ拡充

なし

分析情報

なし

ユーザーの取得

ユーザーに関する情報を取得する

パラメータ

パラメータ名 種類 デフォルト値 説明
ユーザー ID またはログイン 文字列 なし Okta のユーザーの ID またはログイン(メールアドレスまたは短いメール名)。例: test@gmail.com または単に「test」。
スコープ時にも実行 チェックボックス オン 入力だけでなくエンティティでも実行するかどうか。

ユースケース

なし

実行

このアクションは次のエンティティに対して実行されます。

  • ユーザー
  • ホスト名

アクションの結果

スクリプトの結果
スクリプトの結果名 値のオプション 例
ScriptResult なし なし
JSON の結果
[
  {
    "status": "ACTIVE",
    "profile": {
      "mobilePhone": null,
      "firstName": "Test",
      "lastName": "User",
      "secondEmail": null,
      "login": "test.user@asd.com",
      "email": "test.user@asd.com"
    },
    "passwordChanged": "2022-07-11T06:11:25.000Z",
    "created": "2022-07-11T06:07:55.000Z",
    "activated": null,
    "lastUpdated": "2022-07-11T06:11:25.000Z",
    "_links": {
      "schema": {
        "href": "https://trial-0000.okta.com/api/v1/meta/schemas/user/osc1xxxxxxxx"
      },
      "suspend": {
        "href": "https://trial-0000.okta.com/api/v1/users/00u1xxxxxxxx/lifecycle/suspend",
        "method": "POST"
      },
      "forgotPassword": {
        "href": "https://trial-0000.okta.com/api/v1/users/00u1xxxxxxxx/credentials/forgot_password",
        "method": "POST"
      },
      "self": {
        "href": "https://trial-0000.okta.com/api/v1/users/00u1xxxxxxxx"
      },
      "expirePassword": {
        "href": "https://trial-0000.okta.com/api/v1/users/00u1xxxxxxxx/lifecycle/expire_password",
        "method": "POST"
      },
      "resetFactors": {
        "href": "https://trial-0000.okta.com/api/v1/users/00u1xxxxxxxx/lifecycle/reset_factors",
        "method": "POST"
      },
      "deactivate": {
        "href": "https://trial-0000.okta.com/api/v1/users/00u1xxxxxxxx/lifecycle/deactivate",
        "method": "POST"
      },
      "changePassword": {
        "href": "https://trial-0000.okta.com/api/v1/users/00u1xxxxxxxx/credentials/change_password",
        "method": "POST"
      },
      "changeRecoveryQuestion": {
        "href": "https://trial-0000.okta.com/api/v1/users/00u1xxxxxxxx/credentials/change_recovery_question",
        "method": "POST"
      },
      "type": {
        "href": "https://trial-0000.okta.com/api/v1/users/00u1xxxxxxxx"
      },
      "resetPassword": {
        "href": "https://trial-0000.okta.com/api/v1/users/00u1xxxxxxxx/lifecycle/reset_password",
        "method": "POST"
      }
    },
    "lastLogin": "2022-07-11T06:15:14.000Z",
    "credentials": {
      "password": {},
      "provider": {
        "type": "OKTA",
        "name": "OKTA"
      }
    },
    "type": {
      "id": "oty1xxxxxxxxxxxxx"
    },
    "id": "oty1xxxxxxxxxxxxx",
    "statusChanged": "2022-07-11T06:11:25.000Z"
  }
]
エンティティ拡充

なし

分析情報

なし

プロバイダの一覧表示

組織内の ID プロバイダ(IdP)を一覧表示します。

パラメータ

パラメータ名 種類 デフォルト値 説明
クエリ 文字列 なし name プロパティで一致するものを検索します。
種類 チェックボックス オン タイプでフィルタします。
上限 文字列 20 返される結果の最大数。

ユースケース

なし

実行

このアクションはすべてのエンティティに対して実行されます。

アクションの結果

スクリプトの結果
スクリプトの結果名 値のオプション 例
ScriptResult なし なし
JSON の結果
N/A
エンティティ拡充

なし

分析情報

なし

ロールを一覧表示する

ユーザーに割り当てられているすべてのロールを一覧表示します。

パラメータ

ユーザー ID 文字列 なし Okta のユーザーの ID。
スコープ時にも実行 チェックボックス オン 入力だけでなくエンティティでも実行するかどうか。

ユースケース

なし

実行

このアクションは次のエンティティに対して実行されます。

  • ユーザー
  • ホスト名

アクションの結果

スクリプトの結果
スクリプトの結果名 値のオプション 例
ScriptResult なし なし
JSON の結果
N/A
エンティティ拡充

なし

分析情報

なし

ユーザー グループを一覧表示する

ユーザーがメンバーになっているグループを取得します。

パラメータ

パラメータ名 種類 デフォルト値 説明
ユーザー ID またはログイン 文字列 なし Okta のユーザーの ID またはログイン。
スコープ時にも実行 チェックボックス オン 入力だけでなくエンティティでも実行するかどうか。

ユースケース

なし

実行

このアクションは次のエンティティに対して実行されます。

  • ユーザー
  • ホスト名

アクションの結果

スクリプトの結果
スクリプトの結果名 値のオプション 例
ScriptResult なし なし
JSON の結果
N/A
エンティティ拡充
拡充フィールド名 ロジック - 適用するタイミング
プロフィール JSON の結果に存在する場合に返す
name JSON の結果に存在する場合に返す
分析情報

なし

ユーザーの一覧表示

ユーザーのリストを取得します。

パラメータ

パラメータ名 種類 デフォルト値 説明
クエリ 文字列 なし 名、姓、メールアドレスで一致するものを検索します。
フィルタ 文字列 なし プロパティのサブセットのカスタム検索クエリ。
検索 文字列 なし ほとんどのプロパティのカスタム検索クエリ。
上限 文字列 200 返される結果の最大数。

ユースケース

なし

実行

このアクションはすべてのエンティティに対して実行されます。

アクションの結果

スクリプトの結果
スクリプトの結果名 値のオプション 例
ScriptResult なし なし
JSON の結果
N/A
エンティティ拡充
拡充フィールド名 ロジック - 適用するタイミング
プロフィール JSON の結果に存在する場合に返す
name JSON の結果に存在する場合に返す
分析情報

なし

Ping

Okta との接続をテストします。

パラメータ

なし

ユースケース

なし

実行

このアクションはすべてのエンティティに対して実行されます。

アクションの結果

スクリプトの結果
スクリプトの結果名 値のオプション 例
ScriptResult なし なし
JSON の結果
N/A
エンティティ拡充

なし

分析情報

なし

パスワードの再設定

ユーザーのパスワードを再設定するために使用できるワンタイム トークンを生成します。

パラメータ

パラメータ名 種類 デフォルト値 説明
ユーザー ID またはログイン 文字列 なし Okta のユーザーの ID またはログイン。
メールを送信する チェックボックス オフ パスワードの再設定用のメールを送信するか、すべてのユーザーにトークンを返すか。
スコープ時にも実行 チェックボックス オフ 入力だけでなくエンティティでも実行するかどうか。

ユースケース

なし

実行

このアクションは次のエンティティに対して実行されます。

  • ユーザー
  • ホスト名

アクションの結果

スクリプトの結果
スクリプトの結果名 値のオプション 例
ScriptResult なし なし
JSON の結果
N/A
エンティティ拡充
拡充フィールド名 ロジック - 適用するタイミング
send_email JSON の結果に存在する場合に返す
分析情報

なし

パスワードを設定

既存の認証情報を検証せずに、ユーザーのパスワードを設定する。

パラメータ

パラメータ名 種類 デフォルト値 説明
ユーザー ID またはログイン 文字列 なし Okta のユーザーの ID またはログイン。
新しいパスワード 文字列 なし 新しいパスワード。
10 個のランダムな文字を追加 チェックボックス オフ すべてのユーザー パスワードに文字を追加するかどうか。
スコープ時にも実行 チェックボックス オフ 入力だけでなくエンティティでも実行するかどうか。

ユースケース

なし

実行

このアクションは次のエンティティに対して実行されます。

  • ユーザー
  • ホスト名

アクションの結果

スクリプトの結果
スクリプトの結果名 値のオプション 例
ScriptResult なし なし
JSON の結果
N/A
エンティティ拡充
拡充フィールド名 ロジック - 適用するタイミング
set_password JSON の結果に存在する場合に返す
分析情報

なし

ITP シグナルを送信

Shared Signals Framework(SSF)を使用して、Identity Threat Protection(ITP)シグナルを関連するコンシューマーに配信します。

パラメータ

パラメータ名 種類 デフォルト値 説明
キー ID 文字列 なし 秘密鍵の署名の検証に使用される公開鍵の ID。
秘密鍵の文字列 パスワード なし シグナルの署名に使用される秘密鍵。

鍵は文字列形式で指定され、「BEGIN」ステートメントと「END」ステートメントが含まれます。

User Email メールアドレス なし 影響を受けているユーザーのメールアドレス。
タイムスタンプ timestamp なし 信号が発生したタイムスタンプ。

タイムスタンプの形式は ISO 8601 です。

理由 文字列 なし シグナルが生成された理由を簡単に説明します。
重大度 文字列または DDL なし シグナルの重大度。
発行元 URL URL なし シグナルを作成したソースシステム。

アクションの結果

JSON の結果
{
   "status":200,
   "payload":{
      "iss":"https://www.google.com/",
      "jti":"3c5fbf0c-3977-11f0-a195-7e498c84a3dd",
      "iat":1748184472,
      "aud":"https://<your-okta-domain>.oktapreview.com",
      "events":{
         "https://schemas.okta.com/secevent/okta/event-type/user-risk-change":{
            "subject":{
               "user":{
                  "format":"email",
                  "email":"user@domain.net"
               }
            },
            "current_level":"medium",
            "previous_level":"low",
            "reason_admin":{
               "en":"BadNavigationEvent"
            },
            "event_timestamp":1742199770057
         }
      }
   }
}
出力メッセージ
出力メッセージ メッセージの説明

Successfully sent the ITP signal to Okta.

Context value was not found for the provided context key CONTEXT_KEY and connector identifier CONNECTOR_IDENTIFIER.

Action can't return the Case Wall table as the context values are too big.

アクションが成功しました。
Failed to send the ITP signal to Okta. Error is {0}".format(exception.stacktrace)

アクションが失敗しました。

サーバーへの接続、入力パラメータ、または認証情報を確認してください。

スクリプトの結果
スクリプトの結果名 値のオプション
is_success True または False

ロールの割り当て解除

ユーザーからロールの割り当てを解除します。

パラメータ

パラメータ名 種類 デフォルト値 説明
ユーザー ID 文字列 なし Okta のユーザーの ID。
ロール ID またはロール名 文字列 なし Okta のロールの ID または名前。
スコープ時にも実行 チェックボックス オフ 入力だけでなくエンティティでも実行するかどうか。

ユースケース

なし

実行

このアクションは次のエンティティに対して実行されます。

  • ユーザー
  • ホスト名

アクションの結果

スクリプトの結果
スクリプトの結果名 値のオプション 例
ScriptResult なし なし
JSON の結果
N/A
エンティティ拡充
拡充フィールド名 ロジック - 適用するタイミング
unassign_role JSON の結果に存在する場合に返す
分析情報

なし

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