【发布时间】:2019-01-14 11:32:24
【问题描述】:
我正在使用 Keycloak kcadm.sh 工具来定义客户端。我现在正在尝试定义与 Keycloak 的 Web 界面可以定义的协议映射器类似的协议映射器。以下命令执行成功:
./kcadm.sh create clients/myclientid/protocol-mappers/models -r myrealm -s name="full name" -s protocolMapper=oidc-full-name-mapper -s protocol=openid-connect
但是,当我检查创建的全名映射器时,我看到它是使用“添加到 ID 令牌” - 关闭和“添加到访问令牌” - 关闭来创建的。我希望他们开启。因此,在删除创建的映射器后,我尝试将 -s config.access.token.claim=true -s config.id.token.claim=true 添加到上述命令中。所以命令变成:
./kcadm.sh create clients/myclientid/protocol-mappers/models -r myrealm -s name="full name" -s protocolMapper=oidc-full-name-mapper -s protocol=openid-connect -s config .access.token.claim=true -s config.id.token.claim=true
但这会导致“HTTP 错误 - 500 内部服务器错误”
我尝试创建一个像以前一样关闭选项的映射器,然后使用 Web 界面设置它们,然后导出客户端并检查结果。生成的 json 包含我的客户端的以下协议映射器:
"protocolMappers": [
{
"id": "...",
"name": "full name",
"protocol": "openid-connect",
"protocolMapper": "oidc-full-name-mapper",
"consentRequired": false,
"config": {
"id.token.claim": "true",
"access.token.claim": "true"
}
}
],
看来我给出的路径是正确的。知道我做错了什么吗?
【问题讨论】:
标签: keycloak