Keycloak 中的协议映射器如何工作?
Posted
技术标签:
【中文标题】Keycloak 中的协议映射器如何工作?【英文标题】:How do protocol mappers work in Keycloak? 【发布时间】:2021-06-27 11:39:07 【问题描述】:我正在尝试将用户属性添加到声明的示例。我正在关注示例here。我正在尝试访问过滤器中的声明,但未成功。
我想了解协议映射器是如何在幕后工作的,即那些来自该协议的声明是如何以及以何种顺序添加到令牌中的。
【问题讨论】:
【参考方案1】:在 Keycloak 中,协议映射器的功能是向 JWT 添加额外的声明,而不是 Keyloack 默认添加的声明。
不同的协议映射器将有不同的选项,但对于其中的大多数,您可以选择将这些映射器将产生的声明添加到:
ID 令牌; 访问令牌; 用户信息;我想了解协议映射器在 场景。
粗略地说,JWT 基本上是一个基于特定 standard 的编码 JSON 对象,Keycloak 使用 the Registered claims 创建该对象(例如, Issuer
,@ 987654324@ 等等),然后它将按照您为给定的优先顺序将自定义声明(即协议映射器)应用到该临时对象中协议映射器。
最终结果(即令牌)将是一个带有默认声明的 JWT,并且声明是通过协议映射器添加的。
【讨论】:
以上是关于Keycloak 中的协议映射器如何工作?的主要内容,如果未能解决你的问题,请参考以下文章
使用 kcadm.sh 在 Keycloak 中创建协议映射器
keycloak - 使用 kcadm.sh 将协议映射器添加到 keycloak