首页 文章

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

提问于
浏览
2

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

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

  • 验证令牌(它有效)

  • 获取有关用户的信息(角色,用户名,全名等)

  • 通过OAuth进行身份验证的详细信息(范围)

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

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

  • 在SOAP Web服务上调用“validate”方法,该方法位于 /services/OAuth2TokenValidationService/ (如果没有专用IS,则为IS或ApiManager)

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

  • /oauth2/userinfo?schema=openid 上获取

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

第一个请求需要具有用户凭据的基本身份验证,在wso2 IS服务器上注册 . 第二个只需要资源服务器从客户端获取的OAuth令牌 .

So the question is :这个用例需要使用不同技术的2个请求(在资源服务器上获取范围和用户信息)或者我可能缺少某些东西吗?

第二个请求几乎是好的,但它不包含有关令牌范围的信息,因此如果用户通常可以访问它(根据他的角色),服务器不能限制对资源的访问

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

1 回答

  • 0
    • do GET on / oauth2 / userinfo?schema = openid这是一个使用OAuth保护的休息 endpoints ,您需要使用访问令牌进行身份验证并获取用户信息 .

    • 在SOAP Web服务上调用“validate”方法,该方法位于/ services / OAuth2TokenValidationService /此服务是一个管理服务,您可以使用任何允许调用管理服务(如Basic-Auth,Mutual ssl等)的身份验证机制进行调用 .

    在您的方案中,您可以使用相互ssl身份验证器对身份服务器[1]进行身份验证,您可以在此处找到有关该身份验证器的更多信息 .

    除了不调用userinfo endpoints 之外,您还可以配置Identity Server以使用令牌验证响应发送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

相关问题