Profils utilisateurs AS400 et LDAP

AS400 - System Projected Backend

Il est possible d'exposer les profils utilisateurs AS/400 (i5/OS) au travers d'un frontal LDAP. Les objets exposés sont une représentation LDAP des objets, et non pas des entrées réelles d'un annuaire LDAP.

Ceci permet d'effectuer plusieurs types d'opérations LDAP :

  • Bind (authentification)
  • Search (recherche)
  • Add / Modify
  • Delete
  • Compare

 

Bind

Le DN d'un profil utilisateur est de la forme :

os400-profile=PROFIL,cn=accounts,os400-sys=HOSTNAME

Exemple :

os400-profile=jsmith,cn=accounts,os400-sys=systemA.acme.com.

Note : L'objet cn=accounts,os400-sys=systemA.acme.com a une classe d'objet container.

Limitations sur le Search

Le système supporte des requêtes basiques : on peut faire un filtre sur une classe d'objet (attribut objectclass), sur l'identifiant du profil (attribut os400-profile) ou sur l'attribut os400-gid.

L'attribut os400-profile supporte les wildcard (caractère *).

L'attribut os400-gid est limité à :

  • (os400-gid=0), qui est un profil utilisateur individuel,
  • !(os400-gid=0), qui est un profil de type groupe.

Il faut remarquer qu'un filtre complexe, de type (&(os400-profile=PROFILE)(objectclass=os400-usrprf)) retourne une erreur. Il est toutefois possible de faire un filtre en combinant les attributs os400-gid et os400-profile.

Par exemple, le filtre : (&(os400-gid=0)(os400-profile=Q*)) permet de récupérer tous les profils de type utilisateur (et pas groupe).

Retour d'une recherche "globale"

Dans le cas d'un filtre de type os400-gid=0 ou os400-profile=*, seuls quelques attributs sont retournés :

  • objectclass
  • os400-profile
  • dn de l'entrée

Si un autre filtre est spécifié, une erreur de type LDAP_UNWILLING_TO_PERFORM (code Erreur 53) est retournée.

Recherche sur un utilisateur

Pour récupérer tous les attributs d'un utilisateur (sauf son mot de passe), il faut faire une recherche directement avec son DN, ou en précisant son profil.

  • Search base : cn=accounts, os400-sys=SystemA.acme.com
  • Filtre : os400-profile=JSMITH

donnera le même résultat que :

  • Search base : os400-profile=JSMITH,cn=accounts, os400-sys=SystemA.acme.com
  • Filtre : objectclass=*

On peut dans ce cas préciser les attributs qui seront retournés.

Ceci signifie notamment qu'il n'est pas possible, en une requête, d'avoir le détail des comptes d'un AS/400. Il faut procéder en deux étapes :

  • un premier filtre pour récupérer la liste des DN / profils
  • pour chaque profil / DN retourné, refaire une requête sur l'objet lui-même

 

Ajout / modification

L'ajout et la modification peuvent s'effectuer simplement via un fichier LDIF. Il suffit de très peu d'attributs pour créer un profil AS/400. Le système i5/OS complète le profil avec des valeurs par défaut.
Pour créer un utilisateur , on peut par exemple utiliser un fichier LDIF tel que celui-ci :

dn: os400-profile=MYPROF01,CN=ACCOUNTS,OS400-SYS=TEST01.ACME.IBM.COM
OBJECTCLASS: top
OBJECTCLASS: os400-usrprf
os400-profile: MYPROF01
os400-password: AS400Password
os400-pwdexp: *NO
os400-usrcls: *USER
os400-text: Mon profil de test 01

On lance l'intégration via :

ldapadd -h HOST -x -D "os400-profile=ADMLDAP,cn=accounts,OS400-SYS=TEST01.ACME.IBM.COM -w PASS -f PROFIL.ldif

Limitations sur le mot de passe

Selon le niveau de sécurité, le mot de passe impose certaines limitations. En Level 0 ou 1, le mot de passe est assez limité :

  • Maximum 10 caractères
  • Caractères alphanumériques autorisés
  • Caractères spéciaux limités à : @ # $ _

Depuis la version OS400 V5R1, l'attribut système QPWDLVL permet de modifier la valeur du niveau. Il est possible de changer ce niveau pour tout le serveur, et de le passer en niveau 2 ou 3. Dans ce cas, les caractéristiques du mots de passe sont ;

  • Maximum 128 caractères
  • Caractères alphanumériques autorisés
  • Caractères spéciaux non limités (on peut uiliser n'importe quel caractère du clavier y compris l'espace)

Certaines précautions sont à prendre si on veut passer d'un niveau 0 à un niveau 2.

Références

Plus d'informations sur le site IBM : http://publib.boulder.ibm.com/infocenter/iseries/v5r4/index.jsp?topic=%…

Catégorie