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é

 

Si le service d'authentification réseau est déjà configuré, vous avez ce message d'avertissement :


 

 

indiquez ici si vous utilisez un serveur Windows, 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


Cliquer sur "Ajout" poiur prise en compte dans la liste


Puis le serveur de mot de passe (normalement le même) : proposé par défaut sur le port 464.   


 

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) 

 

Le bouton "Détails" indique les clés déjà existentes sur le système si le service a déjà été configuré :


 

 

Vous pouvez choisir d'indiquer un mot de passe unique pour l'ensemble des comptes de service, ou un mot de passe distinct par compte (tout ce qui est connexion système, Telnet, etc...)

krbsvr400/as400.gaia.lan@GAIA.LAN


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)

 

IBM i

krbsvr400/as400.gaia.lan@GAIA.LAN

LDAP
ldap/as400.gaia.lan@GAIA.LAN

Apache
HTTP/as400.gaia.lan@GAIA.LAN
NFS
nfs/as400.gaia.lan@GAIA.LAN
FTP
ftp/as400.gaia.lan@GAIA.LAN
ObjectConnect
objectconnect/as400.gaia.lan@GAIA.LAN

 

Netserver

HOST/as400.gaia.lan@GAIA.LAN (nom complet)
cifs/as400.gaia.lan@GAIA.LAN
HOST/as400@GAIA.LAN
(nom court)
cifs/as400@GAIA.LAN
HOST/qas400@GAIA.LAN
(nom netserver)
cifs/qas400@GAIA.LAN
HOST/172.30.14.1@GAIA.LAN
(adresse IP)
cifs/172.30.14.1@GAIA.LAN

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

Si vous avez choisi un mot de passe par service :


Pour NetServer, 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.

Par défaut le fichier est généré ici : /QIBM/UserData/OS400/Navigator/config/NASConfig_as400.bat

 


Enfin, confirmez cet écran récapitulatif.

Le fichier de configuration correspondant est ici : /QIBM/UserData/OS400/NetworkAuthentication/krb5.conf 

 


Ensuite, configurez votre serveur Windows (enregistrement des services)

Lancez NASConfig_AS400.bat en tant qu'administrateur (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=GAIA,DC=LAN" -pwd XXXXX -display as400_1_krbsvr400
-pwdneverexpires=yes -desc "IBM i Kerberos principal on system AS400" KTPASS -MAPUSER as400_1_krbsvr400 -princ krbsvr400/as400.gaia.lan@GAIA.LAN -pass XXXXX -mapOp set -crypto All -ptype KRB5_NT_PRINCIPAL
avant 2003 :
   NET USER as400_1_krbsvr400 XXXXX /ADD /workstations:none /DOMAIN 
   KTPASS -MAPUSER as400_1_krbsvr400 -princ krbsvr400/as400.gaia.lan@GAIA.LAN -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.

 

Pour les versions > 7.2 de l'IBM i et > 2008 d'AD, ce n'est plus nécessaire.


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

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

 

  • Soit, Il faut le forcer.

Sous Windows server 2019 par exemple : aller sur le gestionnaire de serveur / Outils / Stratégie de sécurité locale / 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.gaia.lan@GAIA.LAN   (en remplaçant par vos valeurs)

Vous devez obtenir :

 

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

Sécurité/Mappage EIM/Assistant de 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)

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

 

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

 

Un message confirme la création du domaine pendant quelques secondes :Un message confirme la création du domaine pendant quelques secondes :

 

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



Puis

 

Enfin, il faut "ouvrir" le domaine :

 

Et vous obtenez :


 

Il faut créer

Depuis la 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 (options Propriétés). Ce n'est plus possible à partir de la nouvelle interface Navigator for i (vous pouvez alors réactiver la version heritage).


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 (iTest9  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/2023 VOLUBIS