Active and Inactive about the User module with AD
Question

I have question about Active Directory; 

I know everyday 4am, Outsystems will SYNC from our AD to outsystems user module.

I am facing an problem. For example: In our AD the user is status as Active. And we manually execute the SYNC in OutSystems Timer.

But it did not turn from INACTIVE to ACTIVE (in outsystems User module). Is it the behaviors won’t shift from INACTIVE to ACTIVE in OutSystems, as we have to set it to active manually?

Any setting can change when it is ACTIVE in AD when syncing; it will turn from Inactive to Active for the user?


ACTIVE turn to INACTIVE <- YES, we tried and found it is working [run the sync].

INACTIVE turn to ACTIVE <- NO working. We tried, and it always does not turn to Active as it is already Active in AD [run the sync].


mvp_badge
MVP
Solution

Hi Jing Tung,

The behavior you are describing is implemented within the Users module by design. 

In order to understand how the synchronization process works, you can open a clone of the Users module to inspect the code of the SynchronizeDomainUsers timer that runs everyday at 4am. 


As a part of the synchronization process, notice that for each OutSystems user the action SynchronizeActiveDirectoryUser is being called. 

If we jump into that action, notice that the status of the AD user will only be updated for the OutSystems user if the OutSystems user is active (User.Is_Active = True). An inactive OutSystems user is skipped by the process and will therefore not be synced with the AD user.

If you want to implement a different synchronization behavior between OutSystems users and AD users, be sure read the following documentation.

As the documentation describes, you will need to use a Forge component (as we can not modify the code of the Users module) if you want to customize the synchronization process. Inside the ActiveDirectoryRolesCore module you will find the SyncUsers timer which you can customize to your needs.

Hope this helps!

Regards,

Nordin

Hi Nordin,


Look like your explanation is something i am looking for.

May i know how to go "SynchronizeDomainUsers"?


Thank you

mvp_badge
MVP

Hi,

If you want to inspect the code of the Users module, you can go to any module where you reference the Users module, right-click the module and open it.

Service Studio will open the module in a new tab asking you if you want to open a clone (since Users is a supported module and cannot be edited).

By opening up a clone, you can inspect the code of the Users module. You will find the SynchronizeDomainUsers timer in the Processes Tab.

Hope this helps!

If I remember correctly, an external user (so linked to AD for example) will automatically be activated when you do a succesful login.

So if the user is active in AD, and you pass the correct password in the login, the user will automatically be put active in OutSystems. It does make some sense in a way, but if you rely on active users for certain things in your application, this behaviour can be a bit annoying.

Community GuidelinesBe kind and respectful, give credit to the original source of content, and search for duplicates before posting.