EIM

 

IBM i   propose un Single Signon basé sur Kerberos avec EIM.

 

KERBEROS est un protocole d'authentification, qui utilise les concepts suivants :

Le dialogue se passe de la manière suivante :

 => demande au serveur d'authentification (probablement Windows) d'un TGT
 <= réception du TGT si l'authentification est valide

 => je fournit mon TGT au KDC (toujours Windows) afin d'obtenir un TS pour un service donné
 <= obtention du TS si TGT valide

 => présentation du TS auprès du fournisseur de service (probablement le System i)
 <= accord de ce dernier si le TS est jugé valide, qui présente en échange la preuve qu'il est bien le service attendu.

 



EIM
est une architecture et un jeu d'API d'origine IBM complétant Kerberos dans la mise en place du SSO (Single SignOn)

Elle permet d'établir une relation entre une personne physique (identifiant EIM) et l'ID (le profil) qui identifie cette personne sur chaque serveur.
(donc le nom d'utilisateur peut être différent sur Windows et IBM i)

Cette correspondance est enregistrée dans le serveur LDAP de l'IBM i, qui doit être configuré et démarré.



IBM Tivoli Directory Serveur


S'il est démarré et que vous n'avez plus le mot de passe de connexion, modifiez le (propriétés)


Bouton "mot de passe"

Vérifiez que vous avez installé les logiciels suivants

ATTENTION :

vos serveurs DNS doivent être correctement renseigné, particulièrement il doit y avoir correspondance entre

  • le nom de la machine (CFGTCP/option 12)
  • le nom du serveur pour le PC.
  • le nom retourné par une recherche inverse (ping -a) sur l'adresse IP


 

Mise en place avec Navigator for i

 

1/ Configurez le serveur d'authentification (kerberos)

Sécurité/Toutes les tâches/Service d'authentification réseau (NAS)


un assistant est lancé

indiquez ici si vous utilisez un serveur Windows (2000,2003 ou 2008), comme centre Kerberos.

-> si vous utilisez Windows (cas le plus simple et le plus répandu) entrez le nom de domaine


puis les coordonnées du serveur kerberos



et le serveur de mot de passe (normalement le même)


Ensuite, indiquez les services qui vont utiliser EIM (il faut générer des services avec mot de passe dans l'AD)


Indiquez les services utilisant le SSO (ceux pour lesquels il faudra un TS)

puis service par service, entrez le mot de passe

pour kerberos (tout ce qui est connexion système, Telnet, etc...)

krbsvr400/as400.volubis.intra@DOMAINENT.VOLUBIS.INTRA


ATTENTION, cela va aussi générer un fichier .bat de création d'utilisateurs sur Active Directory si votre KDC est un serveur WINDOWS

la clé saisie ici, sera le mot de passe attribué à l'utilisateur sur l'AD, il doit donc respecter les stratégies imposées par ce dernier (longueur mini par exemple)

LDAP
ldap/as400.volubis.intra@DOMAINENT.VOLUBIS.INTRA

Apache
HTTP/as400.volubis.intra@DOMAINENT.VOLUBIS.INTRA
NFS
nfs/as400.volubis.intra@DOMAINENT.VOLUBIS.INTRA

 

Netserver
HOST/as400.volubis.intra@DOMAINENT.VOLUBIS.INTRA (nom complet)
cifs/as400.volubis.intra@DOMAINENT.VOLUBIS.INTRA
HOST/as400@DOMAINENT.VOLUBIS.INTRA
(nom court)
cifs/as400@DOMAINENT.VOLUBIS.INTRA
HOST/qas400@DOMAINENT.VOLUBIS.INTRA
(nom netserver)
cifs/qas400@DOMAINENT.VOLUBIS.INTRA
HOST/10.3.1.1@DOMAINENT.VOLUBIS.INTRA
(adresse IP)
cifs/10.3.1.1@DOMAINENT.VOLUBIS.INTRA

Les lignes HOST/ sont pour les PC avant XP, les lignes cifs/ pour les PC en XP, Seven et suivant...



Vous devez retrouver :

  1. Le nom de système (long et court)
  2. L'adresse IP
  3. le nom Netbios indiqué ici :

 

 


puis indiquez (conseillé) si vous souhaitez que l'assistant génère le fichier .bat à lancer sur votre serveur Windows, comme vu plus haut.


Enfin, confirmez cet écran récapitulatif.

 


Ensuite, configurez votre serveur Windows (enregistrement des services)

lancez NASConfig_AS400.bat (remplacez AS400 par le nom de votre serveur)

qui doit lancer une série de commandes comme celles-ci :

   DSADD user "cn=as400_1_krbsvr400,cn=users,dc=DOMAINENT,DC=VOLUBIS,DC=INTRA" -pwd XXXXX -display as400_1_krbsvr400
-pwdneverexpires=yes -desc "IBM i lerberos principal on system AS400" KTPASS -MAPUSER as400_1_krbsvr400 -princ krbsvr400/as400.volubis.intra@DOMAINENT.VOLUBIS.INTRA -pass XXXXX -mapOp set
avant 2003 :
   NET USER as400_1_krbsvr400 XXXXX /ADD /workstations:none /DOMAIN 
   KTPASS -MAPUSER as400_1_krbsvr400 -princ krbsvr400/as400.volubis.intra@DOMAINENT.VOLUBIS.INTRA -pass XXXXX -mapOp set
où XXXXX est le mot de passe enregistré par l'assistant et -mapOp indique un remplacement si l'entrée existe déjà.

DSADD ou NET USER créé l'utilisateur dans Active Directory

KTPASS lui associe le principal fourni en paramètre

la commande KTPASS attribue comme nom de principal , krbsvr400 / "le nom retourné par une recherche DNS inverse" (DNS ou fichier HOST)

si vous avez configuré CHGTCPDMN HOSTSCHPTY(*LOCAL) et qu'on utilise le fichier host, la première ligne sera utilisée


C'est ce nom qu'il faudra utiliser lors desconnexions, donc la configuration d'ACS


Si vous souhaitez utiliser indifféremment nom long/nom court, ajouter une entrée comme celle ci :


Avec ce paramétrage :

Attention, vous remarquerez la case "Utiliser les types de cryptage DES pour ce compte" cochée, c'est obligatoire.

EIM utilisant ce type de cryptage et non le RC4-HMAC de Windows 2003/2008.


Ceci est géré automatiquement par l'ajout de +DesOnly à la commande ktpass générée dans le fichier .bat par l'assistant

Windows 7 et 2008 n'utilisent plus par défaut le chiffrement DES-CBC-MD5 utilisé par EIM.

 

  • Soit, Il faut le forcer.

Sur le poste Windows 7, exécuter "gpedit.msc"
Dans la console, aller sur Configuration Ordinateur / Paramètres Windows / Paramètres de sécurité / Stratégies locales/ Options de sécurité

Dans la panneau de droite, Double-cliquer sur l'option "Sécurité réseau : configurer les types de chiffrement autorisés pour Kerberos"


Cocher les cases "DES-CBC-MD5". Valider. Fermer la console.

  • Soit il faut installer les PTF suivantes
    • V7R10 : SI42219,SI45846,SI43918
    • V6R10 : SI42957,SI45582,SI43919
    • V5R40 : SI43034,SI45840,SI43920


      Vérifiez que vous avez dans le fichier /QIBM/ProdData/OS400/NetworkAuthentication/krb5.conf

      les deux lignes (dans la section [libdefaults] )
      default_tkt_enctypes = aes256-cts-hmac-sha1-96,aes128-cts-hmac-sha1-96,arcfour-hmac
      default_tgs_enctypes = aes256-cts-hmac-sha1-96,aes128-cts-hmac-sha1-96,arcfour-hmac

      Qui doivent apparaitre comme ceci quand vous demandez les propriétés du service d'authentification


    • Modifiez le principal sur votre serveur Windows
      • Sur Windows 2003 enlevez le cryptage DES
      • Sur Windows 2008, enlevez DES et Cochez AES 128 et 256 bits


        Si vous devez utiliser ktpass, remplacez +DesOnly par /crypto All sur Windows 2008

 


Pour continuer, retournons sur le System i, lancez QSH depuis une session 5250

puis tapez kinit -k krbsvr400/as400.volubis.intra@DOMAINENT.VOLUBIS.INTRA (en remplaçant par vos valeurs)

Si vous voyez le message suivant : "Response too large for datagram"

retournez sur Navigator for i , demandez les propriétés du service d'authentification (clic droit)
et cochez "Utiliser TCP"

si tout marche bien , vous devez voir le prompt ($), vous pouvez vérifier ensuite par klist

keytab list, vous montre la liste détaillée.

 

 

2/ Configurez EIM

Réseau/Toutes les tâches/EIM/Configuration


Création d'un domaine EIM


Indiquez

Sur le serveur LDAP local


Cette page vous propose de configurer NAS (C'est déjà fait)


Indiquez le mot de passe pour se connecter au serveur LDAP (et donc stocker vos informations)


le serveur EIM fonctionne par domaine, Laissez EIM ou indiquez ici un nom (à créer)

et le suffixe LDAP sous lequel enregistrer les informations (IBM conseille de na pas indiquer de nom distinctif)

SI le serveur LDAP est démarré, vous verrez



Confirmez

l'ID avec lequel l'OS se connectera à EIM (donc au serveur LDAP).

 

puis confirmez l'écran récapitulatif en cliquant sur Terminer

Vous devez retrouver les registres créés, sous cet affichage :


Le domaine (connectez vous puis faites Ouverture)

 

Enfin, il faut enregistrer les utilisateurs sous Navigator for i. Connectez vous :

Connexion (saisissez le mot de passe LDAP) puis Ouverture



 

il faut créer

EN V6R1, vous pouvez même associer plusieurs profils CIBLE pour un même système, à condition de préciser l'adresse IP d'origine permettant de départager (bouton Détail).


Et vous pouvez avoir plusieurs utilisateurs source (Windows) pour un seul utilisateur Cible.

(attention, ceci dit, à ne pas vous embrouiller, on préférera sans doute la règle du 1 pour 1)

et voilà

 

Du coté System i, vous pouvez aussi utiliser la commande :

CHGUSRPRF USRPRF(FORMATION1) EIMASSOC(*USRPRF *TARGET *REPLACE *CRTEIMID)

cela va créer un identificateur (grâce à *CRTEIMID) et lui associer un profil local de même nom, de type cible.


ou utiliser les API EIM pour insérer les identificateurs par programme. (voir cet exemple)

Enfin sur les postes concernés, paramétrez votre connexion

 





Exemple de mise en place :


ET si vous avez deux serveurs IBM i

L'une des deux doit être définie comme nous venons de le voir plus haut.

 

Pour l'autre (I5TEST dans nos exemples) :

 

 

Cette configuration peut aussi être utilisée pour passer d'un système à l'autre, particulièrement pour :


La version 7.2 propose d'utiliser aussi kerberos pour connecter deux IBM i en TELNET et FTP



Sauvegardes :

Vous pouvez répliquer les deux bibliothèques et les deux branches de l'IFS (arborescence incluse) sur une machine de backup
  (LDAP sera démarré, uniquement en cas de bascule, sur la machine de backup)

Attention, ceci dit, avec des iASP (PowerHA, par exemple)

  • Il n'était pas possible d'indiquer un ASP indépendant lors de la config LDAP (donc QUSRDIRDB est dans l'ASP système)
  • C'est désormais accepté lors de la configuration initiale


  • La bibliothèque QUSRDIRDB sera placée dans cet ASP
  • Le répertoire /QIBM/UserData/OS400/DIRSRV/idsslapd-QUSRDIR (lié à l'instance) ne sera qu'un lien symbolique vers le répertoire de même nom dans l'IASP (sous QSH ls -l montre les liens symboliques)

Dans le cas d'une config. dans l'ASP de base :

-> Sauvegardez/restaurez les bibliothèques et les répertoires "à la main" (par exemple sauvegarde dans un SAVF d'une bibliothèque de l'iASP),
ou bien voyez la réplication de serveur LDAP à serveur LDAP en suivant ce cours

   (basé sur http://www-01.ibm.com/support/docview.wss?uid=nas1618398daccf03cf3862575d6006c3ce6 )

 

 

Copyright © 2009/2019 VOLUBIS