Configuration d’OpenIAM avec LDAPS

La configuration d’OpenIAM avec LDAPS

OpenIAM est une solution de gestion d’identités et d’accès pour le management en entreprise. C’est une solution d’intégration idéale pour des services dématérialisés type cloud. Il est simple et efficace à mettre en œuvre, grâce notamment au standard ouvert qu’il utilise. La solution est promue comme une des meilleures solutions de gestion professionnelles car elle permet entres partenaires, commerciaux ou clients de pouvoir gérer ses identités, de les modifier, ou encore de les supprimer.

Dans cet article, nous aborderons le cas d’une inter-connexion avec l’Active Directory de Windows en mode sécurisé : Connecteur LDAPS. Le serveur OpenIAM tournera sous CentOS 6.7 tandis que le serveur ldaps sous Windows 2008R2. Pour mieux comprendre notre solution voici un schéma  :

Info : La configuration de notre machine OpenIAM doit être de 4CPU, 6GB de RAM et 10GB d’espace disque.

Découvrez par vous-même :

  1. L’installation des pré-requis.
  2. L’installation d’OpenIAM sous CentOS.
  3. L’installation d’un certificat racine sous Windows (LDAPS).
  4. Configuration du connecteur LDAPS.

L’installation des pré-requis

Nous sommes sur une distribution CentOS en mode Desktop. Nous utilisons le gestionnaire de paquet yum :

yum update

Une fois la mise à jour des logiciels terminée, il faudra installer deux logiciels indispensables : Java JDK 1.7 et Mysql 5.1.

Java JDK 1.7 sous CentOS

Il est important de bien choisir la version de Java, rendez-vous donc dans le dossier opt :

cd /opt/

Ensuite, téléchargez le fichier jdk-7u79-linux-x64.tar.gz :

wget --no-cookies --no-check-certificate --header "Cookie: gpw_e24=http%3A%2F%2Fwww.oracle.com%2F; oraclelicense=accept-securebackup-cookie" "http://download.oracle.com/otn-pub/java/jdk/7u79-b15/jdk-7u79-linux-x64.tar.gz"

Puis, extrayez l’archive compressée :

tar xzf jdk-7u79-linux-x64.tar.gz

Installez-la dans le répertoire courant :

cd /opt/jdk1.7.0_79/

A ce moment précis nous allons utiliser les alternatives qui  nous permettent de spécifier la version de Java à installer :

alternatives --install /usr/bin/java java /opt/jdk1.7.0_79/bin/java 2
alternatives --config java

Il existe 3 programmes qui fournissent « java ».

  Sélection    Commande
-----------------------------------------------
*+ 1           /usr/lib/jvm/jre-1.7.0-openjdk.x86_64/bin/java
   2           /usr/lib/jvm/jre-1.6.0-openjdk.x86_64/bin/java
   3           /opt/jdk1.7.0_79/bin/java

Entrez pour garder la sélection courante [+] ou saisissez le numéro de type de sélection :3

Vérifiez la version utilisée actuelle afin qu’elle corresponde bien à la version supportée par OpenIAM :

java -version

java version "1.7.0_79"
Java(TM) SE Runtime Environment (build 1.7.0_79-b15)
Java HotSpot(TM) 64-Bit Server VM (build 24.79-b02, mixed mode)

MySQL 5 sous CentOS

L’installation du SGBD est aussi un pré-requis indispensable. Pour cela, il nous suffit d’installer mysql-server :

yum install mysql-server
Dépendances résolues

=================================================================================================
 Paquet                     Architecture       Version                    Dépôt            Taille
=================================================================================================
Installation:
 mysql-server               x86_64             5.1.73-5.el6_6             base             8.6 M
Installation pour dépendance:
 mysql                      x86_64             5.1.73-5.el6_6             base             894 k
 perl-DBD-MySQL             x86_64             4.013-3.el6                base             134 k
 perl-DBI                   x86_64             1.609-4.el6                base             705 k

Résumé de la transaction
=================================================================================================
Installation de     4 paquet(s)

Taille totale des téléchargements : 10 M
Taille d'installation : 29 M
Est-ce correct [o/N] : o

Dès que notre installation se termine, il faut procéder manuellement à la mise en production du serveur avec la commande :

mysql_secure_installation

Un résultat apparaît : il y a un choix à suivre comme ceci :

