1

我正在我的 webapp 中查看 UMA 2.0 以获得细粒度授权。但是 UMA 2.0 要求客户端尝试访问托管在资源服务器上的资源,返回 HTTP 401 错误以及在向授权服务请求授权令牌时使用的票证。

但这要求客户端知道它想要访问哪些资源或资源服务器上确实存在哪些资源。

在我的场景中,我有类似于 GitHub 上的一组存储库的东西,用户可以被授权访问其中的一个或多个。当用户登录时,我想向他展示他可以访问的存储库。

是否有任何标准方法可以查询资源服务器/授权服务器以获取用户有权访问的资源列表?UMA 2.0 如何假设客户端会发现它有权访问的现有资源?

4

1 回答 1

0

我也在调查这个。根据我发现的文档,您可以在资源注册端点(/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"
}

关于这个主题的一些链接:

于 2020-10-13T08:02:49.530 回答