适用于: 员工租户
外部租户(了解详细信息)
通过设置与自定义配置的 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 外部 ID 租户中设置联合身份验证。
联合设置
要与标识提供者在 Microsoft Entra 外部 ID 中配置 OpenID Connect 联合身份验证,您需要具备以下设置:
- 已知终结点
- 颁发者 URI
- 客户端 ID
- 客户端身份验证方法
- 客户端密码
- 范围
- 响应类型
-
声明映射
- 子
- 名称
- 名
- 姓
- 电子邮件(必需)
- 电子邮件已验证
- 电话号码
- 电话号码已验证
- 街道地址
- 本地性
- 区域
- 邮政编码
- 国家
在管理中心配置新的 OpenID connect 标识提供者
配置身份提供者之后,在此步骤中,您将在 Microsoft Entra 管理中心配置新的 OpenID Connect 联合。
至少以外部标识提供者管理员身份登录到 Microsoft Entra 管理中心。
浏览到 Entra ID>外部身份>所有身份提供者。
选择自定义选项卡,然后选择添加新>Open ID 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:负责为您的应用程序颁发访问令牌的身份提供商实体。 例如,如果使用 OpenID Connect 与 Azure AD B2C 联合,则可以使用“颁发者”标记从发现 URI 中获取颁发者 URI,如下所示:
https://login.b2clogin.com/{tenant}/v2.0/
颁发者 URI 是一个区分大小写的 URL,使用 https 方案包含方案、主机和(可选)端口号和路径组件,并且没有查询或片段组件。
注释
目前不支持将其他Microsoft Entra 租户配置为外部标识提供者。 因此,
microsoftonline.com
不接受颁发者 URI 中的域。- 客户端 ID 和 客户端密码 是标识提供者用来标识已注册的应用程序服务的标识符。 如果选择client_secret身份验证,则需要提供客户端密码。 如果选择private_key_jwt,则需要在 OpenID 提供程序元数据(已知终结点)中提供私钥,可通过属性jwks_uri进行检索。
-
客户端身份验证 是用于使用令牌终结点向标识提供者进行身份验证的客户端身份验证方法的类型。 支持
client_secret_post
、client_secret_jwt
和private_key_jwt
身份验证方法。
注释
由于可能存在安全问题,不支持client_secret_basic客户端身份验证方法。
-
范围 定义您希望从身份提供者获取的信息和权限,例如
openid profile
。 OpenID Connect 请求必须在 scope 中包含openid
值,才能从标识提供者获取 ID 令牌。 可以添加其他范围,并用空格分隔。 请参阅 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 标识提供者添加到用户流:
在您的外部租户帐户中,浏览到 Entra ID>外部标识>用户流。
选择要在其中添加 OIDC 标识提供者的用户流。
在“设置”下,选择“标识提供者”。
在其他标识提供者下,选择 OIDC 标识提供者。
选择“保存”。