Active Directory Account Provisioning on Identity Cube Creation

Which IIQ version are you inquiring about?

Version 8.3

Is this question regarding a custom connector? If so, please share relevant details below.

No, this question is not regarding a custom connector.

Please share any images or screenshots, if relevant.

Please share any other relevant files that may be required (for example, logs).

AD_Create_Policy.txt (6.45 KB)

Share all details related to your problem, including any error messages you may have received.

Hello everyone!

The main question for me, is there any step-by-step guide on AD account provisioning for newly created Identities? As i know itā€™s possible via birthright roles, but is there any recommendations how I can set it up via LCM Create and Update WF? Or this will be much more easier using the Roles?

And more details.

For now, in our company there is a need to create AD accounts for every new user. The users are aggregated from SAP HR\HCM.

The AD application is created and configured. Some accounts and groups are created in Test OU and were successfully aggregated and correlated.
Also, there is an AD Create Policy configured for the application (added as the attachment).
The IT roles (with memberOf entitlement) that are required for Business role (As example All_Users) configured.
As Iā€™m trying to request this Role for a user that doesnā€™t have an AD account currently, the ā€œRequest provisioning form for ā€ displays (attached screenshot).
But those Attributes are generating in AD creation policy (I could give the code sample from referenced Libraries).
Is there any way to automatize this process? Or this could be a problem in the Library method code?

I will be happy to see any additional information on this topic.

Thanks in advance!

Hi @d_pustovoitov

I could see that you need AD account for every user created in your HR system. We call it as birthright provisioning. We can implement birthright by using

  1. Joiner Lifecycle event
  2. Business Role Assignment Rule

Coming to your question, If I understood correctly, why does form is empty ?

First time I am seeing this tag, however the logic should generate the values. This is where we need to troubleshoot.

Thanks
Krish

1 Like

Hi @MVKR7T ,

Thanks for your help, itā€™s nice to hear from you again.

As Iā€™ve mentioned, we have the library method to generate the value.
Iā€™m not the one who developed those methods library, but as Iā€™ve checked the code, I havenā€™t seen any misconfigurated lines.
Maybe a fresh look on this code could see any issues.

Is it okay if Iā€™ll attach the full .txt file with this library method? This Library contains only the methods related to this Create Policy.
Or if you wonā€™t be comfortable with this, I can send separate methods specified for those values.

Sure @d_pustovoitov

You can attach the Rules, we can check for you.

Question: all attributes are not populating values in your AD provisioning policy form or only some attributes ?

1 Like

USB_Library_App_AD.txt (29.4 ŠšŠ‘)
Thanks, here is the full rule file.

About your question.
Give me some time please, Iā€™ll specify those 3 values manually and check if the other values are populating.

Here is the Screenshot of the values Iā€™ve specified manually:

And the created AD account properties:


As you can see all the user info except the logon name is blank.

I have seen this before and found it was a timing issue at that client.

The attributes in the identity might have not been populated, when the AD is to be created.
For instance in the function: generateSAMAccountName

if (identity == null || Util.isNullOrEmpty(identity.getFirstname()) || Util.isNullOrEmpty(identity.getLastname()))
  {
    logger.error("generateSAMAccountName::Failed because some of mandatory attributes is/are not defined (user: \"" + getName(identity) + "\").");
    return null;
  }

When identity.getFirstname() or identity.getLastname() are empty, no sAMAccountName is created. You should see this in the log-file as an error is logged.

This issue might arise when you are using ā€˜standardā€™ birthright roles (Business role with an assignment rule) or in any other way are to fast with the creation of the AD accounts.

Since timing of the creation of the AD account is important (it needs to be created when the attributes of the identity-cube are populated). It is best to create the account in an LCM process (IMHO).

There are multiple options to create accounts via a LCM Joiner event:

  • Use the SSF Joiner feature:
    • Assign Default Roles; The workflow assigns a static list of roles, found in the Default Assignments entry of the SPCONF Joiner Mappings Custom object, to the joiner identity
    • Assign a default application; he workflow creates accounts for the identity on a static list of applications, found in the Default Assignments entry of the SPCONF Joiner Mappings Custom object.
  • Use Rapid Setup
  • Create your own LCM Joiner workflow
    • triggered upon identity creation
    • attribute change (for instance ā€˜statusā€™ changed to ā€˜activeā€™)
  • Anything completely custom :stuck_out_tongue:

Each of the options have their pros and cons and it depends on the project, preference and knowledge of the developer.

ā€“ Remold

1 Like

Hi @Remold ,

Thanks for your answer!

Iā€™ll check the documentation youā€™ve sent and try to use one of the options youā€™ve mentioned.

I would recommend you to check the logs, there is a bit more lines of code written for samAccountName.

  1. I believe this is intermittent issue, i mean not for all users.
  2. Please check the logs for the respective user
  3. Check the user identity cube, if firstName and lastName are missing ?

Probability of not populating firstName and lastNameis very less, I agree that there is a chance but we can get more insights after checking logs. Based on that we can take a decision.

Also, can you confirm how AD account provisioning is triggered.

  • Joiner life cycle event ?
  • Business Role with Assignment Rule logic ?
  • LCM manage access request ?
1 Like

Hi @MVKR7T ,

The logs werenā€™t configurated properly, thatā€™s why I havenā€™t seen the errors before :sweat_smile:.

After fixing the logs config, as you said, Iā€™ve checked the logs and found that nothing except sAMAccountName doesnā€™t generate correctly.
As I see, the guy who was here before me and created those rules made everything okay, but some of the Attribute names and methods changed.

Probably, Iā€™ll create the new Create Policy and use more simple scripts to generate values.
After that, Iā€™ll test everything again and update this theme with the results. I think this will take some time

About the question:
Iā€™ve tried to use both Business Role with the Rule and the Access Request, both gave the same result.

Hello @Remold , @MVKR7T !

Thanks for you help. Iā€™ve found and fixed all the issues in the creation policy and everything works fine.

There are only a few questions about account creation left:

  • Is there any possible issues if the creation would start for a lot of accounts (about 1000+)?
  • In your experience, which option to create accounts will be more stable and safe, the Business Role Assignment Rule or the Joiner Event?

Thank you a lot!

That is good to hear @d_pustovoitov

There will be no issue with 1000+ users processing at once, but I suggest you to go with a batch of users.

I prefer to go with Joiner Life cycle event than Assignment Rule in Business Role. I have seen an issue with Assignment Rule.

I have seen in one client, they changed the definition of a Business Role (Actually they didnā€™t do any change, just clicked save on that Role). Refresh Task removed all users from that Role, later that bug was fixed.

There is no issue using joiner, you can further customize joiner workflow for your requirements.

Implementing Assignment Rule logic is easy but not as efficient approach as Joiner though it is not as easier as Assignment Rule in Business Roles.

Joiner has more features than Assignment Rule.

  • Enable/Disable whenever you need.
  • Event type to control the trigger.
  • Included identities (to control which users should be in scope)
  • Threshold

My choice would be joiner always.

If you choose joiner, go with batch of users by making use of Included identities.

1 Like

I agree with @MVKR7T, Joiner is the way to go :slight_smile:

Look at my previous reply on the available options for the Joiner LCM. SSF and Rapid Setup are relatively easy to configure/setup.

ā€“ Remold

1 Like

Hello @MVKR7T , @Remold .

Ok, I got it. Iā€™ll try to configure the Joiner WF for account provisioning.
Thank you! I really appreciate your help!

This topic was automatically closed 60 days after the last reply. New replies are no longer allowed.