Enter current password for root (enter for none):
OK, successfully used password, moving on...

Setting the root password ensures that nobody can log into the MySQL
root user without the proper authorisation.

Set root password? [Y/n] y
New password:
Re-enter new password:
Password updated successfully!
Reloading privilege tables..
 ... Success!

By default, a MySQL installation has an anonymous user, allowing anyone
to log into MySQL without having to have a user account created for
them.  This is intended only for testing, and to make the installation
go a bit smoother.  You should remove them before moving into a
production environment.

Remove anonymous users? [Y/n] y
 ... Success!

Normally, root should only be allowed to connect from 'localhost'.  This
ensures that someone cannot guess at the root password from the network.

Disallow root login remotely? [Y/n] y
 ... Success!

By default, MySQL comes with a database named 'test' that anyone can
access.  This is also intended only for testing, and should be removed
before moving into a production environment.

Remove test database and access to it? [Y/n] y
 - Dropping test database...
 ... Success!
 - Removing privileges on test database...
 ... Success!

Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.

Reload privilege tables now? [Y/n] y
 ... Success!

Cleaning up...


All done!  If you've completed all of the above steps, your MySQL
installation should now be secure.

Thanks for using MySQL!

Une fois les étapes d’installation et de sécurisation de MySQL terminées, faites le test suivant :

mysql -u root -p

Enter password:
Welcome to the MySQL monitor.  Commands end with ; or g.
Your MySQL connection id is 12
Server version: 5.1.73 Source distribution

Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or 'h' for help. Type 'c' to clear the current input statement.

mysql>

Pour quitter MySQL :

mysql> exit

Démarrage des services automatiques sur CentOS

Pour que les services mysqld et jbossas7 (serveur Java) puissent démarrer automatiquement il faut utiliser chkconfig :

/sbin/chkconfig --levels 235 mysqld on 
/sbin/chkconfig jbossas7 on 
Info : A ce moment précis, vous pouvez faire un redémarrage du serveur et vérifier vos processus.

L’installation d’OpenIAM sous CentOS

Désormais, nous devons créer un compte sur le site d’OpenIAM à l’adresse suivante : register openiam.
Téléchargez  l’archive nommée RHEL / CentOS 6.x .- OpenIAM_unix_3_3_3_RELEASE.sh.

wget 

Exécutez la commande suivante pour lancer l’installation :

sh OpenIAM_unix_3_3_3_RELEASE.sh
testing JVM in /usr ...
Starting Installer ...

Résumé des étapes d’installation en mode GUI :

  1. Destination /opt/OpenIAM
  2. Extraction automatique des fichiers dans le répertoire de destination.
  3. Sélection du type d’installation : 1.Tier (jboss Only,Full application).
  4. Sélection du type de base de donnée : MySQL avec les identifiants admin à ajouter uniquement.
  5. Sélection de l’adresse localhost du selfservice : port en 9080.
  6. Configuration du lien d’activation : modifier le port en 9080 au lieu de 8080 car nous utilisons jboss Only.
  7. Entrer vos paramètres SMTP.
  8. Cocher ou non l’envoi d’un mail.
  9. A la fin, une pop-up d’installation s’affiche pour nous notifier d’exécuter la génération d’un mot de passe.

A ce moment précis, nous nous rendons dans le répertoire de destination d’OpenIAM :

cd /opt/OpenIAM/

Lancez  le script de démarrage du serveur OpenIAM :

sh start_jboss.sh

Avant de vous pouvoir utiliser OpenIAM, verifiez les logs :

service jbossas7 log

Attendez quelques minutes pour que les fichiers .deployed soient visibles dans  :

cd /opt/OpenIAM/jboss/jboss-as-7.1.1.Final/standalone/deployments

Dans le fichier de log, le résultat ressemble à :

[MDC] Finished deploying webconsole.war, result: webconsole.war.deployed

Après quelques minutes, vous allez pouvoir exécuter ceci :

cd /opt/OpenIAM/utility
sh generate_password.sh

Properties are found. loading...
Generating master key...
Generating master key successfully finished

L’installation d’un certificat racine sous Windows pour ldaps

Nous allons désormais devoir créer un certificat racine de confiance sous Windows Serveur 2008R2 afin que la communication soit chiffrée en ldaps.

