將 OpenID Connect 新增為外部識別提供者 (預覽)
適用於:白色圓圈內嵌灰色 X 符號 勞動力租戶 外部租戶(了解更多)
藉由設定與自定義設定的 OpenID Connect (OIDC) 識別提供者進行同盟,您可以讓使用者使用同盟外部提供者的現有帳戶註冊和登入您的應用程式。 此 OIDC 同盟允許對遵守 OpenID Connect 通訊協議的各種提供者進行驗證。
當您將 OIDC 識別提供者新增至使用者流程的登入選項時,用戶可以註冊並登入該使用者流程中定義的已註冊應用程式。 他們可以使用來自 OIDC 識別提供者的認證來執行這項操作。 (深入瞭解客戶的
先決條件
- 外部承租戶。
- 在租戶中已註冊的應用程式。
- 註冊和登入使用者流程。
設定「OpenID Connect」識別提供者
您必須先準備好識別平台,使其能接受來自您的 Microsoft Entra ID 租戶的聯邦身份驗證要求,以便將使用者聯邦身份驗證到您的識別平台。 若要這樣做,您必須填入重導 URI,並向您的識別提供者註冊以獲取識別。
移至下一個步驟之前,請填入您的重新導向 URI,如下所示:
https://<tenant-subdomain>.ciamlogin.com/<tenant-ID>/federation/oauth2
https://<tenant-subdomain>.ciamlogin.com/<tenant-subdomain>.onmicrosoft.com/federation/oauth2
啟用使用身份供應商的登入和註冊
若要為身分識別提供者中的帳戶的使用者啟用登入和註冊,您必須將 Microsoft Entra ID 註冊為身分識別提供者中的應用程式。 此步驟可讓您的身分識別提供者辨識您的身分,並將驗證令牌發行給 Microsoft Entra ID 同盟。 使用填入的重新導向 URI 註冊應用程式。 儲存識別提供者設定的詳細數據,以在Microsoft Entra External ID 租用戶中設定同盟。
同盟設定
若要在 Microsoft Entra External ID 中設定 OpenID Connect 同盟與您的身分識別提供者,您需要進行下列設定:
- 已知端點
- 簽發者 URI
- 用戶端識別碼
- 客戶端驗證方法
- 客戶端密碼
- 範圍
- 回應類型
-
宣告對應 (選擇性)
- 子
- 名字
- 名字
- 姓
- 電子郵件
- 電子郵件已驗證
- 電話號碼
- 電話號碼已驗證
- 街道地址
- 地區
- 地區
- 郵遞區號
- 國家
在系統管理中心設定新的 OpenID 連線識別提供者
設定識別提供者之後,在此步驟中,您會在 Microsoft Entra 系統管理中心設定新的 OpenID 連線同盟。
瀏覽至 身分識別>外部身分識別>所有身分識別提供者。
選取 [自訂] 索引標籤,然後選取 [新增>OpenID Connect]。
輸入識別提供者的下列詳細資料:
顯示名稱:在用戶登入與註冊的過程中顯示的您的身份提供商名稱。 例如,使用 IdP 名稱登入 或 使用 IdP 名稱註冊。
已知端點(也稱為元數據 URI)是 OIDC 探索 URI,取得識別提供者的組態資訊。 要從已知位置擷取的回應是 JSON 檔,包括其 OAuth 2.0 端點位置。 請注意,中繼資料檔至少應包含下列屬性:
issuer
、authorization_endpoint
、token_endpoint
、token_endpoint_auth_methods_supported
、response_types_supported
、subject_types_supported
和jwks_uri
。 如需詳細資訊,請參閱 OpenID Connect Discovery 規格。OpenID 簽發者 URI:您的身份提供者實體 URI,負責為您的應用程式簽發存取令牌。 例如,如果您使用 OpenID Connect 來 與 Azure AD B2C聯邦,您的簽發者 URI 可以從包含「簽發者」標籤的探索 URI 中取得,並且看起來如下:
https://login.b2clogin.com/{tenant}/v2.0/
。 簽發者 URI 是區分大小寫的 URL,使用 https 協定,包括主機和選擇性的端口號碼及路徑元件,且不含查詢或片段元件。
注意
目前不支援將其他Microsoft Entra 租用戶設定為外部識別提供者。 因此,不接受簽發者 URI 中的
microsoftonline.com
領域。- 用戶端識別碼 和 客戶端密碼 是識別已註冊應用程式服務的識別提供者所使用的識別符。 如果選取client_secret驗證,則必須提供客戶端密碼。 如果選取private_key_jwt,則必須在OpenID提供者元數據中提供私鑰(已知端點),才能透過屬性jwks_uri擷取。
-
客戶端驗證 是用來使用令牌端點向識別提供者進行驗證的客戶端驗證方法類型。 支援
client_secret_post
、client_secret_jwt
和private_key_jwt
驗證方法。
注意
由於可能的安全性問題,不支援client_secret_basic客戶端驗證方法。
-
範圍 定義您要從識別提供者收集的資訊和許可權,例如
openid profile
。 OpenID Connect 要求必須包含範圍中的openid
範圍值,才能從識別提供者接收標識符令牌。 其他範圍可以附加以空格分隔。 請參閱 OpenID Connect 檔,以查看哪些其他範圍可用,例如profile
、email
等。 -
回應類型 描述在身分驗證提供者
authorization_endpoint
的初始呼叫中傳回何種資訊。 目前僅支援code
回應類型。 目前不支援id_token
和token
。
您可以選取 [下一步] :宣告對應 來設定 宣告對應 或 檢閱 + 建立 來新增您的識別提供者。
注意
Microsoft 建議您不要 使用 隱式授權流程 或 ROPC 流程。 因此,OpenID 連線外部識別提供者設定不支援這些流程。 建議支援 SPA 的方式是 OAuth 2.0 授權碼流程(使用 PKCE) OIDC 同盟設定所支援。
將 OIDC 身分提供者新增到使用者流程中
此時,OIDC 身份提供者已在您的 Microsoft Entra ID 中設定,但尚未在任何的登入頁面中可用。 若要將 OIDC 識別提供者新增至使用者流程:
在您的外部租戶中,瀏覽至 Identity>外部身分識別>使用者流程。
請選擇您要新增 OIDC 身分提供者的使用者流程。
在 [設定] 底下,選取 [識別提供者]。
在 [其他識別提供者下,選取 OIDC 識別提供者。
選取 儲存。