我一直在尝试使用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
答案 0 :(得分:1)
在失败的示例中,缺少以下值:
-s protocol=openid-connect
答案 1 :(得分:0)
您需要在Linux中像这样指定嵌套的配置值:
-s 'config."id.token.claim"=true'
-s 'config."included.client.audience"=theclient'