Iamology brings up a good point. Below is a matrix displaying the appropriate option based on the conditions of this attribute and its generation/maintenance.
Matrix
|
Unique Attribute |
Non-Unique Attribute |
Attribute Sync |
Rule |
Identity Attribute |
No Attribute Sync |
1. Unique LDAP Attribute Generator 2. Rule |
Static Transform |
Attribute Sync Explanation
One important component mentioned in this matrix above is Attribute Sync. This functionality ensures that attributes that are updated in an Identity are reflected in downstream systems and the corresponding attributes at the time the attribute is updated, as well as on a periodic refresh and check. This is a common configuration where organizations want to ensure that, should a user’s job title, department, office location, description, etc. change, the change reflected in the Identity Attributes also reflects in downstream systems. Attribute Sync accomplishes this.
Attribute Sync Caveat
Attribute Sync can be configured in the source configuration page underneath the Create Account button.
Important
Attribute Sync can only be configured for attributes in the Create Account Profile that are using Identity Attribute as the source. It cannot be used for any attributes that use a Generator or Static attribute. Attributes will only show up in the Attribute Sync menu if they have been configured with an Identity Attribute in the Create Account Profile.
Primary Recommendations
Based on our discussion, I have a couple of recommendations. Based on the attribute requirements you provided, I am assuming this value for the user does not need to be unique.
- If you need the attribute to be updated whenever a user’s division or job code change, you will need to use Attribute Sync. This means you should create a new Identity Attribute that will hold the
USER_DIVISION_JOBCODE
value in all uppercase. You can then map this identity attribute to the account attribute and enable Attribute Sync.
- If you do not need the attribute to be updated, if this is a very uncommon use case, or if you do not want this attribute to be displayed in the identity details itself, you should use a Static Transform as seen below.
Static Transform
As long as you do not need the attribute to be synchronized, and the attribute does not need to be unique, you can use the Static transform. Below is the Static transform you may want to use within the Create Profile.
Static Transform - No Conditional Logic
{
"name": "YOUR ATTRIBUTE NAME HERE",
"transform": {
"type": "static",
"attributes": {
"division": {
"type": "upper",
"attributes": {
"input": {
"type": "identityAttribute",
"attributes": {
"name": "division"
}
}
}
},
"jobCode": {
"type": "upper",
"attributes": {
"input": {
"type": "identityAttribute",
"attributes": {
"name": "jobCode"
}
}
}
},
"value": "User_${division}_${jobCode}"
}
},
"attributes": {},
"isRequired": false,
"type": "string",
"isMultiValued": false
}
This static transform will pull the necessary attributes from the Identity and then convert them to uppercase.
How this appears in the UI
You will only see the contents of the value
attribute here.
Summary
- If you need Attribute Sync and a Unique Attribute, you will need to implement a Rule.
- If you need Attribute Sync but do not need the attribute to be unique, you can use an Identity Attribute (we already covered this will not work for you unless you specifically created a new Identity Attribute that contains the
USER_DIVISION_JOBCODE
value for the user. That may be a valid approach).
- If you do not need Attribute Sync and the value must be unique, you can use the Unique LDAP Attribute Generator (this also will not work for you because we do not have the uppercase attributes to use). Or you can create a Rule.
- If you do not need Attribute Sync and you do not need the value to be unique, you can use a Static transform within the Create Profile.