我们使用wso2 API管理器+单独的身份服务器构建我们的API。
为了实现资源服务器,我们需要
用户角色和身份验证范围是确定用户功能和应用安全设置(作为用户角色和授权范围的交集)所必需的。
目前似乎我可以通过2个请求获得所有必要的信息:
在SOAP Web服务上调用“验证”方法,该方法位于 / services / OAuth2TokenValidationService / (如果没有专用IS,则为IS或ApiManager)
响应包含有关令牌有效性,到期数据和用户范围的信息。
在 / oauth2 / userinfo上进行GET?schema = openid
响应包含JSON,其中包含有关用户(角色,用户名等)的信息
第一个请求需要一个带有用户凭据的基本身份验证,在wso2 IS服务器上注册。第二个只需要资源服务器从客户端获取的OAuth令牌。
所以问题是:这个用例是否需要使用不同技术的2个请求(在资源服务器上获取范围和用户信息)或者我错过了什么?
第二个请求几乎是好的,但它不包含有关令牌范围的信息,因此如果用户通常可以访问它(根据他的角色),服务器不能限制对资源的访问
如果需要2个请求,wso2 app的最低系统角色是什么,用户必须访问SoapService?使用管理员凭据(例如默认的admin / admin)对我来说似乎太不安全了,我想用最少的权限创建用户进行令牌验证。
答案 0 :(得分:0)
在/ oauth2 / userinfo上执行GET吗?schema = openid 这是一个使用OAuth保护的休息端点,您需要使用访问令牌进行身份验证并获取用户信息。
在SOAP Web服务上调用“validate”方法,该方法位于/ services / OAuth2TokenValidationService / 此服务是一个管理服务,您可以使用任何允许调用管理服务(如Basic-Auth,Mutual ssl等)的身份验证机制来调用
在您的方案中,您可以使用相互ssl身份验证器向身份服务器[1]进行身份验证,您可以在此处找到有关该服务器的更多信息。
除了不调用userinfo端点之外,您还可以配置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