Résumé des étapes :

  1. Lancer le gestionnaire de serveur Windows.
  2. Ajouterle rôle : Active Directory Certificate Services.
  3. Ajouter les services du rôle Certification Authority from the Role Services screen.
  4. Lors du choix du CA , sélectionner : Enterprise.
  5. Le type de CA est : root.
  6. Une demande de nouvelle clé privée est nécessaire.
  7. Le choix du moyen de chiffrement apparaît (clé minimum de 2048).
  8. Il faut ensuite choisir un nom de certificat.
  9. Terminer l’installation & redémarrer le serveur Windows.

Il nous faut exporter le certificat car il va nous permettre de faire la liaison entre le manager d’identité (OpenIAM) et l’Active Directory. Pour ce faire, lancez le CMD de Windows puis exécutez la commande suivante :

certutil -ca.cert certificatSSL.cer

Le certificat est directement exporté dans le dossier courant par défaut dans votre dossier utilisateur exemple :

C:Usersffonaissak

Désormais, il vous faudra transférer votre certificat certificatSSL.cer vers le serveur OpenIAM.

Info : Je vous invite à utiliser WinSCP ou FileZilla via le protocole SFTP (activer le serveur SSH)

Configuration du certificat dans OpenIAM

Dans notre exemple, nous allons utiliser le certificat certificatSSL.cer, que nous avons transféré dans le répertoire suivant :

/home/ffonaissak/ssl/

Renommez le certificat en :

mv certicatSSL.cer adcert.ca

Afin d’importer le certificat dans java, rendez-vous dans le dossier de l’outil :

cd /opt/jdk1.7.0_79/jre/bin/

Avec l’utilitaire : keytool, lancez l’importation :

./keytool -import -alias adcert -keystore /usr/java/jdk1.7.0_79/jre/lib/security/cacerts -file /opt/OpenIAM/data/openiam/conf/backup_ssl/adcert.ca

Entrez le mot de passe du fichier de clés :  
Ressaisissez le nouveau mot de passe :
Propriétaire : CN=ldap-CA, DC=ldap, DC=kassianoff, DC=fr
Emetteur : CN=ldap-CA, DC=ldap, DC=kassianoff, DC=fr
Numéro de série : *******************************
Valide du : Tue Dec 15 12:51:34 CET 2015 au : Tue Dec 15 13:01:33 CET 2020
Empreintes du certificat :
     MD5:  /
     SHA1 : /
     SHA256 : /
     Nom de l'algorithme de signature : SHA1withRSA
     Version : 3

Extensions :

#1: ObjectId: 1.3.6.1.4.1.300.24.0 Criticality=false
0000: 02 01 00                                           ...

#2: ObjectId: 2.5.29.19 Criticality=true
BasicConstraints:[
  CA:true
  PathLen:2147481400
]

#3: ObjectId: 2.5.29.15 Criticality=false
KeyUsage [
  DigitalSignature
  Key_CertSign
  Crl_Sign
]

#4: ObjectId: 2.5.29.14 Criticality=false
SubjectKeyIdentifier [
KeyIdentifier [
0000: / .....?x..X.X'.0
0010: /                                       I.Vc
]
]

Faire confiance à ce certificat ? [non] :  yes

Vérifiez que le certificat est bien importé sur le serveur :

./keytool -list -v -keystore /opt/jdk1.7.0_79/jre/lib/security/cacerts

Editez le fichier de sécurité :

nano /opt/OpenIAM/data/openiam/conf/securityconf.proprietes

Voici la configuration à mettre sur la premier ligne :

KEYSTORE=${confpath}/conf/cacerts

Arrêtez ensuite la solution OpenIAM :

cd /opt/OpenIAM/ && sh stop_jboss.sh

Après quelques minutes, relancez le script  :

sh start_jboss.sh

Désormais vous êtes en mesure de configurer OpenIAM de façon sécurisée avec Active Directory.

Configuration du connecteur LDAPS

Maintenant vous devez vous connecter à l’interface web d’administrateur d’OpenIAM afin d’installé le connecteur.
Rendez-vous sur l’URL d’administration via https://localhost:9080/webconsole avec les identifiants par défaut :

Info : Dès la première connexion OpenIAM nous informe qu’il nous faut modifier notre mot de passe.

Ensuite, prenez la direction de la rubrique Provisioning puis Managed System pour créer un New Managed System :

Success! Je vous invite désormais à sauvegarder et à faire une requête SSL puis un test de connexion ldaps : OK.