如何将现有Keycloak实例配置为Azure B2C租户的IDP
可以将Keycloak配置为Azure B2C的身份提供商(IDP)
完全可以实现这个过渡需求,以下是具体配置步骤:
第一步:在Keycloak中配置Azure B2C的信任客户端
- 登录Keycloak管理控制台,进入你正在使用的Realm
- 创建一个新的OpenID Connect客户端,客户端类型选择
confidential - 设置客户端的重定向URI为Azure B2C的回调地址,格式为:
https://<你的Azure B2C租户名>.b2clogin.com/<你的Azure B2C租户名>.onmicrosoft.com/oauth2/authresp - 保存后,记录下该客户端的客户端ID和生成的客户端密钥,后续Azure B2C配置会用到
- 确认Keycloak的OpenID Connect配置端点(通常是
https://<你的Keycloak域名>/realms/<你的Realm>/.well-known/openid-configuration)可以被Azure B2C网络访问
第二步:在Azure B2C中添加Keycloak作为OpenID Connect身份提供商
- 登录Azure门户,进入你的B2C租户后台
- 导航到身份体验框架 > 身份提供商,点击新建OpenID Connect提供商
- 填写基础信息:
- 名称:自定义名称,比如「Keycloak原有账号登录」
- 元数据地址:填入刚才确认的Keycloak OpenID配置端点URL
- 配置客户端凭据:
- 客户端ID:粘贴Keycloak中创建的客户端ID
- 客户端密钥:粘贴Keycloak中生成的客户端密钥
- 设置范围:至少勾选
openid,如果需要获取用户邮箱、昵称等信息,可额外勾选profile、email - 响应类型选择
code - 声明映射:将Keycloak返回的用户字段映射到Azure B2C的标准声明,比如把Keycloak的
email映射到Azure B2C的email,sub映射到oid - 保存配置
第三步:将Keycloak登录选项添加到用户流
- 在Azure B2C后台进入用户流,选择你正在使用的注册/登录流(比如SignUpOrSignIn类型)
- 进入身份提供商设置页面,勾选刚才添加的Keycloak提供商,保存更改
- 点击「运行用户流」测试,此时登录界面会出现Keycloak的登录入口
验证测试
点击用户流中的Keycloak登录选项,会跳转到Keycloak的登录页面,输入原有Keycloak用户的凭证后,会自动跳转回Azure B2C完成登录流程,实现双IDP共存的过渡需求
内容的提问来源于stack exchange,提问作者Herman Shpryhau
相关产品推荐
相关产品推荐

