WSO2 Identity Server:无法将自定义声明与OAuth2一起使用



我们已使用API Manager 1.10.0安装预打包Identity Server 5.1.0,并使用sqlserver作为数据存储。

我们使用OAUTH2来授权我们的API's,并且我们希望将我们的本地声明映射到服务提供商(应用程序?)。在API后面,我们有一个带有一些日志记录的.Net Wcf服务,我们在其中使用WebOperationContext.Current.IncomingRequest.Headers["assertion"]读取标题并打印现有的声明。

退回的索赔为:

{"iss":"wso2.org/products/am"
"exp":1462357259751
"wso2url/claims/subscriber":"Sjaak"
"wso2url/claims/applicationid":"1003"
"wso2url/claims/applicationname":"DefaultApplication"
"wso2url/claims/applicationtier":"Medium"
"wso2url/claims/apicontext":"/Test/v1.0"
"wso2url/claims/version":"v1.0"
"wso2url/claims/tier":"Silver"
"wso2url/claims/keytype":"PRODUCTION"
"wso2url/claims/usertype":"APPLICATION"
"wso2url/claims/enduser":"Sjaak@carbon.super"
"wso2url/claims/enduserTenantId":"-1234"
"wso2url/claims/emailaddress":"sjakie@chocola.nl"
"wso2url/claims/givenname":"Sjakie"
"wso2url/claims/lastname":"van de Chocoladefabriek"
"wso2url/claims/role":"Internal/subscriber
Internal/everyone
Application/Sjaak_DefaultApplication_PRODUCTION"}

wso2url在哪里http://wso2.org,但我们不能发布这个,因为我没有10个信誉点…:(

这些声明中的信息很好,但只有我们想使用我们自己的uri,所以不是wso2.org,而是myorg.com。我们还想添加其他声明,例如我们自己的userId和其他一些东西。

除其他外,我们遵循了为服务提供商配置索赔的指南,但没有成功。我们假设应用程序是我们可以使用声明的服务提供商。

有人知道我们做错了什么吗?我们需要做些什么来添加自定义声明?

提前感谢!

【5月9日增补】也许这能为我们指明正确的方向?当我们向应用程序添加订阅并生成新密钥时,列表中没有新的服务提供商:用户Sjaak没有新服务提供商的列表,因此缺少:Sjaak_CalculatorApp_PRODUCTION

但即使我们这样做是为了用户管理,索赔也不会通过。我们有以下索赔配置,在我的日志中,仍然存在如上所述的索赔,没有新的索赔,因此没有名为accountnaam的索赔,也没有voogd.com uri:

服务提供商(SP)-它为一些最终用户提供服务,并依靠可信身份提供商(IDP)为他们处理身份验证和授权。SP可以使用多种协议(Oauth2、SAML2等)来与IDP通信。

声明是为SP定义的,因为相同的声明可以通过不同的协议发送。在默认情况下,Identity server使用wso2声明方言(以wos2.com开头)进行声明。如果您想要与此不同的声明方言,请在服务提供商配置中使用"定义自定义声明方言"选项。在那里,您可以将wso2索赔(本地索赔)映射到您自己的索赔(服务提供商索赔)。

最新更新