时间:2025-05-18 19:42
人气:
作者:admin
在 WSO2 Identity Server 或 WSO2 API Manager 中,Identity Providers (身份提供者) 功能允许您将外部身份管理系统(如 Keycloak、Azure AD、Okta 等)集成到 WSO2 平台中,实现联合身份认证(Federation)。以下是使用 WSO2 Identity Providers 功能并与 Keycloak 对接的完整步骤:
登录 Keycloak 管理控制台
访问 https://keycloak-host:port/auth/admin。
创建 Realm(如果尚未创建)
进入默认的 master Realm 或新建一个(如 my-realm)。
创建客户端(Client)
wso2-client(自定义名称)。openid-connect。https://wso2-host:9443/commonauth。*(或限制为 WSO2 域名)。记录关键信息
wso2-clienthttps://keycloak-host:port/auth/realms/my-realm/.well-known/openid-configuration登录 WSO2 管理控制台
访问 https://wso2-host:9443/carbon,使用管理员账号登录。
创建新的 Identity Provider
Keycloak-IDP)。配置 OpenID Connect 连接
wso2-client(Keycloak 中创建的客户端 ID)。https://keycloak-host:port/auth/realms/my-realm/protocol/openid-connect/auth)。https://keycloak-host:port/auth/realms/my-realm/protocol/openid-connect/token)。https://keycloak-host:port/auth/realms/my-realm/protocol/openid-connect/userinfo)。https://keycloak-host:port/auth/realms/my-realm/protocol/openid-connect/certs)。https://wso2-host:9443/commonauth(与 Keycloak 客户端配置一致)。配置声明映射(Claim Mapping)
email、given_name)映射到 WSO2 的本地声明。email → Local Claim:http://wso2.org/claims/emailaddress保存配置
点击 Register 完成 Identity Provider 的创建。

创建服务提供者(Service Provider)
My-App)。配置联合认证
Keycloak-IDP。配置声明映射
确保服务提供者使用的声明与 Identity Provider 的映射一致。
在 API Manager 中启用 Keycloak 认证
https://wso2-host:9443/publisher)。Keycloak-IDP。订阅 API 并测试
将第三方idp的用户字段映射到wso2-apim中,可以按着下面步骤实现
如果不开启,它会映射默认的几个字段,如
uid,nickName,displayName,roles等
[authentication.endpoint]
enable_custom_claim_mappings = true
固定的客户端角色

自定义的token中的元素

wso2中注册用户后具有这个角色

用户每次登录时都会进行用户信息的同步

** IDP到wso2时的对应关系的优先级
找到对应的sp,通过在sp的
Claim Configuration,需要注意其它对应的sp也需要有相同的Claim Configuration,否则用户登录这块会出现无法映射的问题。

数据何时从第三方IDP同步到wso2
用户通过第三方登录时,当数据有变更,数据会自动同步到wso2系统,它在wso2am_shared_db库中um_user_attribute表存储,如图

作者:仓储大叔,张占岭,
荣誉:微软MVP
QQ:853066980
支付宝扫一扫,为大叔打赏!
上一篇:敏感词过滤 + 限流
下一篇:SpringBoot3整合AI
【从0到1构建一个ClaudeAgent】协作-Agent团队