首页 > 解决方案 > 如何通过 REST API 为 Keycloak 中的每个用户属性创建映射器?

问题描述

如何通过 Keycloak 的 REST API 创建具有以下值(如附图中所示)的协议映射器?我在文档中找不到它——我确实找到了这个:Protocol Mapper——但是ProtocolMapperRepresentation接受了一个 Map 和几个字符串。当我看到 UI 时 - 我看到更多字段,但我不确定我是否正在查看正确的 API。

这是用户界面:

在此处输入图像描述

我如何通过 API 做到这一点?

标签: keycloakkeycloak-serviceskeycloak-rest-api

解决方案


如何通过 Keycloak 的 REST API 创建具有以下值(如附图中所示)的协议映射器?

您可以通过调用以下端点来做到这一点:

POST ${KEYCLOAK_HOST}/auth/admin/realms/${REALM_NAME}/clients/${ID of the Client}/protocol-mappers/models

使用以下数据:

{"protocol":"openid-connect","config":{"id.token.claim":"true","access.token.claim":"true","userinfo.token.claim":"true","multivalued":"","aggregate.attrs":"","user.attribute":"some-attribute","claim.name":"some-attribute","jsonType.label":"String"},"name":"some-attribute","protocolMapper":"oidc-usermodel-attribute-mapper"}

我确实找到了这个:Protocol Mapper - 但是 ProtocolMapperRepresentation 接受一个 Map 和几个字符串。当我看到 UI 时 - 我看到更多字段,但我不确定我是否正在查看正确的 API。

这是设计使然;使端点足够抽象以接受不同类型的协议映射器。该 Map 基本上编码了配置部分,该部分倾向于从映射器更改为映射器。


推荐阅读