我们使用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
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句