通过 kcadm 在 keycloak 中启用多个受众
Enable multiple audience in keycloak via kcadm
我有微服务生态系统,所有与之交互的用户都需要对 keycloak 安装进行身份验证并接收 jwt 令牌。
一切都很好,我使用此代码段启用了观众支持:
/opt/jboss/keycloak/bin/kcadm.sh \
create clients/d3170ee6-7778-413b-8f41-31479bdb2166/protocol-mappers/models -r your-realm \
-s name=audience-mapping \
-s protocol=openid-connect \
-s protocolMapper=oidc-audience-mapper \
-s config.\"included.client.audience\"="your-audience" \
-s config.\"access.token.claim\"="true" \
-s config.\"id.token.claim\"="false"
如此处所述:
很好,很管用。我的问题是,如何为受众启用多个值?我的意思是,我想允许同一个用户使用相同令牌使用 2 个不同的服务——每个服务都应该有不同的受众。
令牌应如下所示:
{
"aud": [
"audience-1",
"audience-2"
]
}
其中 audience-1
是第一个服务预期的观众,audience-2
是第二个服务预期的观众。
甚至可以通过命令行来做到这一点吗?
我想我可能已经找到了答案。或者至少它对我有用:
kcadm.sh create clients/CLIENT_ID/protocol-mappers/models -r REALM_NAME \
-s name=audience-mapping \
-s prodocol=openid-connect \
-s protocolMapper=oidc-audience-mapper \
-s config.\"included.client.audience\"="audience" \
-s config.\"access.token.claim\"=\"true\" \
-s config.\"id.token.claim\"=\"false\"
我有微服务生态系统,所有与之交互的用户都需要对 keycloak 安装进行身份验证并接收 jwt 令牌。
一切都很好,我使用此代码段启用了观众支持:
/opt/jboss/keycloak/bin/kcadm.sh \
create clients/d3170ee6-7778-413b-8f41-31479bdb2166/protocol-mappers/models -r your-realm \
-s name=audience-mapping \
-s protocol=openid-connect \
-s protocolMapper=oidc-audience-mapper \
-s config.\"included.client.audience\"="your-audience" \
-s config.\"access.token.claim\"="true" \
-s config.\"id.token.claim\"="false"
如此处所述:
很好,很管用。我的问题是,如何为受众启用多个值?我的意思是,我想允许同一个用户使用相同令牌使用 2 个不同的服务——每个服务都应该有不同的受众。
令牌应如下所示:
{
"aud": [
"audience-1",
"audience-2"
]
}
其中 audience-1
是第一个服务预期的观众,audience-2
是第二个服务预期的观众。
甚至可以通过命令行来做到这一点吗?
我想我可能已经找到了答案。或者至少它对我有用:
kcadm.sh create clients/CLIENT_ID/protocol-mappers/models -r REALM_NAME \
-s name=audience-mapping \
-s prodocol=openid-connect \
-s protocolMapper=oidc-audience-mapper \
-s config.\"included.client.audience\"="audience" \
-s config.\"access.token.claim\"=\"true\" \
-s config.\"id.token.claim\"=\"false\"