2016-07-21 12 views
0

Wir verwenden WSO2 5.1 IS und ich möchte mehrwertiges Attribut definieren:WSO2 IS SCIM-Benutzerschemaerweiterung. Wie definieren und zuordnen mehrwertige Attribute

.... 
{ 
"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" 
}, 
... 

ich dieses Attribut in Urne abgebildet: scim: schemas: Kern: 1,0 Dialekt zu LDAP (primärer Benutzerspeicher) atrribute mailAlternateAddress (mein LDAP hat dieses Attribut in einem der UserEntryObjectClasses). Ich habe versucht, Benutzer von SCIM API bereitzustellen. Benutzer wurde erstellt, alle einfachen Attribute aus der Erweiterung wurden ebenfalls erstellt, nur mailAltrernateAddress nicht. Ich habe versucht, dieses Attribut zu senden, wie:

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

und wie:

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

ich gute Antworten auf SCIM-Anfragen erhalten.

Ich versuchte Zuordnungen:

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

Beide mit dem gleichen Ergebnis.

BTW, nach Kern SCIM-Schema, E-Mails Attribut LDAP Mail Attribut zugeordnet wird (diese Abbildung ist in WSO2 Destribution IS), aber diese Zuordnung nicht funktioniert auch Mail Attribut nicht erstellt wird .

Was mache ich falsch? Eine weitere Frage. Kann ich kanonische Werte für mehrwertige Attribute in scim-user-schema-extension definieren?

Antwort

0

Das Problem ist in der Klasse

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

Es gibt seltsame Einschränkungen. Zuerst habe ich die Methode getClaimsMap umgeschrieben und jetzt funktioniert es wie erwartet.

Entschuldigung für mein Englisch.