WSO2 IS SCIM 用户模式扩展。如何定义和映射多值属性

WSO2 IS SCIM user schema extension. How to define and map multi-valued attributes

我们正在使用 WSO2 IS 5.1,我想定义多值属性:

....
{
"attributeURI":"urn:scim:schemas:extension:wso2:1.0:wso2Extension.vultPerson.mailAlternateAddress",
"attributeName":"mailAlternateAddress",
"dataType":"string",
"multiValued":"true",
"multiValuedAttributeChildName":"null",
"description":"Some attribute",
"schemaURI":"urn:scim:schemas:extension:wso2:1.0",
"readOnly":"false",
"required":"false",
"caseExact":"false",
"subAttributes":"null" 
},
...

我将 urn:scim:schemas:core:1.0 方言中的此属性映射到 LDAP(主要用户存储)atrribute mailAlternateAddress(我的 LDAP 在其中一个 UserEntryObjectClass 中具有此属性)。我尝试通过 SCIM API 提供用户。用户已创建,扩展的所有简单属性也已创建,只有 mailAltrernateAddress 没有。我尝试将此属性发送为:

....      
"mailAlternateAddress": [
        {
          "type": "work",
          "value": "a.a"
        }
....

并作为:

...
"mailAlternateAddress": ["a.a","b.b"]
...

我收到了对 SCIM 请求的良好响应。

我试过映射:

urn:scim:schemas:extension:wso2:1.0:wso2Extension.vultPerson.mailAlternateAddress -> mailAlternateAddress
and
urn:scim:schemas:extension:wso2:1.0:wso2Extension.vultPerson.mailAlternateAddress.work -> mailAlternateAddtress

两者的结果相同。

顺便说一句,根据核心 SCIM 架构,emails 属性映射到 LDAP mail 属性(此映射在 WSO2 IS 分发中)但此映射也不起作用,未创建 mail 属性。

我做错了什么? 还有一个问题。我可以在 scim-user-schema-extension 中为多值属性定义规范值吗?

问题在class

org.wso2.carbon.identity.scim.common.utils.AttributeMapper

有一些奇怪的限制。起初我重写了方法 getClaimsMap 现在它按预期工作了。

对不起我的英语。