我最近将我的环境从WSO2 IS 5.0.0更新为WSO2 IS 5.2.0。我的环境由2台正在创建集群的计算机组成(使用WKA成员资格方案和Load Balancer(AWS ELB)并启用了粘性会话)。我正在使用MySQL(不是默认的H2数据库)。部署IS的计算机是Windows Server 2012 R2(EC2 AWS计算机)。我也在使用所谓的WSO2 IS Admin服务。
如标题中所述,我正在使用UserProfileMgtService
(https://url:port/services/UserProfileMgtService?wsdl)。
结合它我使用OAuth2TokenValidationService
(https://url:port/services/OAuth2TokenValidationService?wsdl)。
如果我将有效的访问令牌传递给OAuth2TokenValidationService,我可以使用OAuth2TokenValidationService的Validate方法填写数据OAuth2TokenValidationResponseDTO对象。结果,我能够提取authorizedUser并将其传递给UserProfileMgtService的getUserProfile方法。我使用的是标准的carbon.super域名,我使用的是电子邮件作为用户名。例如,我将以下两个参数传递给getUserProfile:
“admin @ admin.com @ carbon.super”作为用户名
“default”as profileName
结果我收到以下消息:
UserNotFound:用户admin @ admin.com @ carbon.superdoes不存在于:PRIMARY
如果我从授权用户中删除“@ carbon.super”,一切都很好,我可以获取用户个人资料信息。这对我来说非常重要,因为我使用IS的多租户,并且有一种情况我可能有以下用户:
管理员@ admin.com @ test.net
管理员@ admin.com @ test2.net
我注意到这个服务在WSO2 IS 5.0.0中没有这样做。升级后我开始遇到此问题。
这是否是一种理想的行为,是因为IS 5.2.0中API的变化而引入的?如果是这样,还有另一种方法可以使用“用户名”+“租户域”获取用户配置文件(在传递有效访问令牌时由OAuth2TokenValidationService作为授权用户检索)。
这可能是由于配置错误造成的吗?如果是这样,哪个文件需要更新,哪些文件应该在其中进行修改?
是否有可以为WSO2 IS 5.2.0管理服务检索更多信息的地方?
提前致谢。
答案 0 :(得分:1)
Identity Server中的UserProfileMgtService是管理服务。在WSO2管理服务中,租户域由经过身份验证的用户标识,不应使用用户名传递。
用户名应为租户免费用户名。
因此,您可以从用户名中删除carbon.super部分,然后它就可以了。
在租户设置中,您需要与租户用户(Ex admin @ admin.com @ test.net)进行身份验证才能访问这些API。因此,就像在超级租户中一样,您可以使用租户免费用户名然后它将起作用。
例如,如果您想在租户域test.net中获取用户:testuser@admin.com的用户个人资料,您的请求应该像下面的图片。
感谢
Isura。