Hadoop Single-Sign-On HSSO
BECHIR BEN TAIEB (RT3)
WAFA KADER (RT3)
SAHAR DRIDI (RT4)
SECURIDAY 2015
BIG DATA SECURITY
Hadoop Single-Sign-On HSSO
SECURIDAY 2015BIG DATA SECURITY
1
Table des matières
I. Présentation de l'atelier.................
Hadoop Single-Sign-On HSSO
SECURIDAY 2015BIG DATA SECURITY
2
I. Présentation de l'atelier :
Dans une époque de "Big Data" ...
Hadoop Single-Sign-On HSSO
SECURIDAY 2015BIG DATA SECURITY
3
II. Présentation des outils utilisés :
1. CentOS 6.6
CentOS (...
Hadoop Single-Sign-On HSSO
SECURIDAY 2015BIG DATA SECURITY
4
Le principe de la fédération d’identités est de déléguer l’au...
Hadoop Single-Sign-On HSSO
SECURIDAY 2015BIG DATA SECURITY
5
 Table Browser: Access Hive metadata.
 Search App: Query So...
Hadoop Single-Sign-On HSSO
SECURIDAY 2015BIG DATA SECURITY
6
III. Topologie des réseaux :
Lors d'une tentative de connexio...
Hadoop Single-Sign-On HSSO
SECURIDAY 2015BIG DATA SECURITY
7
IV. Configuration des outils
 Installation de oracle jdk :
O...
Hadoop Single-Sign-On HSSO
SECURIDAY 2015BIG DATA SECURITY
8
Ceci indique que le serveur tomcat a bien démarré.
 Installa...
Hadoop Single-Sign-On HSSO
SECURIDAY 2015BIG DATA SECURITY
9
Pendant certaines opérations , l'IdP et le SP pourront commun...
Hadoop Single-Sign-On HSSO
SECURIDAY 2015BIG DATA SECURITY
10
On passe alors à l'activation de SSL pour notre IdP :
Il suf...
Hadoop Single-Sign-On HSSO
SECURIDAY 2015BIG DATA SECURITY
11
Dans /opt/shibboleth-idp/conf ,on configure le fichier attri...
Hadoop Single-Sign-On HSSO
SECURIDAY 2015BIG DATA SECURITY
12
Après , on crée une nouvelle connexion LDAP en utilisant le ...
Hadoop Single-Sign-On HSSO
SECURIDAY 2015BIG DATA SECURITY
13
Si la connexion est réussie , on doit voir le Directory Info...
Hadoop Single-Sign-On HSSO
SECURIDAY 2015BIG DATA SECURITY
14
Après avoir ajouté un mot de passe , on trouve une nouvelle ...
Hadoop Single-Sign-On HSSO
SECURIDAY 2015BIG DATA SECURITY
15
 Installation et configuration de Hue
Tout d'abord, on ajou...
Hadoop Single-Sign-On HSSO
SECURIDAY 2015BIG DATA SECURITY
16
Remarque: xmlsec1 doit être exécutable par l'utilisateur de ...
Hadoop Single-Sign-On HSSO
SECURIDAY 2015BIG DATA SECURITY
17
V. Scénario de test :
Dans le navigateur ,on accède à hue av...
Hadoop Single-Sign-On HSSO
SECURIDAY 2015BIG DATA SECURITY
18
On accède à Hue
Si l'authentification échoue, on est appelé ...
Hadoop Single-Sign-On HSSO
SECURIDAY 2015BIG DATA SECURITY
19
VI. Conclusion
Dans ce tutoriel, il s'agit de mettre en plac...
Prochain SlideShare
Chargement dans…5
×

Atelier hadoop-single-sign-on

439 vues

Publié le

BIG DATA SECURITY
Atelier hadoop-single-sign-on

Publié dans : Ingénierie
0 commentaire
0 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

  • Soyez le premier à aimer ceci

Aucun téléchargement
Vues
Nombre de vues
439
Sur SlideShare
0
Issues des intégrations
0
Intégrations
12
Actions
Partages
0
Téléchargements
0
Commentaires
0
J’aime
0
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

Atelier hadoop-single-sign-on

  1. 1. Hadoop Single-Sign-On HSSO BECHIR BEN TAIEB (RT3) WAFA KADER (RT3) SAHAR DRIDI (RT4) SECURIDAY 2015 BIG DATA SECURITY
  2. 2. Hadoop Single-Sign-On HSSO SECURIDAY 2015BIG DATA SECURITY 1 Table des matières I. Présentation de l'atelier............................................................................................... 2 II. Présentation des outils utilisés..................................................................................... 3 1. CentOS 6.6................................................................................................................. 3 2.LightHadoop................................................................................................................3 3.JDK.............................................................................................................................. 3 4.Shibboleth .................................................................................................................. 3 5.Tomcat 6..................................................................................................................... 4 6.HUE.............................................................................................................................4 III. 3. Topologie des réseaux................................................................................................... 6 IV. 4. Configuration des outils ............................................................................................... 7 V. 5. Un scénario de test .................................................................................................... 17 VI. 6. Conclusion .................................................................................................................. 19
  3. 3. Hadoop Single-Sign-On HSSO SECURIDAY 2015BIG DATA SECURITY 2 I. Présentation de l'atelier : Dans une époque de "Big Data" , les entreprises collectent , analysent et prennent des décisions basées sur un flux énorme de données , ce qui rend la sécurité de toute information de plus en plus importante . Mais aussi , sécuriser ne doit pas pour autant endurcir la tâche aux employés . En effet , devoir ,à chaque tâche , introduire son login et mot de passe devient pénible au fil du temps , surtout avec la possibilité d'oublier l'un d'eux ou bien les deux . La meilleure solution serait une seule authentification : le Single-Sign-On. Etant un framework dédié au traitement et l'analyse des données massives , on a procédé sur Hadoop pour faciliter la tâche aux utilisateurs au sein d'une entreprise et leur permettre d'accéder aux différents services suite à une seule saisie de leur login et mot de passe . Ainsi, plus besoin de se souvenir de multiples informations non nécessaires , mais plutôt on aura une meilleure concentration sur le travail .
  4. 4. Hadoop Single-Sign-On HSSO SECURIDAY 2015BIG DATA SECURITY 3 II. Présentation des outils utilisés : 1. CentOS 6.6 CentOS (Community enterprise Operating System) est une distribution GNU/Linux destinée aux serveurs. Utilisée par 20 % des serveurs web Linux, elle est l'une des distributions Linux les plus populaires pour les serveurs web. Elle est le clone gratuit de la distribution Red Hat dont le support est payant. Depuis novembre 2013, elle est la troisième distribution la plus utilisée sur les serveurs web. Dans le monde, les communautés de CentOS et de fedora sont très proches et CentOS rencontre de plus en plus de succès chez les professionnels Contrairement à Ubuntu ,CentOS ne dispose pas des dernières versions des logiciels qui font le succès de Linux auprès des utilisateurs . Cette distribution est particulièrement adaptée à l'exécution de logiciels tels que les bases de données MySQL ,PostgreSQL, le serveur web Apache et autres serveurs de messagerie tels que Postfix, les logiciels commerciaux Oracle et Domino . 2. LightHadoop LightHadoop est une machine virtuelle "légère" contenant tous les composants nécessaire pour faire fonctionner Hadoop. 3.JDK L'écriture des applets et des applications Java nécessite l'utilisation d'outils de développement tel que le kit JDK(Java Development Kit). Ce dernier comprend l'environnement JRE, le compilateur Java et les API Java. Il s'agit des outils nécessaires pour programmer en java , tester ses programmes . 4.Shibboleth Shibboleth est une implémentation open source, gratuite pour la gestion des identités, fournissant un mécanisme unique de sign-on sur le Web à travers différentes frontières organisationnelles. C’est un système fédéré, pour garantir l'accès aux ressources à travers les domaines de sécurité.
  5. 5. Hadoop Single-Sign-On HSSO SECURIDAY 2015BIG DATA SECURITY 4 Le principe de la fédération d’identités est de déléguer l’authentification web des utilisateurs à un service d’authentification dans l’organisme d’origine de l’utilisateur. Le protocole utilisé est SAML 2, utilisé également par d’autres solutions logicielles de ce type. 5.TOMCAT6 Apache Tomcat est un conteneur web libre de servlets et JSP Java EE. Issu du projet Jakarta, c'est un projet principal de l’Apache Software Foundation. Il implémente les spécifications des servlets et des JSP du Java CommunityProcess, et est paramétrable par des fichiers XML et de propriétés, ainsi qu'il inclut des outils pour la configuration et la gestion. C’est un serveur léger, gratuit, libre, multiplateforme et assez complet pour ce que nous allons aborder. Parmi ses concurrents, on trouve JBoss Application Server (ou WildFly) qui est un serveur d'applications Java EE Libre entièrement écrit en Java, publié sous licence GNU LGPL. 6. HUE Hue (Hadoop User Experience) offre une interface graphique Web pour les utilisateurs Hadoop pour simplifier le processus de création, le maintien et l'exécution de nombreux types d'emplois Hadoop. Hue est composé de plusieurs applications qui interagissent avec des composants Hadoop, et dispose d'un SDK ouvert pour permettre de nouvelles applications à créer. Applications incluses dans Hue :  FileBrowser: Graphical interface for browsing files stored in MapR-FS.  Beeswax: Beeswax - Create and execute Hive queries.  Impala App: Create and execute Impala queries.  Oozie App: Create, submit, and schedule Oozie workflows and bundles.  Pig App: Create and execute Pig scripts.  HBase Browser: Explore and modify HBase tables and data.
  6. 6. Hadoop Single-Sign-On HSSO SECURIDAY 2015BIG DATA SECURITY 5  Table Browser: Access Hive metadata.  Search App: Query Solr and Solr Cloud.  Job Browser: View and access MapReduce jobs.  Job Designer: Create and execute MapReduce jobs.
  7. 7. Hadoop Single-Sign-On HSSO SECURIDAY 2015BIG DATA SECURITY 6 III. Topologie des réseaux : Lors d'une tentative de connexion à Hue , celui-ci réagit comme un SP (Service Provider) avec un service consommateur d'assertion et communique avec l'IDP pour authentifier l'utilisateur. En effet , l'assertion sert à indiquer à l'IDP si le client est déjà authentifié. Hue fournit deux URLs pour la communication avec l'IDP /saml2/metadata /saml2/acs L'IDP contacte l'URL des métadonnées pour avoir des information sur le SP. L'URL ACS est le consommateur d'assertion de l'idP auquel sont redirigés les clients authentifiés . La communication entre le SP et L'IdP se fait avec l'aide du protocole de sécurité SAML. Le schéma suivant résume le déroulement de la communication.
  8. 8. Hadoop Single-Sign-On HSSO SECURIDAY 2015BIG DATA SECURITY 7 IV. Configuration des outils  Installation de oracle jdk : On configure les variables d'environnementJAVA_HOME et JRE_HOME pour qu'elles pointent vers le répertoire d'installation  Installation et configuration de apache tomcat On télécharge apache tomcat version 6 ou supérieur. On le décompresse dans /usr/local/src et on le renomme en tomcat6 # cd /usr/local/src # curl -L -O http://apache.tradebit.com/pub/tomcat/tomcat- 6/v6.0.32/bin/apache-tomcat-6.0.32.tar.gz # tar -xvzf apache-tomcat-6.0.32.tar.gz # mv apache-tomcat-6.0.32 tomcat6 On instancie ces variables d'environnement comme suit: # export CATALINA_HOME=/usr/local/src/tomcat6 # export CATALINA_BASE=/usr/local/src/tomcat6 Et on configure la mémoire de la JVM .Ceci dépend généralement de la mémoire du serveur On édite le fichier /usr/local/src/tomcat6/bin/catalina.sh en ajoutant, à la fin ,la variable JAVA_OPTS comme suit: Dans le fichier /usr/local/src/conf/server.xml, la valeur par défaut du paramètre autoDeploy est égale à vrai. Ceci indique que tomcat vérifie périodiquement de nouvelles mises à jour d'application. Si une mise à jour est trouvée, un redéploiement est exécuté. Or, ceci n'est pas préférable. On met alors autoDeploy à faux. On lance tomcat TOMCAT_HOME/bin/catalina.sh start Pour vérifier que tomcat fonctionne correctement , on teste le lien suivant dans le navigateur http://localhost:8080 On doit voir la page suivante:
  9. 9. Hadoop Single-Sign-On HSSO SECURIDAY 2015BIG DATA SECURITY 8 Ceci indique que le serveur tomcat a bien démarré.  Installation et configuration de Shibboleth On télécharge Shibboleth version 2.4 ou supérieure à partir du site officiel de Shibboleth # curl -O http://www.shibboleth.net/downloads/identity- provider/2.4.0/shibboleth-identityprovider-2.4.0-bin.zip On extrait shibboleth-identityprovider-2.4.0-bin.zip et changer les droits du script install.sh pour qu'il soit exécutable puis on copie le dossier endorsed/ situé dans shibboleth- identityprovider-2.4.0 dans le dossier /usr/local/src/tomcat6 et on configure la variable JAVA_ENDORSED_DIRS # unzip shibboleth-identityprovider-2.4.0-bin.zip # cd shibboleth-identityprovider-2.4.0 # chmodu+x install.sh # cp -r endorsed/ /usr/local/src/tomcat6 # export JAVA_ENDORSED_DIRS=/usr/local/src/tomcat6/endorsed On exécute l'installeur et on poursuit tout en conservant les paramètres par défaut # ./install.sh Un mot de passe pour le keystore vous sera demandé. Mettez un mot de passe et notez le . On instanciela variable d'environnement IDP_HOME comme suit: # export IDP_HOME=/opt/shibboleth-idp On passe ensuite à la modification du fichier .bash_profile en y ajoutant ces deux lignes : IDP_HOME=/opt/shibboleth-idp export IDP_HOME
  10. 10. Hadoop Single-Sign-On HSSO SECURIDAY 2015BIG DATA SECURITY 9 Pendant certaines opérations , l'IdP et le SP pourront communiquer ensemble au même moment d'envoi de message via le navigateur de l'utilisateur . Pour gérer ceci , l'IdP a besoin d'un autre port (qu'on appelle connecteur tomcat) différent decelui utilisé par l'utilisateur . Pour ce faire , il suffit de suivre ces étapes : Télécharger tomcat6-dta-ssl-1.0.0.jar dans /usr/local/src/tomcat6/lib/folder Ajouter la définition du connecteur ci-dessous dans le fichier /usr/local/src/conf/server.xml (Remarque : Dans keystorePass on met le mot de passe entré lors de l'installation de shibboleth-idp) Créer et modifier le fichier /usr/local/src/tomcat6/conf/Catalina/localhost/idp.xml # vi /usr/local/src/tomcat6/conf/Catalina/localhost/idp.xml On copie ces quelques lignes dans notre nouveau fichier idp.xml Maintenant, l'installation et la configuration basiques de l'IdP sont mises en place. Pour tester le fonctionnement de l'IdP il faut : Arrêter tomcat et le relancer après pour assurer le déploiement de l'IdP.war # /usr/local/src/tomcat6/bin/catalina.sh stop # /usr/local/src/tomcat6/bin/catalina.sh start Ensuite, tester l'url suivantehttp://hostname:8080/idp/profile/Status Si tout s'est bien passé , on obtient une page "ok"
  11. 11. Hadoop Single-Sign-On HSSO SECURIDAY 2015BIG DATA SECURITY 10 On passe alors à l'activation de SSL pour notre IdP : Il suffit d'exécuter ces commandes pour créer un nouveau dossier où enregistrer les certificats . Il vous sera demandé d'introduire un mot de passe . # mkdir /home/yourHomeDir/idpcerts/ # keytool -genkey -alias tomcat -keyalg RSA -keystore /home/yourHomeDir/idpcerts/idpself.keystore Vous devez aussi indiquer à Shibboleth l'emplacement du nouveau keystore en ajoutant un nouveau connecteur. On copie ces lignes dans le fichier /usr/local/src/tomcat6/conf/server.xml La variable keystoreFile correspond à l'emplacement où on a enregistré le nouveau keystore et la variable keystorePass aura le mot de passe . Pour tester, ouvrir ce lien :https://idp.example.org/idp/profile/Status Si la configuration est correcte , on obtient une page "ok"
  12. 12. Hadoop Single-Sign-On HSSO SECURIDAY 2015BIG DATA SECURITY 11 Dans /opt/shibboleth-idp/conf ,on configure le fichier attribute-filter.xml pour rendre l'UID disponible. Pour cela ,on insère ce qui suit sous "<!--Release the transient ID to anyone -->": On configure le fichier relaying-party.xml pour que Shibboleth communique avec hue: sous:"<!-- MetadataProvider the combining other MetadataProviders -->"  Installation et configuration de Apacheds On commence par télécharger la dernière version d'Apacheds (version binaire) depuis le site officiel , la rendre exécutable puis l'exécuter: # chmoda+x apacheds-2.0.0-M19-32bit.bin # ./apacheds-2.0.0-M19-32bit.bin On conserve avec les options par défaut Maintenant , on exécute ApacheDS : # /etc/init.d/apacheds-1.5.2 start On télécharge Apache Directory Studio qu'on décompresse dans /opt en changeant son nom. # tar –xvzf ApacheDirectoryStudio-linux-x86-1.5.3.v20100330.tar.gz # mv ApacheDirectoryStudio-linux-x86-1.5.3.v20100330 /opt/apachedirstudio On change de répertoire et on exécute l 'Apache Directory Studio en suivant ces commandes : # cd /opt/ apachedirstudio # ./ApacheDirectoryStudio
  13. 13. Hadoop Single-Sign-On HSSO SECURIDAY 2015BIG DATA SECURITY 12 Après , on crée une nouvelle connexion LDAP en utilisant le LDAP server. Dans notre cas , il s'agit de Apache Directory Studio. Pour ce faire , il faut : Aller sur File -> New -> LDAP Connection Dans la fenêtre qui s'ouvre , on introduit le nom de la connexion, dans le champ hostname , on introduit le nom d'hôte sur lequel Apache Directory Server est exécuté et dans le champ port : 10389 , et on clique Next Dans la fenêtred'authentification , sélectionner Simple authentification en tant que méthode d'authentification , dans le champ user , entrer uid=admin , ou=system, et dans le champ bindpassword le mot de passe (secret).
  14. 14. Hadoop Single-Sign-On HSSO SECURIDAY 2015BIG DATA SECURITY 13 Si la connexion est réussie , on doit voir le Directory Information Tree (DIT) dans le navigateur du LDAP Pour ajouter un nouveau utilisateur , un clic droit sur "ou=users" et on sélectionne New entry . Dans la fenêtre qui s'ouvre , aucun changement de paramètres n'est nécessaire . Cliquer sur Next
  15. 15. Hadoop Single-Sign-On HSSO SECURIDAY 2015BIG DATA SECURITY 14 Après avoir ajouté un mot de passe , on trouve une nouvelle entrée dans le navigateur uid=votreUid. On ajoute un nouveau attribut userPassword . Dans l'éditeur qui s'ouvre, on introduit un nouveau mot de passe et puis ok .Voila un nouveau utilisateur créé.
  16. 16. Hadoop Single-Sign-On HSSO SECURIDAY 2015BIG DATA SECURITY 15  Installation et configuration de Hue Tout d'abord, on ajoute le repository de hue pour pouvoir le télécharger sous /etc/yum.repos.d . On crée un fichier appelé cloudera et on y ajoute ce qu'y suit: [cloudera-cdh4] name=Cloudera's Distribution for Hadoop, Version 4 baseurl=http://archive.cloudera.com/cdh4/redhat/6/i386/cdh/4/ gpgkey = http://archive.cloudera.com/cdh4/redhat/6/i386/cdh/RPM-GPG-KEY- cloudera gpgcheck = 1 On installe maintenant Hue #yuminstall Hue Hue-server On installe les packagse suivants: #yum install swig #yum install open-ssl On installe pip pour pouvoir installer des libraires python #yuminstallpip On installe djangosaml2 et pysaml2 ; des librairies qui supportent SAML pip install pysaml2 pip install djangosaml2 On installe le package xmlsec1 #yuminstall xmlsec1 xmlsec1-openssl
  17. 17. Hadoop Single-Sign-On HSSO SECURIDAY 2015BIG DATA SECURITY 16 Remarque: xmlsec1 doit être exécutable par l'utilisateur de Hue On passe maintenant à la configuration de Hue. Le ficher de configuration est /etc/hue/conf/hue.ini Hue doit être configuré comme un SP et utilisé SAML Authentification Backend #nano /etc/hue/conf/hue.ini Sous [libsaml] on modifie les champs suivant: xmlsec_binary=/opt/bin/xmlsec1 (c'est le chemin de xmlsec1 ceci peut varier pour connaitre le chemin exacte on exécute la commande: which xmlsec1) metadata_file=/tmp/metadata.xml key_file=/tmp/key.pem cert_file=/tmp/cert.pem Les fichiers key_file et cert_file sont copiés à partir de /opt/shibboleth-idp/credentials et convertis au format .pem: #cp /opt/shibboleth-idp/credentials/idp.key /tmp/ #cp /opt/shibboleth-idp/credentials/idp.key /tmp/ #mv /tmp/idp.key /tmp/key.pem #mv /tmp/idp.crt /tmp/cert.pem Toujours dans hue.ini sous [[auth]] , on ajoute la ligne suivante : backend=libsaml.backend.SAML2Backend On relance maintenant hue #hue service hue restart
  18. 18. Hadoop Single-Sign-On HSSO SECURIDAY 2015BIG DATA SECURITY 17 V. Scénario de test : Dans le navigateur ,on accède à hue avec le lien suivant localhost:8888 . On est redirigé automatiquement à Shibboleth pour l'authentification: On entre notre login et mot de passe qui appartiennent à ApacheDirectory. Si l'authentification est réussie ,on est ramené à hue. La redirection est visible sur la barre de lien du navigateur
  19. 19. Hadoop Single-Sign-On HSSO SECURIDAY 2015BIG DATA SECURITY 18 On accède à Hue Si l'authentification échoue, on est appelé à ressaisir le login et mot de passe:
  20. 20. Hadoop Single-Sign-On HSSO SECURIDAY 2015BIG DATA SECURITY 19 VI. Conclusion Dans ce tutoriel, il s'agit de mettre en place une maquette de faisabilité de Shibboleth, et expliquer les grands principes. Chaque fois qu'un nouvel utilisateur se connecte à une application, celle-ci le redirige vers le fédérateur d’identité, qui lui présente un formulaire d'authentification s'il ne le reconnaît pas, puis dans tous les cas une fois l'utilisateur connu, redirige celui-ci vers l'application, muni d'un ticket de service. À son tour, l'application se connecte sur le serveur CAS et lui communique le ticket de service de l'utilisateur. Le fédérateur Shibboleth renvoie alors à son tour à l'application l'identifiant unique de l'utilisateur qui est désormais authentifié. C'est ce mécanisme qui fonde le SSO Shibboleth, et qui permet une authentification unique quel que soit le nombre d'applications visitées. De plus, on a intégré le framework Hadoop dans ce système afin de garantir la sécurité des applications dédiées au Big Data. Donc , le SSO est une source de confort et de gain de temps pour l'utilisateur comme pour l'administrateur, ce qu’il a fait de lui une des priorités des entreprises françaises (d’après une étude de Pierre Audoin Consultants). Même les grands noms de l'informatique s'y sont mis:  Google: avec un compte Gmail, on peut avoir accès aux mails, à un compte YouTube avec la même adresse mail.  Facebook: le compte Facebook est valable aussi pour Instagram. Par ailleurs, comme toute technologie, le SSO présente un nombre important de limites. Tout d'abord, la compatibilité avec toutes les applications est loin d'être garantie. On a besoin de développer, pour les applications non supportées, une interface permettant au SSO d'authentifier automatiquement l'utilisateur, ce qui représente un travail qui n'est pas des moindres. Aussi l'intégration complète est difficile dans le SI. Les inconvénients de la mise en place d´une telle solution sont avant tout les inconvénients d´une mise en conformité du SI de l´entreprise . Il y'a aussi la contrainte coût et lourdeur. L´affiliation d´une application à un système de SSO à un coût non négligeable, en termes de budget mais également au niveau des accès serveur. Pour finir, le SSO peut également nuire à la sécurité. Il donne accès à une multitude de ressources une fois l'utilisateur authentifié. C'est pour cette raison qu’il est préférable de coupler les solutions de SSO, avec un système d'authentification forte. Un autre risque est également que si le serveur d´authentification tombe, l´application de SSO tombe. Il est donc préférable de mettre en place un serveur de secours.

×