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

Aucun commentaire:

Enregistrer un commentaire