Keycloak 客户端角色属性数组
Posted
技术标签:
【中文标题】Keycloak 客户端角色属性数组【英文标题】:Keycloak client role attribute array 【发布时间】:2021-10-27 11:19:06 【问题描述】:情况
我有一个 keycloak 服务器 (v12.0.2) 与具有某些角色的客户端一起运行。我可以向该角色添加自定义属性并检索它们。没问题。但是角色总是返回一个数组。
输入键“foo”和值“bar”给我
"attributes":
"foo": [
"bar"
]
我想要什么
我想在数组中有多个条目。留在前面的例子中,我想有“bar”和“baz”。
"attributes":
"foo": [
"bar",
"baz"
]
我的尝试
只需使用相同的键添加 2 个条目 - 这只会导致用第二个条目覆盖第一个条目。所以我得到了 "attributes":
"foo": [
"baz"
]
在键中提供一个数组索引(“foo[0]”=“bar”和“foo[1]”=“baz”只是两个不同的键并给我
"attributes":
"foo[0]": [
"bar"
],
"foo[1]": [
"baz"
]
用分号、空格或逗号分隔值返回
"attributes":
"foo": [
"bar,baz"
]
(分别与“;”或“”相同)
有什么方法可以做到这一点,还是我必须使用自定义分隔符并在我的应用程序中拆分字符串(这不是问题,但我认为将值作为数组获取会更好)
【问题讨论】:
【参考方案1】:您可以使用##
作为分隔符,例如:bar##baz
。但是使用此分隔符无法保证数组的顺序,尽管您将数据保存为bar##baz
,但数组可能会返回为foo[0]= "baz"
和foo[1] as="bar"
。
如果顺序不重要,你可以试试这个分隔符。
【讨论】:
非常感谢!顺序对我来说确实无关紧要。请问您是否在文档中发现了这一点,而我只是盲目地看不到它? @MCMLXXXII ,它不是文档的一部分,你可以参考这个线程***.com/questions/60767085/…以上是关于Keycloak 客户端角色属性数组的主要内容,如果未能解决你的问题,请参考以下文章
客户端角色的 Keycloak Spring Boot 配置
keycloak 无法在 access_token 中获取客户端角色