Affichage des articles dont le libellé est Signon PeopleCode. Afficher tous les articles
Affichage des articles dont le libellé est Signon PeopleCode. Afficher tous les articles

vendredi 26 avril 2013

Make PeopleSoft and Active Directory case insensitive

CASE #1
PeopleSoft deliveres a function LDAP_AUTHENTICATION() to authenticate PeopleSoft users with Active Directory credentials.
It is designed to be case isensitive, but all users must be created upper case:
  - DANIEL.CRAIG in PeopleSoft
  - any case in Active Directory. Daniel.Craig or daniel.craig or DANIEL.CRAIG will work

CASE #2
You may want to create users lower case in PeopleSoft? then you just need basic code change to make it possible:
  - daniel.craig in PeopleSoft
  - any case in Active Directory. Daniel.Craig or daniel.craig or DANIEL.CRAIG will work

CASE #3
You may want users to be case sensitive between PeopleSoft and Active Directory ? This is also possible with basic code change:
  - daniel.craig in PeopleSoft
  - only authenticated with daniel.craig in Active Directory

  CASE #4
You don't have much control in users provisioning in PeopleSoft or Active Directory ... or both ?

1.1 search for this line: &USER_PROFILE.UserID = Upper(&prflProps.GetByPropertyName("UserID").value);
1.2 and replace it With: &USER_PROFILE.UserID = &prflProps.GetByPropertyName("UserID").value;
2.1 search for this line: SetAuthenticationResult( True, Upper(&psUserId), "", False);
2.2 and replace it with: SetAuthenticationResult( True, &psUserId, "", False);
With this setup you are configured like CASE #3 but you need an extra step.

3.1 Add the following line before this line: SetAuthenticationResult( True, &psUserId, "", False);
    SQLExec("select OPRID from PSOPRDEFN where lower(OPRID) = :1", Lower(&psUserId), &psUserId);



You can now have mixed authentication cases like:
  - daniel.craig in PeopleSoft
  - and Daniel.Craig in Active Directory

and
  - Tony.Stark in PeopleSoft 
  - and tony.stark in Active Directory