[英]Token validation at WSO2 API Manager (and Identity Server)
我们使用wso2 API管理器+单独的身份服务器构建API。
为了实现资源服务器,我们需要
用户角色和身份验证范围是确定用户功能和应用安全设置所必需的(作为用户角色和授予的范围的交集)
目前看来,我可以通过2个请求获得所有必要的信息:
在/ services / OAuth2TokenValidationService / (在没有专用IS的情况下为IS或ApiManager)的SOAP Web服务上调用“ 验证 ”方法
响应包含有关令牌有效性,到期数据和用户范围的信息。
在/ oauth2 / userinfo上执行GET ?schema = openid
响应包含带有有关用户(角色,用户名等)信息的JSON
首次请求需要在wso2 IS服务器上注册的具有用户凭据的基本身份验证。 第二个仅需要资源服务器从客户端获得的OAuth令牌。
因此,问题是 :对于此用例(在资源服务器上获取作用域和用户信息),使用不同技术的这2个请求是否必要?或者我可能遗漏了一些东西?
第二个请求几乎是正确的,但是它不包含有关令牌范围的信息,因此,如果用户通常有权访问资源(根据其角色),则服务器将无法限制对资源的访问
如果需要2个请求,则用户在wso2 app上必须具有的最低系统角色是什么? 使用管理员凭据(例如默认的admin / admin)对我来说似乎不太安全,我想创建用户以最少的权限进行令牌验证。
在/ oauth2 / userinfo上执行GET?schema = openid这是一个由OAuth保护的其余端点,您需要使用访问令牌进行身份验证并获取用户信息。
在/ services / OAuth2TokenValidationService /上的SOAP Web服务上调用“验证”方法。此服务是一种管理服务,您可以在其中使用允许调用诸如Basic-Auth,Mutual ssl等管理服务的任何身份验证机制进行调用
在您的方案中,您可以使用双向ssl身份验证器对Identity Server [1]进行身份验证,在这里您可以找到有关此信息的更多信息。
除了不调用userinfo端点,您还可以配置身份服务器以发送带有令牌验证响应的JWT令牌。 然后,您可以从JWT令牌获取用户信息。 [2]在这里您将找到更多有关此的信息。
[1] http://isharaaruna.blogspot.com/2014/01/oauth-20-playground-sample-with-mutual.html
[2] http://blog.shelan.org/2013/07/how-to-get-user-profile-for-oauth-token.html
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.