企業入門指南

管理身分識別提供者

為 SAML 或 OIDC 單一登入設定自訂身分識別提供者 (IdP),讓組織使用者能夠使用現有的企業憑證進行驗證。

注意:

身分識別提供者管理僅適用於 Enterprise 方案的管理員。

設定自訂身分識別提供者 (IdP),為組織啟用單一登入 (SSO)。設定 IdP 後,Bob 會在你登入 IBM Bob(包括 IDE、Bob Shell 及 Bob Web)時將你重新導向至該 IdP 進行驗證。

你可以在 Bob 中設定 SAML 及 OpenID Connect (OIDC) 身分識別提供者。使用符合組織身分識別平台的通訊協定。

SSO 通訊協定相容性

IBM Bob 與下列 SSO 通訊協定相容:

  • SAML(Security Assertion Markup Language)
  • OIDC(OpenID Connect)

已驗證的 OIDC 提供者

雖然你可以使用其他符合設定和權杖要求的 OIDC 提供者,但以下平台已經過驗證:

  • Auth0
  • Keycloak
  • Okta
  • PingOne

新增身分識別提供者

新增 IdP 是一個兩步驟的流程。首先設定 IdP 並儲存,然後新增使用該 IdP 的電子郵件網域。

步驟 1:設定身分識別提供者

前往 IBM Bob 管理頁面。

選取 Authentication 索引標籤。

按一下 Add IdP。 輸入 IdP 的名稱。 選取 IdP 類型:SAMLOIDC。 產生你的 service provider (SP) 憑證。

Bob 需要 SP 私密金鑰和 SP 憑證來簽署 SAML 驗證要求。你必須使用 openssl 命令列工具自行產生這些憑證。

注意:

如果你已經擁有 SP 金鑰對和憑證,請跳到下一步。

執行下列命令以產生 SP 私密金鑰:

openssl genrsa -out sp_private_key.pem 2048

然後執行此命令從私密金鑰產生 SP 憑證。將 /CN/O/C 值取代為描述性憑證名稱、組織名稱和兩個字母的國家/地區代碼:

openssl req -new -x509 -key sp_private_key.pem -out sp_certificate.pem -days 365 -subj "/CN=Bob SAML SP/O=IBM/C=US"
注意:

sp_certificate.pem 檔案也必須上傳至你的 IdP,以便它可以驗證來自 Bob 的要求簽章。

輸入 IdP 的設定詳細資訊。 檢閱下列區段中的通訊協定特定需求。 按一下 Save

IdP 隨即建立,並顯示在 Authentication 索引標籤的表格中。

SAML 設定

SAML 需要下列設定詳細資訊:

