使用SAML SSO身份验证时出现此问题。我已经成功设置了WSO2IS 5.0.0身份服务器,我也成功设置了(至少我希望如此)二级用户存储。我使用了JDBCUserStoreManager实现。我已将此商店设为DOMAIN。这个用户商店很好用,至少我认为它确实如此。因为它将用户属性存储到其表(USER_ATTRIBUTES)中,并且这些属性由WSO2IS管理员读取...
https://localhost:9443/carbon/userprofile/edit.jsp?username=DOMAIN/demo_jbu&profile=default&fromUserMgt=true
用户被标识为DOMAIN \ username,因此当我想从此DOMAIN登录用户时,请求转到我的AUTHENTICATOR实现,以便我可以管理来自此域的用户的身份验证。
奇怪的是,如果我使用WSO2IS管理页面,我可以很好地设置和读取用户的属性。如果我使用SAML SSO身份验证(已经为PRIMARY域的用户设置了服务提供商和声明映射),一切正常,调用SP获取所有属性 - 在WSO2IS管理中映射:
https://localhost:9443/carbon/application/configure-service-provider.jsp
如果我使用SAML SSO身份验证,但我想从我的DOMAIN中记录用户,则SP不会得到任何内容。
我可以在DefaultResponseBuilder中覆盖此行为,我可以将任何我想要的内容放入SAMLResponse,但我觉得这种方法没有问题。任何人都可以告诉我,在哪里寻找错误?可能有什么不对?我应该从哪里开始寻找问题?我已经尝试调试它,似乎它(SAML SSO / AUTHENTICATOR)没有找到DOMAIN用户的任何声明。
提前谢谢。
约瑟夫
答案 0 :(得分:3)
我认为这是Identity Server 5.0.0中的错误。当您使用SAML2 SSO时,用户可以使用域名和没有域名的用户名登录Identity Server。基本上
bob
和foo.com/bob
必须同时运行,并从bob
用户商店返回foo.com
用户的属性。但是,IS 5.0.0存在问题,如果辅助用户存储用户登录时没有域名,则Identity Server不会返回用户属性。但是,请尝试使用foo.com/bob
登录,然后它会返回用户的属性。
您可以找到公开jira。它包含源差异。它必须是一个简单的修复程序,您甚至可以编译源代码并将修复程序添加到Identity Server中。