使用 kcadm.sh 在 Keycloak 中创建协议映射器
Posted
技术标签:
【中文标题】使用 kcadm.sh 在 Keycloak 中创建协议映射器【英文标题】:Create protocol mapper in Keycloak using kcadm.sh 【发布时间】:2020-06-18 11:27:24 【问题描述】:来自Add protocol-mapper to keycloak using kcadm.sh
有没有人知道这个?我按照奥斯卡建议的方式尝试了它,但仍然无法正常工作。 未注释的行完美运行。
注释的行不起作用。我收到一条错误消息,上面写着“./clientmapper.sh: 59(或我未注释的任何行号):-s: not found”
sudo docker exec $keycontainer /opt/jboss/keycloak/bin/kcadm.sh create \
clients/$cid/protocol-mappers/models \
-r myrealm \
-s name=roles \
-s protocol=openid-connect \
-s protocolMapper=oidc-usermodel-attribute-mapper
#-s 'config."id.token.claim"=true' \
#-s claim.name=roles \
#-s jsonType.label=String \
#-s multivalued=true \
#-s userinfo.token.claim=true \
#-s access.token.claim=true
【问题讨论】:
【参考方案1】:我通过按照 Oscar 的建议进行格式化并在 docker exec 命令后使用 -i 来完成这项工作。它现在完美运行。
sudo docker exec -i $keycontainer /opt/jboss/keycloak/bin/kcadm.sh create \
clients/$cid/protocol-mappers/models \
-r testrealm \
-s name=testmap \
-s protocol=openid-connect \
-s protocolMapper=oidc-usermodel-realm-role-mapper \
-s 'config."id.token.claim"=true' \
-s 'config."claim.name"=testmap' \
-s 'config."jsonType.label"=String' \
-s 'config."multivalued"=true' \
-s 'config."userinfo.token.claim"=true' \
-s 'config."access.token.claim"=true'
【讨论】:
以上是关于使用 kcadm.sh 在 Keycloak 中创建协议映射器的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Keycloak 中创建客户端以与 AWS Cognito 身份联合使用
如何使用 REST API 在 Keycloak 中创建具有密码的用户?
通过 keycloak admin 客户端在 keycloak 中创建用户返回 IllegalArgumentException