Wso2is 为什么WSO2 ID令牌返回';组';属性作为逗号分隔的角色字符串,而不是角色列表

Wso2is 为什么WSO2 ID令牌返回';组';属性作为逗号分隔的角色字符串,而不是角色列表,wso2is,Wso2is,我有两个WSO2 IS 5.7.0环境。由返回的id标记略有不同。第一个环境:“组”属性的值如下所示: "groups": [ "FOTA_WEB_View_User", "FOTA_Engineer", "FOTA_Manager", "FOTA_WEB_Admin", "Internal/everyone", "_login", "FOTA_APP" ] 但在第二个环境中,“groups”属性的值如下所示: "groups": "

我有两个WSO2 IS 5.7.0环境。由返回的id标记略有不同。第一个环境:“组”属性的值如下所示:

"groups": [
    "FOTA_WEB_View_User",
    "FOTA_Engineer",
    "FOTA_Manager",
    "FOTA_WEB_Admin",
    "Internal/everyone",
    "_login",
    "FOTA_APP"
  ]
但在第二个环境中,“groups”属性的值如下所示:

"groups": "BDA-AA-Flameout-Download,BDA-Diag-TempSensor-Download,BDA_Admin,BDA-AA-Superknock-Download,Internal/everyone,_login,BDA-AA-Flameout-View,BDA-AA-Superknock-View"
事实上,第一个是预期的

配置似乎相同,即添加一个新的服务提供商,然后添加 请求的索赔。见下图。
一种可能的方法是不在user mgt.xml(/repository/conf/user mgt.xml)文件中配置MultiAttributeSeparator属性。此属性在所有UserStoreManager类中都可用。在这种情况下,我们需要在JDBCUserStoreManager属性中将MultiAttributeSeparator属性的值设置为逗号(
),因为用户存储是JDBC数据库(MYSQL).

注意,我已将mysql配置为我的用户存储。您是否对用户存储配置中的MultiAttributeSeparator进行了任何更改?我不明白。它在哪里?第一个环境使用默认的嵌入式ldap作为用户存储。第二个使用mysql。这就是区别吗?不幸的是,我们的应用程序框架(istio service mesh)只接受角色列表。请检查user-mgt.xml中JDBCUserStoreManager下的MultiAttributesParator属性的值。该文件位于/repository/conf/user-mgt.xml中。默认值为“,”。