搜索

12.6. 客户端范围

download PDF

使用红帽单点登录在名为 客户端范围 的实体中定义共享客户端配置。客户端范围为 多个客户端配置 协议映射器 和角色范围映射

客户端范围也支持 OAuth 2 范围 参数。客户端应用使用此参数来请求访问令牌中的声明或角色,具体取决于应用的要求。

要创建客户端范围,请按照以下步骤执行:

  1. 点击菜单中的 Client Scopes

    客户端范围列表

    client scopes list

  2. Create
  3. 为您的客户端范围命名。
  4. Save

客户端范围 与常规客户端有类似的选项卡。您可以定义 协议映射器 和角色范围映射。这些映射可以被其他客户端继承,并配置为从这个客户端范围内继承这些映射。

12.6.1. 协议

创建客户端范围时,选择 协议。同一范围中的链接的客户端必须具有相同的协议。

每个 realm 在菜单中具有一组预定义的内置客户端范围。

  • SAML 协议: role_list.此范围包含一个协议映射程序,用于 SAML 断言的角色列表。
  • OpenID Connect 协议: Several 客户端范围如下:

    • roles

      这个范围没有在 OpenID Connect 规格中定义,它们不会自动添加到访问令牌中的 范围 声明中。此范围具有映射器,用于将用户的角色添加到访问令牌,并为至少具有一个客户端角色的客户端添加受众。这些映射器在 Audience 部分中 详细介绍。

    • web-origins

      这个范围还没有在 OpenID Connect 规格中定义,且不会添加到声明访问令牌的范围中。此范围用于将允许的 Web 源添加到访问令牌 允许的声明中

    • microprofile-jwt

      此范围处理 MicroProfile/JWT Auth 规范 中定义的声明。此范围为 upn 声明定义了用户属性映射程序,以及 声明的域角色映射程序。这些映射程序可以更改,以便使用不同的属性来创建 MicroProfile/JWT 特定的声明。

    • offline_access

      当客户端需要获取离线令牌时,会使用这个范围。有关离线令牌的更多详细信息,请参见 Offline Access 部分和 OpenID Connect 规格

    • 配置集
    • email
    • address
    • 电话

客户端范围、电子邮件地址 和电话OpenID Connect 规范 中定义。这些范围没有定义任何角色范围映射,但它们定义了协议映射。这些映射程序与 OpenID Connect 规范中定义的声明对应。

例如,当您打开 电话 客户端范围并打开 映射程序 标签时,您会看到与范围 电话 规范中定义的声明对应的协议映射程序。

客户端范围映射程序

client scopes phone

电话 客户端范围连接到客户端时,客户端会自动继承 电话 客户端范围中定义的所有协议映射程序。为这个客户端发布的访问令牌包含用户的电话号码信息,假设该用户有定义的电话号码。

内置客户端范围包含规格中定义的协议映射程序。您可以自由编辑客户端范围,并创建、更新或删除任何协议映射程序或角色范围映射。

12.6.3. 使用客户端链接客户端范围

客户端范围和客户端之间的链接在客户端的客户端 范围 选项卡中配置。在客户端范围和客户端之间链接的两种方法如下:

默认客户端范围
此设置适用于 OpenID Connect 和 SAML 客户端。在为客户端发布 OpenID Connect 令牌或 SAML 断言时,会应用默认的客户端范围。客户端将继承客户端范围中定义的协议映射和角色范围映射。对于 OpenID Connect 协议,始终应用映射程序和角色范围映射,不论 OpenID Connect 授权请求中的范围参数使用的值是什么。
可选的客户端范围
此设置仅适用于 OpenID Connect 客户端。为这个客户端发出令牌时应用可选的客户端范围,但仅在 OpenID Connect 授权请求中的 scope 参数请求时才应用。

12.6.3.1. Example

在本例中,假设客户端有 配置集 和电子邮件 链接为默认客户端范围,以及连接为可选客户端范围的地址。 在向 OpenID Connect 授权端点发送请求时,客户端使用 scope 参数的值。

scope=openid phone

scope 参数包含字符串,范围值按空格分开。value openid 是用于所有 OpenID Connect 请求的 meta-value。令牌将包含来自默认客户端范围 配置集 和电子邮件 以及 电话 的 mappers 和角色范围映射,以及 scope 参数请求的可选客户端范围。

12.6.4. 评估客户端范围

mapper s 选项卡包含 protocol mappers,Scope 选项卡包含为此客户端声明的角色范围映射。它们不包含从客户端范围继承的 mappers 和范围映射。可以查看有效协议映射程序(即客户端本身中定义的协议映射程序以及从链接的客户端范围继承)以及为客户端生成令牌时使用的有效角色范围映射。

流程

  1. 客户端的客户端范围 选项卡。
  2. 打开"子选项卡 评估 "
  3. 选择您要应用的可选客户端范围。

这也会显示 scope 参数的值。此参数需要从应用程序发送到 Red Hat Single Sign-On OpenID Connect 授权端点。

评估客户端范围

client scopes evaluate

注意

要为应用程序发送 范围 参数的自定义值,请参阅 参数转发部分,用于 servlet 适配器或 javascript adapter 部分,以用于 javascript 适配器。

所有示例是为特定用户生成的,并为特定客户端发布,其值用于指定的 scope 参数。这个示例包括使用的所有声明和角色映射。

12.6.5. 客户端范围权限

向用户发出令牌时,仅当用户被允许使用令牌时,客户端范围才会生效。

当客户端范围没有定义任何角色范围映射时,允许每个用户使用此客户端范围。但是,当客户端范围定义了角色范围映射时,用户必须至少是其中一个角色的成员。用户角色和客户端范围的角色之间必须有一个交集。复合角色工厂用于评估此交集。

如果用户不允许使用客户端范围,则在生成令牌时不会使用协议映射程序或角色范围映射。客户端范围不会出现在令牌中的 范围 值中。

12.6.6. realm 默认客户端范围

使用 Realm Default Client Scopes 定义自动链接到新创建的客户端的客户端范围集。

流程

  1. 客户端的客户端范围 选项卡。
  2. Default Client Scopes

从这里,选择您要作为默认客户端范围添加到新创建的 客户端范围 和可选客户端 范围 的客户端范围

默认客户端范围

client scopes default

创建客户端时,如果需要,可以取消链接默认的客户端范围。这与删除 默认角色类似

12.6.7. 范围解释

客户端范围
客户端范围是 Red Hat Single Sign-On 中的实体,这些实体在 realm 级别配置,并可链接到客户端。当请求发送到 Red Hat Single Sign-On 授权端点时,客户端范围会引用,其值为 scope 参数。如需了解更多详细信息,请参阅 客户端范围链接 部分。
角色范围映射
这可以在客户端或客户端范围的 Scope 选项卡中提供。使用角色范围映射 来限制可在访问令牌中使用的角色。如需了解更多详细信息 ,请参阅角色范围映射部分
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.