整合 Okta 與 Google SecOps

本文將說明如何整合 Okta 與 Google Security Operations。

用途

Okta 整合功能會使用 Google SecOps 功能,支援下列用途:

  • 管理使用者生命週期:根據安全性快訊自動啟用、停用或重設使用者密碼,以降低風險。

  • 終止有效工作階段:立即清除遭入侵帳戶的所有有效 Okta 工作階段,防止未經授權的人員存取整合式應用程式。

  • 自動指派角色:動態指派或取消指派管理員角色給使用者,在調查期間維持最小權限原則。

  • 同步威脅信號:將身分威脅防護 (ITP) 信號傳送至 Okta,分享風險情境並觸發自動安全回應。

  • 豐富身分背景資訊:擷取詳細的使用者個人資料和群組成員,讓分析師深入瞭解帳戶活動。

事前準備

在 Google SecOps 中設定整合功能前,請先確認 Okta 環境符合下列需求:

  • 驗證方法:判斷貴機構是使用 API 權杖 (SSWS) 還是 OAuth 2.0 進行驗證。

  • 帳戶權限:確認帳戶具備足夠的權限,可執行使用者管理和終止工作階段的動作。

整合參數

整合 Okta 時需要下列參數:

參數 說明
Api Root

必填。

Okta 執行個體的基礎網址,用於存取 API。

預設值為 https://{okta_domain}.com/

Api Token

選填。

用於 Okta 執行個體驗證的 API 權杖 (SSWS)。

如果 Use Oauth Authentication 已停用,則此參數為必要參數。

Use Oauth Authentication

必填。

啟用後,整合功能會使用 OAuth 2.0 進行驗證,而非 API 權杖。

使用 OAuth 時,Client IDKey IDPrivate Key 為必填欄位,Api Token 應留空。

如果停用,則必須提供 Api Token

Client ID

選填。

Okta OAuth 應用程式的專屬 ID。

如果啟用 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。
角色類型 字串 不適用 要指派給使用者的角色類型。
Also Run On Scope 核取方塊 已勾選 是否要對實體和輸入內容執行作業。

用途

不適用

執行時間

這項動作會對下列實體執行:

  • 使用者
  • 主機名稱

動作執行結果

指令碼執行結果
指令碼結果名稱 值選項 範例
ScriptResult 不適用 不適用
JSON 結果
N/A
實體擴充
補充資料欄位名稱 邏輯 - 應用時機
角色 如果 JSON 結果中存在,則傳回
深入分析

不適用

清除 Okta 使用者工作階段

使用「Clear Okta User Session」(清除 Okta 使用者工作階段) 動作,終止特定使用者在所有裝置和整合式應用程式中的所有有效 Okta 工作階段。

這項動作會在 Google SecOps Username 實體上執行。

動作輸入內容

「清除 Okta 使用者工作階段」動作需要下列參數:

參數 說明
User IDs Or Logins

選填。

以逗號分隔的 Okta 使用者 ID 或登入 ID 清單。

Also Run On Scope

選填。

如果選取這項動作,系統會撤銷實體範圍內所有使用者 (以及 User IDs Or Logins 中明確列出的使用者) 的有效身分識別提供者 (IdP) 工作階段。

動作輸出內容

「清除 Okta 使用者工作階段」動作會提供下列輸出內容:

動作輸出類型 可用性
案件總覽附件 無法使用
案件總覽連結 無法使用
案件總覽表格 無法使用
補充資訊表格 無法使用
JSON 結果 無法使用
輸出訊息 可用
指令碼結果 可用
輸出訊息

「Clear Okta User Session」(清除 Okta 使用者工作階段) 動作可能會傳回下列輸出訊息:

輸出訊息 訊息說明

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 truefalse

停用使用者

停用指定使用者。

參數

參數名稱 類型 預設值 說明
使用者 ID 或登入資訊 字串 不適用 Okta 中的使用者 ID。
停用 核取方塊 已勾選 要停用還是暫停使用者帳戶。
停用時傳送電子郵件 核取方塊 已勾選 是否要在停用後傳送電子郵件。
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"
  }
]
實體擴充

不適用

深入分析

不適用

列出供應商

列出貴機構的識別資訊提供者 (IdP)。

參數

參數名稱 類型 預設值 說明
查詢 字串 不適用 搜尋名稱屬性是否相符。
類型 核取方塊 已勾選 依類型篩選。
限制 字串 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 結果中存在,則傳回
名稱 如果 JSON 結果中存在,則傳回
深入分析

不適用

將使用者列入清單

取得使用者清單。

參數

參數名稱 類型 預設值 說明
查詢 字串 不適用 在名字、姓氏或電子郵件地址中搜尋相符項目。
篩選器 字串 不適用 針對部分房源的自訂搜尋查詢。
搜尋 字串 不適用 大多數房源的自訂搜尋查詢。
限制 字串 200 要傳回的結果數上限。

用途

不適用

執行時間

這項操作會套用至所有實體。

動作執行結果

指令碼執行結果
指令碼結果名稱 值選項 範例
ScriptResult 不適用 不適用
JSON 結果
N/A
實體擴充
補充資料欄位名稱 邏輯 - 應用時機
資料 如果 JSON 結果中存在,則傳回
名稱 如果 JSON 結果中存在,則傳回
深入分析

不適用

乒乓

測試與 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 信號

使用共用信號架構 (SSF),將身分威脅防護 (ITP) 信號發布給相關消費者。

參數

參數名稱 類型 預設值 說明
金鑰 ID 字串 不適用 用於驗證私密金鑰簽章的公開金鑰 ID。
私密金鑰字串 密碼 不適用 用於簽署信號的私密金鑰。

金鑰以字串格式提供,並包含「BEGIN」和「END」陳述式。

使用者電子郵件 郵寄地址 不適用 受影響使用者的電子郵件地址。
時間戳記 時間戳記 不適用 信號發生時間的時間戳記。

時間戳記格式為 ISO 8601。

原因 字串 不適用 簡要說明信號的產生原因。
嚴重性 字串或 DDL 不適用 信號的嚴重性等級。
核發者網址 網址 不適用 建立信號的來源系統。

動作執行結果

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 TrueFalse

取消指派角色

取消指派使用者的角色。

參數

參數名稱 類型 預設值 說明
使用者 ID 字串 不適用 Okta 中的使用者 ID。
角色 ID 或名稱 字串 不適用 Okta 中的角色 ID 或名稱。
Also Run On Scope 核取方塊 已取消勾選 是否要對實體和輸入內容執行作業。

用途

不適用

執行時間

這項動作會對下列實體執行:

  • 使用者
  • 主機名稱

動作執行結果

指令碼執行結果
指令碼結果名稱 值選項 範例
ScriptResult 不適用 不適用
JSON 結果
N/A
實體擴充
補充資料欄位名稱 邏輯 - 應用時機
unassign_role 如果 JSON 結果中存在,則傳回
深入分析

不適用

還有其他問題嗎?向社群成員和 Google SecOps 專業人員尋求答案。