WSO2 Identity Server 5.0.0无法从辅助用户存储中为用户返回SAMLResponse中的用户声明

时间:2014-11-10 19:02:29

标签: wso2 single-sign-on saml wso2is claims

使用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用户的任何声明。

提前谢谢。

约瑟夫

1 个答案:

答案 0 :(得分:3)

我认为这是Identity Server 5.0.0中的错误。当您使用SAML2 SSO时,用户可以使用域名和没有域名的用户名登录Identity Server。基本上 bobfoo.com/bob必须同时运行,并从bob用户商店返回foo.com用户的属性。但是,IS 5.0.0存在问题,如果辅助用户存储用户登录时没有域名,则Identity Server不会返回用户属性。但是,请尝试使用foo.com/bob登录,然后它会返回用户的属性。

您可以找到公开jira。它包含源差异。它必须是一个简单的修复程序,您甚至可以编译源代码并将修复程序添加到Identity Server中。