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 :
Découvrez par vous-même :
- L’installation des pré-requis.
- L’installation d’OpenIAM sous CentOS.
- L’installation d’un certificat racine sous Windows (LDAPS).
- 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
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 :
- Destination /opt/OpenIAM
- Extraction automatique des fichiers dans le répertoire de destination.
- Sélection du type d’installation : 1.Tier (jboss Only,Full application).
- Sélection du type de base de donnée : MySQL avec les identifiants admin à ajouter uniquement.
- Sélection de l’adresse localhost du selfservice : port en 9080.
- Configuration du lien d’activation : modifier le port en 9080 au lieu de 8080 car nous utilisons jboss Only.
- Entrer vos paramètres SMTP.
- Cocher ou non l’envoi d’un mail.
- 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 :
- Lancer le gestionnaire de serveur Windows.
- Ajouterle rôle : Active Directory Certificate Services.
- Ajouter les services du rôle Certification Authority from the Role Services screen.
- Lors du choix du CA , sélectionner : Enterprise.
- Le type de CA est : root.
- Une demande de nouvelle clé privée est nécessaire.
- Le choix du moyen de chiffrement apparaît (clé minimum de 2048).
- Il faut ensuite choisir un nom de certificat.
- 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:/Users/moncompte
Désormais, il vous faudra transférer votre certificat certificatSSL.cer vers le serveur OpenIAM.
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/moncompte/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 :
- Identifiant : sysadmin
- Mot de passe : passwd000
Ensuite, prenez la direction de la rubrique Provisioning puis Managed System pour créer un New Managed System :