列出 UMA 2.0 中的授权资源
Posted
技术标签:
【中文标题】列出 UMA 2.0 中的授权资源【英文标题】:List authorized resources in UMA 2.0 【发布时间】:2020-11-23 20:18:34 【问题描述】:我正在寻找 UMA 2.0 在我的 web 应用程序中进行细粒度授权。但是 UMA 2.0 要求客户端尝试访问托管在资源服务器上的资源,返回 HTTP 401 错误以及在向授权服务请求授权令牌时使用的票证。
但这前提是客户端知道它想要访问哪些资源或资源服务器上确实存在哪些资源。
在我的场景中,我有类似于 GitHub 上的一组存储库的东西,并且用户可以被授权访问其中的一个或多个。当用户登录时,我想向他展示他可以访问的存储库。
是否有任何标准方法可以查询资源服务器/授权服务器以获取用户有权访问的资源列表? UMA 2.0 如何假设客户端会发现它有权访问的现有资源?
【问题讨论】:
【参考方案1】:我也在研究这个。根据我发现的文档,您可以在资源注册端点(/resource_set)列出资源:
向 UMA resource_set 端点创建 GET 请求,包括 授权标头中的 PAT 不记名令牌。
请求:
curl \
--header "Authorization: Bearer 515d6551-6512-5279-98b6-c0ef3f03a723" \
--header "Accept-API-Version: resource=1.0" \
https://openam.example.com:8443/openam/uma/realms/root/resource_set
响应(id 列表):
"126615ba-b7fd-4660-b281-bae81aa45f7c0",
"3a2fe6d5-67c8-4a5a-83fb-09734f1dd5b10",
"8ed24623-fcb5-46b8-9a64-18ee1b9b7d5d0"
关于这个话题的一些链接:
https://backstage.forgerock.com/docs/am/7/uma-guide/managing-uma-resource-sets.html#to-list-uma-resource-sets https://www.keycloak.org/docs/latest/authorization_services/#_service_protection_resources_api https://docs.kantarainitiative.org/uma/wg/rec-oauth-uma-federated-authz-2.0.html#list-rreg https://docs.gravitee.io/am/current/am_devguide_protocols_uma2_overview.html#resource_registration_endpoint【讨论】:
以上是关于列出 UMA 2.0 中的授权资源的主要内容,如果未能解决你的问题,请参考以下文章