12.4. OIDC 令牌和 SAML 断言映射


接收 ID 令牌、访问令牌或 SAML 断言的应用可能需要不同的角色和用户元数据。

您可以使用红帽构建的 Keycloak 进行以下操作:

  • 硬编码角色、声明和自定义属性。
  • 将用户元数据拉取到令牌或断言中。
  • 重命名角色。

您可以在管理控制台的 Mappers 选项卡中执行这些操作。

Mappers 标签页

mappers oidc

新客户端没有内置映射程序,但它们可以从客户端范围内继承一些映射程序。如需了解更多详细信息,请参阅 客户端范围部分

协议映射器将项(如电子邮件地址)映射到身份和访问令牌中的特定声明。映射程序的功能应该自我解释其名称。您可以通过单击 Add Builtin 来添加预配置的映射程序。

每个映射程序都有一组通用设置。根据映射器类型,提供了其他设置。单击映射程序旁边的 Edit,以访问配置屏幕来调整这些设置。

mapper 配置

mapper config

可以通过将鼠标悬停在工具提示来查看每个选项的详情。

您可以使用大多数 OIDC mapper 来控制声明被放置的位置。您可以通过调整 Add to ID 令牌和 Add to access token 开关,选择包含或排除来自 id 和 access 令牌的声明。

您可以添加映射程序类型,如下所示:

流程

  1. 前往 Mappers 选项卡。
  2. 单击 Configure a new mapper

    添加映射程序

    add mapper

  3. 从列表中选择一个映射类型

12.4.1. 优先级顺序

映射器实施具有 优先级顺序优先级顺序 不是映射器的配置属性。它是映射器的 concrete 实现的属性。

映射程序按照映射器列表的顺序进行排序。令牌或断言中的更改按以下顺序应用,首先应用最低。因此,依赖于其他实现的实现会根据所需顺序进行处理。

例如,要计算令牌中包含的角色:

  1. 根据这些角色解决使用者。
  2. 处理使用令牌中的角色和使用者的 JavaScript 脚本。

12.4.2. OIDC 用户会话备注映射程序

用户会话详情使用映射器定义,当您在客户端上使用或启用功能时会自动包含。点 Add builtin 使其包含会话详情。

模拟的用户会话提供以下详情:

  • IMPERSONATOR_ID :模拟用户的 ID。
  • IMPERSONATOR_USERNAME :模拟用户的用户名。

服务帐户会话提供以下详情:

  • clientId :服务帐户的客户端 ID。
  • client_id :服务帐户的客户端 ID。
  • clientAddress :服务帐户验证设备的远程主机 IP。
  • clientHost :服务帐户验证设备的远程主机名。

12.4.3. 脚本映射程序

通过运行用户定义的 JavaScript 代码,使用 Script Mapper 将声明映射到令牌。有关向服务器部署脚本的更多详细信息,请参阅 JavaScript Providers

部署脚本时,应该可以从可用映射器列表中选择部署的脚本。

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.