Keycloak 客户端角色属性数组

Keycloak client role attribute array

情况

我有一个 keycloak 服务器 (v12.0.2) 运行 一个具有某些角色的客户端。我可以向该角色添加自定义属性并检索它们。没问题。但是角色总是return一个数组。

输入键“foo”和值“bar”得到

 "attributes": {
    "foo": [
      "bar"
    ]
  }

我想要什么

我想在数组中有多个条目。为了保留前面的示例,我想要“bar”和“baz”。

 "attributes": {
    "foo": [
      "bar",
      "baz"
    ]
  }

我试过的

 "attributes": {
    "foo": [
      "baz"
    ]
  }
  "attributes": {
    "foo[0]": [
      "bar"
    ],
    "foo[1]": [
      "baz"
    ]
  }
  "attributes": {
    "foo": [
      "bar,baz"
    ]
  }

(分别与“;”或“”相同)

有没有办法做到这一点,或者我是否必须使用自定义分隔符并在我的应用程序中拆分字符串(这不是问题,但我认为将值作为数组获取会更好)

您可以使用 ## 作为分隔符,例如: bar##baz 。但是使用这个分隔符数组的顺序是不能保证的,尽管你将数据保存为 bar##baz 数组可能 return 为 foo[0]= "baz"foo[1] as="bar".

如果顺序不重要,您可以试试这个分隔符。