Расширение пользовательской схемы WSO2 IS SCIM. Как определить и сопоставить многозначные атрибуты

Мы используем 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 (основное хранилище пользователей) 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?


person Tadeus Garsva    schedule 21.07.2016    source источник


Ответы (1)


Проблема в классе

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

Есть странные ограничения. Сначала я переписал метод getClaimsMap, и теперь он работает как положено.

Прошу прощения за мой английский.

person Tadeus Garsva    schedule 27.07.2016