繁体   English   中英

WSO2 API Manager(和Identity Server)上的令牌验证

[英]Token validation at WSO2 API Manager (and Identity Server)

我们使用wso2 API管理器+单独的身份服务器构建API。

为了实现资源服务器,我们需要

  1. 验证令牌(有效)
  2. 获取有关用户的信息(角色,用户名,全名等)
  3. 通过OAuth进行身份验证的详细信息(范围)

用户角色和身份验证范围是确定用户功能和应用安全设置所必需的(作为用户角色和授予的范围的交集)

目前看来,我可以通过2个请求获得所有必要的信息:

  1. / services / OAuth2TokenValidationService / (在没有专用IS的情况下为IS或ApiManager)的SOAP Web服务上调用“ 验证 ”方法

    响应包含有关令牌有效性,到期数据和用户范围的信息。

  2. / oauth2 / userinfo上执行GET ?schema = openid

    响应包含带有有关用户(角色,用户名等)信息的JSON

首次请求需要在wso2 IS服务器上注册的具有用户凭据的基本身份验证。 第二个仅需要资源服务器从客户端获得的OAuth令牌。

因此,问题是 :对于此用例(在资源服务器上获取作用域和用户信息),使用不同技术的这2个请求是否必要?或者我可能遗漏了一些东西?

第二个请求几乎是正确的,但是它不包含有关令牌范围的信息,因此,如果用户通常有权访问资源(根据其角色),则服务器将无法限制对资源的访问

如果需要2个请求,则用户在wso2 app上必须具有的最低系统角色是什么? 使用管理员凭据(例如默认的admin / admin)对我来说似乎不太安全,我想创建用户以最少的权限进行令牌验证。

  1. 在/ oauth2 / userinfo上执行GET?schema = openid这是一个由OAuth保护的其余端点,您需要使用访问令牌进行身份验证并获取用户信息。

  2. 在/ 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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM