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 を使用しているかどうかを判断します。
- API トークン: SSWS トークンを生成します。詳細については、Okta API トークンのドキュメントをご覧ください。
- OAuth 2.0: サービスアプリを登録して、
Client ID、Key ID、Private Keyを取得します。詳細については、Okta OAuth ドキュメントをご覧ください。
アカウント権限: ユーザー管理とセッション終了のアクションを実行するのに十分な権限がアカウントに付与されていることを確認します。
統合のパラメータ
Okta 統合には、次のパラメータが必要です。
| パラメータ | 説明 |
|---|---|
Api Root |
必須。 API へのアクセスに使用される Okta インスタンスのベース URL。 デフォルト値は |
Api Token |
省略可。 Okta インスタンスの認証に使用される API トークン(SSWS)。
|
Use Oauth Authentication |
必須。 有効にすると、統合では API トークンの代わりに OAuth 2.0 が認証に使用されます。 OAuth を使用する場合、 無効にする場合は、 |
Client ID |
省略可。 Okta OAuth アプリケーションの固有識別子。
API トークンを使用して認証する場合は、このフィールドを空のままにします。 |
Key ID |
省略可。 OAuth 認証に使用される秘密鍵に関連付けられた公開鍵の ID。
API トークンを使用して認証する場合は、このフィールドを空のままにします。 |
Private Key |
省略可。 OAuth 認証に使用される PEM 形式の秘密鍵。
API トークンを使用して認証する場合は、このフィールドを空のままにします。 |
Verify SSL |
省略可。 選択すると、統合によって Okta サーバーへの接続時に SSL 証明書が検証されます。 デフォルトで有効になっています。 |
Google SecOps で統合を構成する手順については、統合を構成するをご覧ください。
必要に応じて、後の段階で変更できます。統合インスタンスを構成すると、ハンドブックで使用できるようになります。複数のインスタンスの構成とサポートの方法については、複数のインスタンスのサポートをご覧ください。
操作
アクションの詳細については、 デスクから保留中のアクションに対応すると手動による対策を実行するをご覧ください。
グループを追加
グループを追加します。
パラメータ
ユースケース
なし
実行
このアクションはすべてのエンティティに対して実行されます。
アクションの結果
スクリプトの結果
| スクリプトの結果名 | 値のオプション | 例 |
|---|---|---|
| ScriptResult | なし | なし |
JSON の結果
N/A
エンティティ拡充
なし
分析情報
なし
ロールの割り当て
ユーザーにロールを割り当てます。
パラメータ
| パラメータ名 | 種類 | デフォルト値 | 説明 |
|---|---|---|---|
| ユーザー ID | 文字列 | なし | Okta のユーザーの ID。 |
| ロールタイプ | 文字列 | なし | ユーザーに割り当てるロールのタイプ。 |
| Also Run On Scope | チェックボックス | オン | 入力だけでなくエンティティに対しても実行するかどうか。 |
ユースケース
なし
実行
このアクションは次のエンティティに対して実行されます。
- ユーザー
- ホスト名
アクションの結果
スクリプトの結果
| スクリプトの結果名 | 値のオプション | 例 |
|---|---|---|
| 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 |
省略可。 選択すると、このアクションは、 |
アクションの出力
[Clear Okta User Session] アクションでは、次の出力が提供されます。
| アクションの出力タイプ | 対象 |
|---|---|
| ケースウォールのアタッチメント | 利用不可 |
| ケースウォールのリンク | 利用不可 |
| ケースウォール テーブル | 利用不可 |
| 拡充テーブル | 利用不可 |
| JSON の結果 | 利用不可 |
| 出力メッセージ | 利用可能 |
| スクリプトの結果 | 利用可能 |
出力メッセージ
[Clear Okta User Session] アクションは、次の出力メッセージを返すことがあります。
| 出力メッセージ | メッセージの説明 |
|---|---|
|
アクションが成功しました。 |
Error executing action "Clear Okta User Session". Reason:
ERROR_REASON |
操作に失敗しました。 サーバーへの接続、入力パラメータ、または認証情報を確認してください。 |
スクリプトの結果
次の表に、[Clear Okta User Session] アクションを使用した場合のスクリプト結果出力の値を示します。
| スクリプトの結果名 | 値 |
|---|---|
is_success |
true または false |
ユーザーを無効にする
指定されたユーザーを無効にします。
パラメータ
| パラメータ名 | 種類 | デフォルト値 | 説明 |
|---|---|---|---|
| ユーザー ID またはログイン | 文字列 | なし | Okta のユーザーの ID。 |
| Is Deactivate | チェックボックス | オン | ユーザーを無効にするか、一時停止のみにするか。 |
| 無効化された場合にメールを送信 | チェックボックス | オン | 無効化後にメールを送信するかどうか。 |
| Also Run On Scope | チェックボックス | オン | 入力だけでなくエンティティに対しても実行するかどうか。 |
ユースケース
なし
実行
このアクションは次のエンティティに対して実行されます。
- ユーザー
- ホスト名
アクションの結果
スクリプトの結果
| スクリプトの結果名 | 値のオプション | 例 |
|---|---|---|
| ScriptResult | なし | なし |
JSON の結果
N/A
エンティティ拡充
| 拡充フィールド名 | ロジック - 適用するタイミング |
|---|---|
| is_deactivate | True の場合、ユーザーは無効になっています。それ以外の場合: False |
| is_send_email_deactivate | True の場合、ユーザーは無効になっています。それ以外の場合: False |
分析情報
なし
ユーザーを有効にする
指定されたユーザーを有効にします。
パラメータ
| パラメータ名 | 種類 | デフォルト値 | 説明 |
|---|---|---|---|
| ユーザー ID またはログイン | 文字列 | なし | Okta のユーザーの ID またはログイン。 |
| 有効である | チェックボックス | オン | ユーザーを有効にするか、停止を解除するだけか。 |
| 有効化された場合にメールを送信する | チェックボックス | オン | 有効化後にメールを送信するかどうか。 |
| Also Run On Scope | チェックボックス | オン | 入力だけでなくエンティティに対しても実行するかどうか。 |
ユースケース
なし
実行
このアクションは次のエンティティに対して実行されます。
- ユーザー
- ホスト名
アクションの結果
スクリプトの結果
| スクリプトの結果名 | 値のオプション | 例 |
|---|---|---|
| ScriptResult | なし | なし |
JSON の結果
N/A
エンティティ拡充
| 拡充フィールド名 | ロジック - 適用するタイミング |
|---|---|
| is_reactivate | True の場合、ユーザーは有効になっています。それ以外の場合: False |
| is_send_email_reactivate | True の場合、ユーザーは無効になっています。それ以外の場合: False |
分析情報
なし
グループの取得
グループに関する情報を取得します。
パラメータ
| パラメータ名 | 種類 | デフォルト値 | 説明 |
|---|---|---|---|
| グループ ID または名前 | 文字列 | なし | Okta のグループの ID または名前。 |
| Is Id | チェックボックス | オン | 値が ID か名前か。 |
ユースケース
なし
実行
このアクションはすべてのエンティティに対して実行されます。
アクションの結果
スクリプトの結果
| スクリプトの結果名 | 値のオプション | 例 |
|---|---|---|
| ScriptResult | なし | なし |
JSON の結果
N/A
エンティティ拡充
なし
分析情報
なし
ユーザーの取得
ユーザーに関する情報を取得する
パラメータ
| パラメータ名 | 種類 | デフォルト値 | 説明 |
|---|---|---|---|
| ユーザー ID またはログイン | 文字列 | なし | Okta のユーザーの ID またはログイン(メールアドレスまたは短いメール名)。例: test@gmail.com または「test」。 |
| Also Run On Scope | チェックボックス | オン | 入力だけでなくエンティティに対しても実行するかどうか。 |
ユースケース
なし
実行
このアクションは次のエンティティに対して実行されます。
- ユーザー
- ホスト名
アクションの結果
スクリプトの結果
| スクリプトの結果名 | 値のオプション | 例 |
|---|---|---|
| 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。 |
|---|---|---|---|
| Also Run On Scope | チェックボックス | オン | 入力だけでなくエンティティに対しても実行するかどうか。 |
ユースケース
なし
実行
このアクションは次のエンティティに対して実行されます。
- ユーザー
- ホスト名
アクションの結果
スクリプトの結果
| スクリプトの結果名 | 値のオプション | 例 |
|---|---|---|
| ScriptResult | なし | なし |
JSON の結果
N/A
エンティティ拡充
なし
分析情報
なし
ユーザー グループの一覧を取得する
ユーザーがメンバーになっているグループを取得します。
パラメータ
| パラメータ名 | 種類 | デフォルト値 | 説明 |
|---|---|---|---|
| ユーザー ID またはログイン | 文字列 | なし | Okta のユーザーの ID またはログイン。 |
| Also Run On Scope | チェックボックス | オン | 入力だけでなくエンティティに対しても実行するかどうか。 |
ユースケース
なし
実行
このアクションは次のエンティティに対して実行されます。
- ユーザー
- ホスト名
アクションの結果
スクリプトの結果
| スクリプトの結果名 | 値のオプション | 例 |
|---|---|---|
| ScriptResult | なし | なし |
JSON の結果
N/A
エンティティ拡充
| 拡充フィールド名 | ロジック - 適用するタイミング |
|---|---|
| プロフィール | JSON の結果に存在する場合に返す |
| name | JSON の結果に存在する場合に返す |
分析情報
なし
ユーザーの一覧表示
ユーザーのリストを取得します。
パラメータ
| パラメータ名 | 種類 | デフォルト値 | 説明 |
|---|---|---|---|
| クエリ | 文字列 | なし | 名、姓、メールアドレスで一致するものを検索します。 |
| フィルタ | 文字列 | なし | プロパティのサブセットのカスタム検索クエリ。 |
| 検索 | 文字列 | なし | ほとんどのプロパティのカスタム検索クエリ。 |
| 上限 | 文字列 | 200 | 返される結果の最大数。 |
ユースケース
なし
実行
このアクションはすべてのエンティティに対して実行されます。
アクションの結果
スクリプトの結果
| スクリプトの結果名 | 値のオプション | 例 |
|---|---|---|
| ScriptResult | なし | なし |
JSON の結果
N/A
エンティティ拡充
| 拡充フィールド名 | ロジック - 適用するタイミング |
|---|---|
| プロフィール | JSON の結果に存在する場合に返す |
| name | JSON の結果に存在する場合に返す |
分析情報
なし
Ping
Okta との接続をテストします。
パラメータ
なし
ユースケース
なし
実行
このアクションはすべてのエンティティに対して実行されます。
アクションの結果
スクリプトの結果
| スクリプトの結果名 | 値のオプション | 例 |
|---|---|---|
| ScriptResult | なし | なし |
JSON の結果
N/A
エンティティ拡充
なし
分析情報
なし
パスワードの再設定
ユーザーのパスワードの再設定に使用できるワンタイム トークンを生成します。
パラメータ
| パラメータ名 | 種類 | デフォルト値 | 説明 |
|---|---|---|---|
| ユーザー ID またはログイン | 文字列 | なし | Okta のユーザーの ID またはログイン。 |
| メールを送信する | チェックボックス | オフ | パスワードの再設定メールを送信するか、すべてのユーザーのトークンを返すか。 |
| Also Run On Scope | チェックボックス | オフ | 入力だけでなくエンティティに対しても実行するかどうか。 |
ユースケース
なし
実行
このアクションは次のエンティティに対して実行されます。
- ユーザー
- ホスト名
アクションの結果
スクリプトの結果
| スクリプトの結果名 | 値のオプション | 例 |
|---|---|---|
| ScriptResult | なし | なし |
JSON の結果
N/A
エンティティ拡充
| 拡充フィールド名 | ロジック - 適用するタイミング |
|---|---|
| send_email | JSON の結果に存在する場合に返す |
分析情報
なし
パスワードを設定
既存の認証情報を検証せずにユーザーのパスワードを設定します。
パラメータ
| パラメータ名 | 種類 | デフォルト値 | 説明 |
|---|---|---|---|
| ユーザー ID またはログイン | 文字列 | なし | Okta のユーザーの ID またはログイン。 |
| 新しいパスワード | 文字列 | なし | 新しいパスワード。 |
| 10 個のランダムな文字を追加 | チェックボックス | オフ | すべてのユーザーのパスワードに追加の文字を追加するかどうか。 |
| Also Run On Scope | チェックボックス | オフ | 入力だけでなくエンティティに対しても実行するかどうか。 |
ユースケース
なし
実行
このアクションは次のエンティティに対して実行されます。
- ユーザー
- ホスト名
アクションの結果
スクリプトの結果
| スクリプトの結果名 | 値のオプション | 例 |
|---|---|---|
| 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
}
}
}
}
出力メッセージ
| 出力メッセージ | メッセージの説明 |
|---|---|
|
アクションが成功しました。 |
Failed to send the ITP signal to Okta. Error is
{0}".format(exception.stacktrace) |
操作に失敗しました。 サーバーへの接続、入力パラメータ、または認証情報を確認してください。 |
スクリプトの結果
| スクリプトの結果名 | 値のオプション |
|---|---|
| is_success | True または False |
ロールの割り当て解除
ユーザーからロールの割り当てを解除します。
パラメータ
| パラメータ名 | 種類 | デフォルト値 | 説明 |
|---|---|---|---|
| ユーザー ID | 文字列 | なし | Okta のユーザーの ID。 |
| ロール ID または名前 | 文字列 | なし | Okta のロールの ID または名前。 |
| Also Run On Scope | チェックボックス | オフ | 入力だけでなくエンティティに対しても実行するかどうか。 |
ユースケース
なし
実行
このアクションは次のエンティティに対して実行されます。
- ユーザー
- ホスト名
アクションの結果
スクリプトの結果
| スクリプトの結果名 | 値のオプション | 例 |
|---|---|---|
| ScriptResult | なし | なし |
JSON の結果
N/A
エンティティ拡充
| 拡充フィールド名 | ロジック - 適用するタイミング |
|---|---|
| unassign_role | JSON の結果に存在する場合に返す |
分析情報
なし
さらにサポートが必要な場合 コミュニティ メンバーや Google SecOps のプロフェッショナルから回答を得ることができます。