我创建了具有映射器类型“硬编码声明”的自定义协议映射器。我可以使用 keycloak API 设置“Claim value”字段吗?我学习了 API 规范,但没有发现任何东西。有工作的例子吗?我正在使用 Springboot restAPI 和 Keycloak。
问问题
785 次
1 回答
1
为此,您可以使用端点更新映射器:
PUT /{realm}/clients/<ID_OF_CLIENT>/protocol-mappers/models/<ROLE_MAPPER_ID>
例如
curl -X PUT http://$KEYCLOAK_IP/auth/admin/realms/<REALM_NAME>/clients/<ID_OF_CLIENT>/protocol-mappers/models/<MAPPER_ID>
有效负载是 Mapper 的新更新配置,例如:
{"id":"<MAPPER_ID>","name":"Hardcore","protocol":"openid-connect","protocolMapper":"oidc-hardcoded-claim-mapper","consentRequired":false,"config":{"claim.value":"<NEW_HARDCODE_VALUE>","userinfo.token.claim":"true","id.token.claim":"true","access.token.claim":"true","claim.name":"Name","jsonType.label":"String"}}
ID
您可以通过管理控制台获取它的客户端,方法是:
- 你的
Realm
; - 客户;
- 你的客户;
- 从 url 复制 id(例如, .../clients/ 10000d0a-aa00-00aa-00a0-aa0000000000)。
ID
您可以通过管理控制台获取映射器,方法是:
- 你的
Realm
; - 客户;
- 你的客户;
- 映射器;
- 点击你的映射器;
- ID 将在 url 上(例如, ../mappers/ 10000d0a -aa00-00aa-00a0-aa0000000000)
您可以ID
使用此端点同时获取客户端和映射器:
http://$KEYCLOAK_IP/auth/admin/realms/<REALM_NAME>/clients?clientId=<CLIENT_ID>
从响应中提取JSON
您将获得客户端和映射器 ID。
于 2020-12-29T08:26:13.103 回答