使用kcadm.sh在Keycloak中创建协议映射器

时间:2020-03-05 18:37:26

标签: keycloak

来自Add protocol-mapper to keycloak using kcadm.sh

有人知道吗?我按照奥斯卡(Oscar)的建议进行了尝试,但仍然无法正常工作。 未注释的行效果很好。

被注释的行不起作用。我收到一条错误消息,指出“ ./clientmapper.sh:59(或我未注释的任何行号):-s:找不到”

    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 个答案:

答案 0 :(得分:2)

我通过按照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'