spring-boot - Keycloak 将值声明值设置为“硬编码声明”
问题描述
我创建了具有映射器类型“硬编码声明”的自定义协议映射器。我可以使用 keycloak API 设置“Claim value”字段吗?我学习了 API 规范,但没有发现任何东西。有工作的例子吗?我正在使用 Springboot restAPI 和 Keycloak。
解决方案
为此,您可以使用端点更新映射器:
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。
推荐阅读
- tensorflow.js - How to get indices of a specific value in a tensor in tensorflow-js?
- java - IntelliJ 中 Flink WordCount 输出中的数字
- javascript - 如何从我要删除的待办事项应用程序中删除列表?
- linux - 无法在 Linux 上删除文件
- javascript - 我如何在 Vue.js 中获得 axios 响应( v-on:click )(async / try,catch)?
- apache-spark - 如果到目前为止在 Pyspark 中还有其他所有事件,如何捕获第一个事件?
- c# - EntityFramework 包含但不保证存在
- reactjs - getByText 找不到元素
- calendar - 如何通过 URL 在 Google 日历中包含来宾和创建新活动的通知
- css - 如何停止`-webkit-background-clip:text`使文本变薄?