使用kcadm.sh将protocol-mapper添加到keycloak

时间:2017-11-07 12:58:51

标签: keycloak

我一直在尝试使用kcadmin cli在keycloak中设置我的完整测试系统,但是我在创建协议映射器时遇到了一些问题:

HTTP错误 - 400次错误请求

我一直在尝试使用以下方法实现请求:

http://www.keycloak.org/docs-api/3.3/rest-api/index.html http://blog.keycloak.org/2017/01/administer-keycloak-server-from-shell.html

我在请求中遗漏了一些内容:

/opt/jboss/keycloak/bin/kcadm.sh create \
clients/7e8ef93b-0d0f-487d-84a5-5cfaee7ddf13/protocol-mappers/models \
-r $test_realm \
-s config.user.attribute=tenants \
-s config.claim.name=tenants \
-s config.jsonType.label=String \
-s config.id.token.claim=true \
-s config.access.token.claim=true \
-s config.userinfo.token.claim=true \
-s config.multivalued=true \
-s name=tenants \
-s protocolMapper=oidc-usermodel-attribute-mapper

这有效:

/opt/jboss/keycloak/bin/kcadm.sh create \
clients/7e8ef93b-0d0f-487d-84a5-5cfaee7ddf13/protocol-mappers/models \
-r $test_realm \
-s name=tenants1 \
-s protocol=openid-connect \
-s protocolMapper=oidc-usermodel-attribute-mapper

2 个答案:

答案 0 :(得分:1)

在失败的示例中,缺少以下值:
-s protocol=openid-connect

答案 1 :(得分:0)

您需要在Linux中像这样指定嵌套的配置值:

-s 'config."id.token.claim"=true'
-s 'config."included.client.audience"=theclient'