使用 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

Keycloak - 在领域中创建管理员用户

我应该使用哪个凭证来生成令牌,然后使用 Postman 在 Keycloak DB 中创建用户?

无法在 keycloak 中创建用户。获取 403 状态