1.2. 术语


在进一步操作前,了解红帽构建的 Keycloak 授权服务引入的这些术语和概念非常重要。

1.2.1. 资源服务器

对于每个 OAuth2 术语,资源服务器是托管受保护的资源并能够接受和响应受保护的资源请求的服务器。

资源服务器通常依赖于某种类型的信息来确定是否应授予对受保护资源的访问。对于基于 RESTful 的资源服务器,该信息通常以安全令牌的形式传输,通常作为 bearer 令牌以及对服务器的每次请求发送。依赖会话来验证用户的 Web 应用通常会将该信息存储在用户会话中,并从那里检索信息,以供每个请求使用。

在 Red Hat build of Keycloak 中,任何 机密 客户端应用程序都可以充当资源服务器。此客户端的资源及其对应范围受一组授权策略保护和管理。

1.2.2. 资源

资源是应用程序和组织资产的一部分。它可以是一个或多个端点、一个典型的 Web 资源,如 HTML 页面等。在授权策略术语中,资源是受保护的 对象

每个资源都有唯一标识符,可以代表单个资源或一组资源。例如,您可以管理一个 银行帐户资源,其代表并为所有银行帐户定义一组授权策略。但是,您也可以将不同的资源命名为 alice's banking Account,它代表单个客户拥有的单个资源,他们可以拥有自己的授权策略集。

1.2.3. 影响范围

资源范围是可能对资源执行的有界范围的访问权限。在授权策略术语中,范围是可能会以逻辑方式应用到资源的一些 操作动词 之一。

它通常表示可以使用给定资源完成什么操作。范围示例包括 view、edit、delete 等。但是,范围也可以与资源提供的特定信息相关。在这种情况下,您可以具有项目资源和成本范围,其中成本范围用于定义特定策略和权限,供用户访问项目的成本。

1.2.4. 权限

考虑这个简单和非常常见的权限:

权限将受保护的对象与必须评估的策略相关联,以确定是否授予访问权限。

  • X 可在资源 Z 上执行 Y

    • where …​

      • X 代表一个或多个用户、角色或组,或者它们的组合。您也可以在此处使用声明和上下文。
      • y 代表要执行的操作,如 write、view 等。
      • z 代表受保护的资源,如 "/accounts"。

Red Hat build of Keycloak 提供了一个丰富的平台,用于构建范围从简单到非常复杂的、基于规则的动态权限。它提供灵活性并有助于:

  • 降低代码重构和权限管理成本
  • 支持更灵活的安全模型,帮助您轻松适应安全要求的变化
  • 在运行时进行更改;应用程序只关注受保护的资源和范围,而不关注它们是如何保护的。

1.2.5. 策略

策略定义了必须满足授予对象访问权限的条件。与权限不同,您没有指定受保护的对象,而是对给定对象(如资源、范围或两者)满足的条件。策略与可用于保护资源的不同访问控制机制(ACM)密切相关。使用策略,您可以为属性的访问控制(ABAC)、基于角色的访问控制(RBAC)、基于上下文的访问控制或其中的任何组合实施策略。

红帽 Keycloak 的构建利用策略的概念以及如何通过提供聚合策略的概念来定义它们,您可以在其中构建"策略策略",并仍然控制评估的行为。对于可以访问给定资源的所有条件,而不是编写一个大型策略,红帽构建的 Keycloak 授权服务中的策略实施遵循划分和拥塞技术。也就是说,您可以创建单独的策略,然后将它们与不同的权限重复使用,并通过组合单个策略来构建更复杂的策略。

1.2.6. 策略供应商

策略提供程序是特定策略类型的实现。Red Hat build of Keycloak 提供内置的策略,由对应的策略供应商支持,您可以创建自己的策略类型来支持您的特定要求。

Red Hat build of Keycloak 提供了一个 SPI (Service Provider Interface),可用于插入您自己的策略供应商实现。

1.2.7. 权限票据

权限票据是由用户管理访问(UMA)规范定义的特殊令牌类型,它提供由授权服务器决定的不透明结构。此结构代表了客户端所请求的资源和/或范围、访问上下文以及必须应用到授权数据请求的策略(请求方令牌 [RPT])。

在 UMA 中,权限票据对于支持个人对人共享以及个人对组织共享至关重要。使用授权工作流的权限票据可启用一系列很复杂的场景,其中资源所有者和资源服务器可根据管理这些资源访问权限的细粒度策略完全控制其资源。

在 UMA 工作流中,授权服务器向资源服务器发出权限票据,这会将权限票据返回到尝试访问受保护的资源的客户端。客户端收到票据后,它可以通过向授权服务器发送票据来请求 RPT (一个最终令牌保存授权数据)。

有关权限票据的更多信息,请参阅 用户管理的访问UMA 规格。

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2025 Red Hat