Identity provider 欄位 — 從你的 IdP 取得這些資訊:

  • idp_entity_id — IdP 的唯一識別碼(例如,https://idp.example.com
  • idp_sso_url — Bob 傳送驗證要求的 SSO URL
  • idp_certificate — 用於驗證來自 IdP 的 SAML 回應的 PEM 編碼 X.509 憑證

Service provider 欄位 — 使用上一步產生的檔案:

  • sp_private_keysp_private_key.pem 的內容
  • sp_certificatesp_certificate.pem 的內容

選用欄位:

  • idp_slo_url — IdP 的 Single Logout URL。Single Logout 尚未在 Bob 中完全實作。

Attribute mapping 區段中,將 IdP 的使用者屬性對應至 IBM Bob 的使用者欄位。對應格式為 Bob 屬性名稱 → IdP 屬性名稱或 URI。請查看你的 IdP 設定以取得正確的屬性名稱。

  • email (必要) — 使用者的電子郵件地址
  • name(選用)— 使用者的完整顯示名稱
  • given_name(選用)— 使用者的名字
  • family_name(選用)— 使用者的姓氏
  • groups(選用)— 使用者的群組

IdP 管理員:註冊新的 OIDC 用戶端

在 Bob 執行個體管理員可以在 Bob 中設定 OIDC IdP 記錄之前,IdP 管理員必須先在身分識別提供者中建立 OIDC 應用程式(用戶端)。此步驟產生的值是 Bob 執行個體管理員在 Bob 中新增 IdP 時提供的內容。

應用程式類型和授權類型

在你的身分識別提供者中建立一個 Web 應用程式(伺服器端 / 機密用戶端),並啟用 Authorization Code 授權類型。Bob 僅使用 Authorization Code 流程 — 請勿選擇 Implicit、Device Code 或 Client Credentials。

重新導向 URI

在 OIDC 應用程式中註冊以下回呼 URL。大多數提供者執行嚴格的字串比對,請原樣複製:

https://api.us-east.bob.ibm.com/authn/v1/auth/callback

需要在用戶端啟用的範圍

範圍目的必要
openid啟用 OIDC 模式並傳回 id_token
email透過 id_token 或 userinfo 端點公開使用者的電子郵件地址
offline_access隨存取權杖一起授予 refresh_token對大多數提供者而言是必要的

Bob 要求每個 Authorization Code 交換回應中都包含 refresh_token。如果你的提供者透過其他機制(例如提供者特定的範圍,或在每次代碼交換時無條件地)核發重新整理權杖,請相應設定 — 但請確保用戶端被允許接收重新整理權杖。如果未傳回 refresh_token,登入將被中止。

權杖端點驗證方法

將 OIDC 應用程式的權杖端點驗證方法設定為 client_secret_post。Bob 在每次權杖要求中將 client_idclient_secret 作為表單本文參數傳送。client_secret_basicprivate_key_jwtnone 不被接受。

權杖設定

設定必要值
存取權杖格式任意(JWT 或不透明 — Bob 不直接解析 IdP 存取權杖)
ID 權杖必須在每次 Authorization Code 交換和每次權杖重新整理時核發
ID 權杖簽署演算法RS256ES256PS256
重新整理權杖輪換你可以使用重新整理權杖輪換。Bob 在每次續訂時儲存新的權杖。如果你的提供者輪換重新整理權杖,請確保提供者僅在 Bob 收到替換權杖後才使上一個權杖失效(標準輪換行為,而非無寬限期的一次性使用)。

需要移交給 Bob 執行個體管理員的值

建立用戶端應用程式後,將以下值提供給 Bob 執行個體管理員:

查找位置Bob 設定欄位
用戶端 ID應用程式憑證頁面client_id
用戶端密碼應用程式憑證頁面client_secret
Authorization 端點 URL提供者的 OIDC 端點頁面或 .well-known/openid-configurationauthorization_endpoint
權杖端點 URL提供者的 OIDC 端點頁面或 .well-known/openid-configurationtoken_endpoint
JWKS URI提供者的 OIDC 端點頁面或 .well-known/openid-configurationjwks_uri
Issuer URL提供者的 OIDC 端點頁面或 .well-known/openid-configurationissuer
Userinfo 端點 URL(選用)提供者的 OIDC 端點頁面或 .well-known/openid-configurationuserinfo_endpoint
提示:

大多數提供者在 https://<你的提供者網域>/.well-known/openid-configuration 發佈所有端點 URL。

OIDC 設定

你可以使用 OIDC 提供者探索。按一下 Retrieve configuration 按鈕從提供者的 .well-known/openid-configuration 文件自動填入端點欄位,或者手動輸入每個端點 URL。

OIDC 需要下列設定詳細資訊:

欄位必要說明
client_id在身分識別提供者處註冊的用戶端識別碼。
client_secret已註冊應用程式的用戶端密碼。Bob 會安全地儲存此密碼,且永遠不會在 API 回應中傳回。
scopes授權流程中要求的範圍。此清單必須包含 openid。通常也包括 email 和用於核發重新整理權杖的提供者特定範圍,例如 offline_access
authorization_endpointBob 將使用者重新導向至的 HTTPS 授權 URL,用於登入。
token_endpoint用於將授權碼交換為權杖的 HTTPS 權杖 URL。
jwks_uri用於驗證 id_token 回應簽章的 JSON Web Key Set (JWKS) 的 HTTPS URL。
issuer身分識別提供者的 HTTPS 核發者識別碼。
prompt轉送至授權要求的 OIDC prompt 值。

OIDC 不使用 Attribute mapping。Bob 直接從 id_token 中的 email 宣告讀取使用者的電子郵件。

OIDC 設定範例

{
  "authorization_endpoint": "https://corp.okta.com/oauth2/default/v1/authorize",
  "token_endpoint": "https://corp.okta.com/oauth2/default/v1/token",
  "issuer": "https://corp.okta.com/oauth2/default",
  "client_id": "0oa1b2c3d4e5f6g7h8i9",
  "client_secret": "super-secret-value",
  "scopes": ["openid", "email", "offline_access"]
}

OIDC 需求和限制

  • Bob 在授權碼交換回應中需要 refresh_token。如果提供者未傳回,登入將失敗。
  • 對於大多數提供者,將 offline_access 新增至 scopes 會觸發重新整理權杖的核發。某些提供者使用不同的行為,因此請查看提供者的文件。
  • OIDC 後通道登出不可用。
  • 如果提供者變更其端點 URL,請在 Bob 中更新 IdP 設定。

步驟 2:新增網域篩選條件

儲存 IdP 後,新增應使用該 IdP 進行驗證的電子郵件網域。

Authentication 索引標籤中,找到剛建立的 IdP 並開啟其設定。 在 Domain filters 區段中,新增應使用此 IdP 的電子郵件網域。電子郵件地址符合已設定網域的使用者,在登入時將被重新導向至此 IdP。 儲存變更。

注意:

每個電子郵件網域只能與一個 IdP 建立關聯。如果某個網域已被另一個 IdP 使用,在解決衝突之前將無法儲存設定。在強制執行 SSO 之前,也必須驗證每個網域。請參閱驗證網域所有權

驗證網域所有權

IBM Bob 要求在為網域強制執行 SSO 之前,驗證組織對每個網域的所有權。驗證方式為在網域中新增 DNS TXT 記錄。

前往 IBM Bob 管理頁面。 選取 Authentication 索引標籤。 選取包含您要驗證之網域的 IdP。 在 Domain filters 區段中,找到該網域並複製顯示的驗證碼。 在您的 DNS 提供者中,依下列格式為網域新增 TXT 記錄:

bob-verify=<verification-code>

verification-code 取代為從 Domain filters 區段複製的驗證碼。 返回 Authentication 索引標籤,按一下該網域的 Check verification

當 IBM Bob 成功偵測到 TXT 記錄時,網域驗證狀態將更新為 Verified。DNS 變更可能需要一段時間才能傳播。

移除身分識別提供者

前往 IBM Bob 管理頁面。 選取 Authentication 索引標籤。 找到要移除的 IdP,按一下 Delete。 在確認對話方塊中,按一下 Confirm

警告:

刪除 IdP 將移除所有關聯網域的 SSO 設定。依賴該 IdP 進行驗證的使用者將需要透過其他方法登入。如果 IdP 擁有已驗證的網域,將顯示警告。

這個主題如何?