8.4.3. 管理权限请求


使用 UMA 协议的资源服务器可以使用特定的端点来管理权限请求。此端点提供了一个与 UMA 兼容的流,用于注册权限请求并获取一个权限票据。

http://${host}:${port}/auth/realms/${realm_name}/authz/protection/permission
Copy to Clipboard Toggle word wrap

权限 ticket 是代表权限请求的特殊安全令牌类型。根据 UMA 规格,权限 ticket 为:

关联句柄,该处理从授权服务器发布到资源服务器(从资源服务器到客户端),并最终从客户端返回到授权服务器,以启用授权服务器来评估正确的策略以应用到授权数据请求。

在大多数情况下,您不需要直接处理此端点。Red Hat Single Sign-On 提供了一个 策略强制器,可为资源服务器启用 UMA,以便它可以从授权服务器获取权限票据,将此票据返回到客户端应用程序,并根据最终请求方令牌(RPT)强制执行授权决策。

从 Red Hat Single Sign-On 获取权限票据的过程由资源服务器而不是常规客户端应用程序执行,当客户端试图访问受保护的资源时,则会获得权限票据,而无需必要授权访问该资源。使用 UMA 时,权限问题单是一个重要事项,因为它允许资源服务器实现:

  • 来自与资源服务器保护的资源相关的数据的客户端摘要
  • 在 Red Hat Single Sign-On 授权请求中注册,稍后可在工作流中使用,以根据资源的所有者同意授予访问权限
  • 将资源服务器与授权服务器分离,并允许使用不同的授权服务器保护和管理其资源

客户端明智之,权限票据也很重要,需要强调:

  • 客户端不需要了解授权数据如何与受保护的资源关联。对客户端而言完全不透明权限票据。
  • 客户端可以访问不同资源服务器上的资源,并由不同的授权服务器进行保护

这些仅仅是 UMA 带来的一些好处,其中 UMA 的其他方面很严重基于权限票据,特别考虑隐私和用户控制对其资源的访问。

8.4.3.1. 创建权限票据

要创建权限 ticket,请按如下所示发送 HTTP POST 请求:

curl -X POST \
  http://${host}:${port}/auth/realms/${realm_name}/authz/protection/permission \
  -H 'Authorization: Bearer '$pat \
  -H 'Content-Type: application/json' \
  -d '[
  {
    "resource_id": "{resource_id}",
    "resource_scopes": [
      "view"
    ]
  }
]'
Copy to Clipboard Toggle word wrap

在创建问题单时,您还可以推送任意声明,并将这些声明与 ticket 关联:

curl -X POST \
  http://${host}:${port}/auth/realms/${realm_name}/authz/protection/permission \
  -H 'Authorization: Bearer '$pat \
  -H 'Content-Type: application/json' \
  -d '[
  {
    "resource_id": "{resource_id}",
    "resource_scopes": [
      "view"
    ],
    "claims": {
        "organization": ["acme"]
    }
  }
]'
Copy to Clipboard Toggle word wrap

在评估与权限票据关联的资源和范围时,这些声明可用于您的策略。

Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2026 Red Hat
返回顶部