如何实现AAD B2C与OKTA的集成?将OKTA作为外部身份提供商
AAD B2C 集成 Okta 作为外部身份提供商的实现步骤
一、Okta 端配置
- 登录 Okta 管理控制台,创建OIDC Web 应用(AAD B2C 基于 OIDC 协议对接外部身份提供商)
- 设置应用的重定向 URI:
https://<你的B2C租户名称>.b2clogin.com/<你的B2C租户名称>.onmicrosoft.com/oauth2/authresp,替换为实际租户名 - 记录三个关键信息:Okta 应用的客户端ID、客户端密钥,以及 Okta 的 OIDC 元数据端点(格式为
https://<你的Okta域名>/.well-known/openid-configuration)
二、AAD B2C 端添加 Okta 身份提供商
- 登录 Azure 门户,进入目标 AAD B2C 租户
- 导航至身份提供商 → 新建 OpenID Connect 提供商
- 填写配置项:
- 名称:自定义标识(如“Okta 外部登录”)
- 元数据 URL:填入 Okta 的 OIDC 元数据端点
- 客户端 ID:填入 Okta 应用的客户端ID
- 客户端密钥:填入 Okta 应用的客户端密钥
- 范围:勾选
openid,按需添加profile、email等 - 响应类型:选择
code - 响应模式:选择
form_post
- 保存配置
三、配置用户流/自定义策略实现登录流程
快速配置:使用用户流
- 进入 AAD B2C 的用户流,创建或编辑注册或登录类型的用户流
- 在“身份提供商”环节,勾选刚添加的 Okta 提供商,保存用户流
- 测试:点击“运行用户流”,选择关联的应用,启动后即可看到 Okta 登录入口
复杂场景:使用自定义策略
- 下载 AAD B2C 基础自定义策略模板(如
SocialAndLocalAccounts) - 在策略的
<ClaimsProviders>节点中插入 Okta 配置片段:
<ClaimsProvider> <Domain>okta.com</Domain> <DisplayName>Okta</DisplayName> <TechnicalProfiles> <TechnicalProfile Id="Okta-OIDC"> <DisplayName>Okta</DisplayName> <Protocol Name="OpenIdConnect" /> <Metadata> <Item Key="METADATA">https://<你的Okta域名>/.well-known/openid-configuration</Item> <Item Key="client_id">你的Okta客户端ID</Item> <Item Key="response_types">code</Item> <Item Key="scope">openid profile email</Item> <Item Key="response_mode">form_post</Item> <Item Key="HttpBinding">POST</Item> <Item Key="UsePolicyInRedirectUri">false</Item> </Metadata> <CryptographicKeys> <Key Id="client_secret" StorageReferenceId="B2C_1A_OktaClientSecret" /> </CryptographicKeys> <OutputClaims> <OutputClaim ClaimTypeReferenceId="issuerUserId" PartnerClaimType="sub" /> <OutputClaim ClaimTypeReferenceId="givenName" PartnerClaimType="given_name" /> <OutputClaim ClaimTypeReferenceId="surname" PartnerClaimType="family_name" /> <OutputClaim ClaimTypeReferenceId="email" PartnerClaimType="email" /> <OutputClaim ClaimTypeReferenceId="identityProvider" DefaultValue="okta.com" AlwaysUseDefaultValue="true" /> </OutputClaims> <OutputClaimsTransformations> <OutputClaimsTransformation ReferenceId="CreateRandomUPNUserName" /> <OutputClaimsTransformation ReferenceId="CreateUserPrincipalName" /> <OutputClaimsTransformation ReferenceId="CreateAlternativeSecurityId" /> </OutputClaimsTransformations> <UseTechnicalProfileForSessionManagement ReferenceId="SM-SocialLogin" /> </TechnicalProfile> </TechnicalProfiles> </ClaimsProvider>
- 在 AAD B2C 的密钥容器中,添加名为
B2C_1A_OktaClientSecret的密钥,值为 Okta 应用的客户端密钥 - 上传更新后的自定义策略,完成后测试策略
四、Azure 托管应用适配(可选)
- 若应用由 Azure AD 保护,确保身份验证配置允许 AAD B2C 颁发的令牌
- 自定义应用需验证令牌发行者为你的 B2C 租户,并正确解析来自 Okta 的用户声明
内容的提问来源于stack exchange,提问作者One Developer
相关产品推荐
相关产品推荐

