4.2 Identity Provisioning Policies
Key Takeaways
The three identity provisioning policy types are Create Identity, Update Identity, and Self-service Registration, set on the Lifecycle Manager > Identity Provisioning Policies tab.
If an Update Identity policy is defined, it overrides the Create policy for edits.
Each field can take its value, allowed values, validation, owner, read-only, and hidden settings from a literal value, a rule, or a script.
Assigning a field owner sends that field's question to the owner instead of the requester.
Application and role provisioning policies fill in account data during plan compilation, and any remaining questions are shown through the Do Provisioning Forms subprocess.
Identity Provisioning Policies
Objective 2.2 asks you to understand identity provisioning policies. In IdentityIQ, a provisioning policy is a list of fields that must have values before a provisioning action can be completed. The fields are presented as a form when a person must answer them. Identity provisioning policies are the ones Lifecycle Manager uses when the target of the action is the IdentityIQ identity itself, not an account on an application.
The Three Identity Policy Types
Configure them on gear icon > Lifecycle Manager > Identity Provisioning Policies:
| Policy | Used when | Example fields |
|---|---|---|
| Create Identity | A requester uses Create Identity | Name, first name, last name, email, manager, department, type |
| Update Identity | A requester uses Edit Identity | Department, location, phone, manager |
| Self-service Registration | A new user completes New User Registration from the login page | Requested user name, password, name, email |
Two rules to remember:
- If an Update provisioning policy is defined, it overrides the Create policy for identity edits.
- The request cannot complete until the fields required by the policy are included in the generated form and filled in.
The Provisioning Policy Editor: Field Properties
Each field in the policy has these properties:
| Property | What it does |
|---|---|
| Attribute | The identity attribute the field sets |
| Display Name and Help Text | The label and hover help on the form |
| Type | Boolean, Date, Integer, Long, Identity, Secret (hidden text such as a password), or String |
| Multi Valued | Allows more than one value |
| Read Only | Makes the field read-only, based on a value, rule, or script |
| Hidden | Hides the field, based on a value, rule, or script |
| Owner | Who answers this field: None, Application Owner, Role Owner, a rule, or a script |
| Required | The form cannot be submitted without it |
| Refresh Form on Change | Re-renders the form when this field changes, so dependent fields can recalculate |
| Display Only | Shows the value without submitting it |
| Authoritative | For multi-valued attributes, the value replaces the current value instead of being merged |
| Value | The default value: Literal, Rule, or Script |
| Allowed Values | The drop-down choices: None, Literal, Rule, or Script |
| Validation | A script or rule that checks the entered value, for example "password must be at least 8 characters" |
The matching rule types are FieldValue (default value), AllowedValues (allowed values), Validation, and Owner. They are among the provisioning rule types listed in SailPoint's provisioning summary.
Where Identity Policies Fit in Provisioning
The Create Identity request becomes a provisioning plan that targets IdentityIQ itself. It runs through the process chosen on the Business Processes tab (by default LCM Create and Update). Other provisioning policies apply at plan compilation:
- Application provisioning policies (Create Account, Update Account, and so on, on the application's Provisioning Policies tab) apply when a new account is needed. They can also declare application dependencies, such as an account on application B that needs a value from application A.
- Role provisioning policies remove uncertainty in a role profile. If an IT role's profile is
memberOf='Engineering' OR memberOf='Sales', IdentityIQ provisions only the first term by default. A role provisioning policy can specify the value to use instead.
Whatever is still unknown after policies are applied becomes a question on the provisioning project. The Do Provisioning Forms subprocess builds, presents, and assimilates the forms. If a field has an owner, the question goes to that owner, not the requester. Certification remediations, policy-violation remediations, and some provisioning activities cannot present forms. They complete only if no answers are needed, which is normally true for removals.
Worked Example: A Contractor Create Identity Form
Suppose managers onboard contractors directly in IdentityIQ because contractors are not in the HR feed. A practical Create Identity policy might contain:
| Field | Type | Required | Value source | Notes |
|---|---|---|---|---|
firstname, lastname | String | Yes | Entered by the requester | Refresh Form on Change on, so the user name can recalculate |
name | String | Yes | Rule: first initial + last name, with a numeric suffix if taken | Read Only, so requesters cannot pick names |
manager | Identity | Yes | Defaults to the requester | Lets a help desk requester choose someone else |
type | String | Yes | Literal Contractor | Hidden, because the form is only for contractors |
endDate | Date | Yes | Entered | A Validation script rejects dates more than a year ahead |
password | Secret | Yes, if Require password on all identity creation requests is on | Entered or generated | Secret fields are masked |
A FieldValue-style script for the name field could look like this:
import sailpoint.object.Identity;
String base = (firstname.substring(0,1) + lastname).toLowerCase();
String candidate = base;
int i = 1;
while (context.getObjectByName(Identity.class, candidate) != null) {
candidate = base + i;
i++;
}
return candidate;
The script can read other form fields as variables named after the fields. For name to recalculate while the requester types, firstname and lastname need Refresh Form on Change (postBack in XML), and the name field must be marked dynamic="true". On a postBack refresh, only dynamic fields re-run their value scripts. One more rule differs between policy types: in application and role provisioning policies, a field that already has a value (literal, rule, or script) is not shown on the form unless reviewRequired is set. Those policies ask people only for what IdentityIQ cannot calculate. After submission, the LCM Create and Update workflow routes approvals and creates the identity. The new identity has no accounts until roles, entitlements, or lifecycle events provision them.
Design Tips
- Put the source of truth in rules. For example, generate the identity
namefrom first and last name with a FieldValue rule so that requesters cannot invent user names. - Mark sensitive fields as Secret.
- Use Refresh Form on Change for cascading fields, such as a department choice that filters the allowed values for cost center.
- Use field owners for data the requester does not know. For example, security staff can supply a clearance level.
- Prefer Update policies for controlled edits. Include only the attributes managers may change, and make the rest read-only or hidden.
An organization defines both a Create Identity policy and an Update Identity policy. A manager uses Edit Identity on an existing identity. Which policy defines the form?
The Update Identity policy, which overrides the Create policy for edits
The Create Identity policy, because it was defined first
Both policies are merged, and duplicate fields are shown twice
The Self-service Registration policy
A Create Identity form needs a Security Clearance field that only the security team can fill in, even when a manager submits the request. Which field property handles this?
Display Only
Authoritative
Owner, set to a rule or script that resolves to the security team
Refresh Form on Change
A multi-valued identity attribute should have its entire current value replaced by what the form submits, not merged with it. Which field property does this?
Multi Valued
Authoritative
Required
Hidden
An IT role profile reads memberOf='Engineering' OR memberOf='Sales'. When the role is assigned, what does IdentityIQ provision by default, and how can an engineer change that?
Both groups; a Validation rule can remove one
Neither group; the role must be requested again
Only the first term, memberOf='Engineering'; a role provisioning policy can set the value to Sales
A random term; an AllowedValues rule makes the choice predictable
Sections you finish are checked off in the contents.