WSO2 Identity Server:无法对OAuth2使用自定义声明

时间:2016-05-04 13:39:44

标签: wso2 wso2is claims-based-identity claims

我们使用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和其他一些内容。

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

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

提前致谢!

[添加于9月5日] 也许这可以指出我们正确的方向? 当我们向应用程序添加订阅并生成新密钥时,列表中没有新的服务提供者: The list of service provider without a new one for user Sjaak, so there is missing: Sjaak_CalculatorApp_PRODUCTION

但即使我们为用户管理员执行此操作,索赔也无法通过。我们有以下索赔配置,在我的日志记录中,仍然存在与上述相同的声明,没有新声明,因此没有名为accountnaam的声明,也没有voogd.com uri:

1 个答案:

答案 0 :(得分:0)

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

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