The schema mapping policy comprises all the resource attributes. The attributes are represented with their sub-attributes, or their canonical types, or both. These attributes are modified to the required format as explained in the following sections.
The resource attributes in the Identity Manager are in the JSON format. These attributes are of singular, complex, complex multivalued types. For schema mapping, the resource attributes can be from a core class or from an extension. The SCIM driver modifies the JSON format to a linear SCIM format using delimiters, as shown below:
+ as the urn(Resource) delimiter
: as the attribute-Sub attributes delimiter
The delimiters as mentioned earlier are used to represent the SCIM attributes as shown below:
Core attributes: The core attributes are of three types and are delimited by : , as shown below:
Singular: <attribute>
Complex Singular: <attribute>:<subattribute>
Complex Multi-valued: <attribute>:<cannonicalType>:<subattribute>
Extensions attributes: The extension attributes are associated to the URN with a +, as shown below:
Singular: <urn>+<attribute>
Complex Singular: <urn>+<attribute>:<subattribute>
Complex Multi-valued: <urn>+<attribute>:<cannonicalType>:<subattribute>
The SCIM driver formats the JSON structure into a linear format SCIM attribute using delimiters. The following table shows how the JSON structures are transformed into linear SCIM attributes using utility grammar.
JSON Structure |
SCIM Attributes |
Grammar |
---|---|---|
Singular Attribute "userName":johndoe@microfocus.com |
username |
<attribute> |
Complex Attribute "phoneNumbers":[ {"type":"work", "value":"09663502443"},], |
|
|
Extension Attribute "urn:ietf:params:scim:schemas:extension:enterprise:2.0:User": { "organization":"00D2v000002mBdQEAU","employeeNumber":"21212" }, |
|
<urn>+<attribute> |
Complex Values in Extension Attribute "urn:ietf:params:scim:schemas:extension:enterprise:2.0:User": { "manager": [ { "displayName":"John Doe" }, ], }, |
urn:ietf:params:scim:schemas:extension:enterprise:2.0:User+Manager:displayName |
|