我使用WSO2IS作为OIDC提供程序进行身份验证和授权。使用身份验证代码授予,我获得了访问令牌。我需要授权用户根据他们的角色访问特定服务。
我尝试使用XACML来解决这个问题,但我发现我需要在REST API XACML请求的标头中传递username64的base64编码。相反,我有什么方法可以使用access-token来授权用户根据他们的角色访问服务?
这部分授权发生在资源服务器中。我以为我可以使用内省端点基于使用范围的访问令牌来授权用户。但我不明白如何使用范围来为用户提供访问控制?
答案 0 :(得分:0)
要获取具有用户可用范围的访问令牌,OAuth2客户端必须请求其关注的所有范围,并且令牌将仅包含用户有权访问的范围。请参阅How can I capture the stdout output of a child process?。
是的,这很麻烦,但OAuth2主要是授权委托协议 - 它允许用户将他们的一些权利(范围)委托给客户。
或者,如果您可以根据角色决定权限,则可能会从ID令牌中获取用户角色列表。