#mpclinid2014
Séminaire LinID.orgSéminaire LinID.orgGestion, fédération et contrôle des identités
3 AVRIL 2014
WWW.LINAGORA.COM
2#mpclinid2014
Sommaire
Introduction (15')
Présentation des composants de LinID.org (30')
Intégration du serveur Active Directory avec LinID.org (30')
Pause (15')
Mise en place de la fédération des identités avec le protocole SAML (45')
Retour d'expérience par Olivier Guillard, AFNIC (30')
3
Notre mission
Avec ses Avec ses logicielslogiciels et et servicesservices, , LINAGORA permet aux grandes LINAGORA permet aux grandes organisations publiquesorganisations publiques et et privéesprivées de développer leur de développer leur
indépendance technologiqueindépendance technologique
4#mpclinid2014
Présentation de LINAGORA
Logiciels et services pour Logiciels et services pour réussir réussir
vos grands projets de vos grands projets de transformation transformation
open sourceopen source
Principaux clientsPrincipaux clients
Edition LogicielleEdition Logicielle
ServicesServices
Assurance LogicielleAssurance Logicielle
Messagerie Collaborative
Partage de fichiers sécurisé
Gestion et Fédération des Identités
Plateforme d'intégration SOA
150 salariés
Bureaux en France, Belgique, États Unis et Canada
5
Le 1er investisseur privé en R&D Open Source en France !
PARIS
TOULOUSE
LYON
SOPHIA
MONTPELLIER
GRENOBLE
13 ingénieurs
161
1
26
+40 ingénieurs R&D
1 1
+10nouveaux postes à
pourvoir pour le développement
d'OpenPaaS
HAMBOURG
COPENHAGEN
2,5 M€ d'investissement en R&D
+50
ingénieurs R&D dans les 3 ans
6#mpclinid2014
Modèle économique
On se rémunère par :
Conseil et intégration
Développement de fonctionnalités spécifiques
Support technique
100 % Free Free 100 % Free Free = aucunaucun coûtcoût de licence
= réellementréellement Open Source = paspas de modèle Freemium
7
Signature électronique uniquement pour .doc Signature électronique pour tout type de document
L'alternative aux logiciels propriétaires existe
8#mpclinid2014
Sommaire
Introduction (15')
Présentation des composants de LinID.org (30')
Intégration du serveur Active Directory avec LinID.org (30')
Pause (15')
Mise en place de la fédération des identités avec le protocole SAML (45')
Retour d'expérience par Olivier Guillard, AFNIC (30')
#mpclinid2014
Présentation des Présentation des composants de LinIDcomposants de LinID
10#mpclinid2014
Des logiciels libres de gestion des identités
LinID est un ensemble de logiciels libres destinés à fournir une solution complète de gestion des identités et des accès :
– LinID Directory Server : annuaire référentiel d'identités
– LinID Directory Manager : interface de publication et de gestion
– LinID Access & Federation Manager : SSO, contrôle d'accès et fédération des identités
– LinID Provisioning Manager : synchronisation des identités entre les référentiels du SI
11#mpclinid2014
Des composants complémentaires et intégrés
Référentiel des Référentiel des identitésidentités
DirectoryDirectoryServerServer
Sources Sources d'identitésd'identités(SIRH, ...)(SIRH, ...)
Identités du Identités du système système
d'informationd'information
Provisioning Provisioning ManagerManager
Applications du Applications du système système
d'informationd'information
Applications CloudApplications CloudApplications CloudApplications Cloud
Console Console d'administrationd'administration
OpenLDAPOpenLDAPManagerManager
Interface de gestionInterface de gestion
DirectoryDirectoryManagerManager
SSO, contrôle d'accès, fédération SSO, contrôle d'accès, fédération d'identitésd'identités
FederationFederation& Access& AccessManagerManager
12#mpclinid2014
Directory Server
13#mpclinid2014
LinID Directory Server
Annuaire de référence : OpenLDAP
Paquetages RPMs et Debian des dernières versions
Utilitaire de sauvegarde/restauration des données et de la configuration
Console d'administration : LinID OpenLDAP Manager
Greffons de supervision Nagios/Centreon/Cacti
14#mpclinid2014
L'annuaire le plus performant du marché
Tests de charge en lecture réalisés en 2013 :
Source : http://fr.slideshare.net/ldapcon/benchmarks-on-ldap-directories
15#mpclinid2014
Respect des standards et richesse fonctionnelle
OpenLDAP est l'implémentation de référence des RFC IETF sur le protocole LDAP
Un système de greffons permet l'activation de nombreuses fonctionnalités :
– Intégrité référentielle
– Unicité globale
– Groupes dynamiques
– Politique des mots de passe
– Pagination et VLV
– Attributs collectifs
– Service dynamiques
– Gestion de l'attribut memberOf
16#mpclinid2014
OpenLDAP Manager
17#mpclinid2014
LinID OpenLDAP Manager
Console Web de gestion de la configuration OpenLDAP (depuis la version 2.3)
Gestion des backends et des overlays
Gestion du schéma
Détection dynamique des modules compilés et de la version
Possibilité d'administrer plusieurs serveurs depuis une interface unique
18#mpclinid2014
Gestion des connexions
19#mpclinid2014
Édition du schéma
20#mpclinid2014
Directory Manager
21#mpclinid2014
LinID Directory Manager
Framework J2EE haut niveau pour création d'interfaces de gestion d'annuaires LDAP
Fonctionnalités :
– Pages blanches, pages jaunes
– Formulaire de création, mise à jour et suppression
– Délégation
– Recherches multicritères
– Navigation par arbre
– Gestion des photos
– Organigrammes
Adaptabilité dynamique au schéma de données et aux contrôles d'accès
22#mpclinid2014
Formulaire de recherche
23#mpclinid2014
Consultation d'une fiche
24#mpclinid2014
Gestion de la photo
25#mpclinid2014
Arbre de navigation
26#mpclinid2014
Arbre de navigation
27#mpclinid2014
Personnalisation graphique
28#mpclinid2014
Access & Federation Manager
29#mpclinid2014
LinID Access Manager
Produit de WebSSO et contrôle d'accès (LemonLDAP::NG)
Modules d'authentification LDAP, SQL, CAS, Kerberos, OpenID, SAML, SSL, OTP (Yubikey), etc.
Intégration directe SiteMinder, Apache htaccess, HTTP Basic, Tomcat
Rejeu de formulaires
Historique de connexion
30#mpclinid2014
Portail d'authentification
31#mpclinid2014
Liste des applications
32#mpclinid2014
Personnalisation graphique
33#mpclinid2014
Console d'administration
34#mpclinid2014
LinID Federation Manager
Extension de LinID Access Manager pour la fédération d'identité
Support :
– Authentification et fournisseur d'identité SAML2 / Shibboleth
– Authentification et fournisseur d'identité OpenID
– Authentification et fournisseur d'identité CAS
Cas d'usage
– Partage d'applications pour plusieurs organisations
– Accès à des applications dans une organisation multi AD hors forêt
– Sécurisation de l'accès à des applications SaaS (Google Apps) via une authentification locale (AD, certificats, token, ...)
– Passerelle mutli-protocoles (CAS/SAML/LDAP/OpenID/...)
35#mpclinid2014
IDP SP SLO
Émission des requêtes et réponses
Méthode AuthnResponse
AuthnRequest
AttributeRequest
Request Response
HTTP GET OK OK OK OK
HTTP POST OK OK OK OK
Artifact GET OK OK
Artifact POST OK OK
PAOS TODO TODO
SOAP OK OK OK
Réception des requêtes et réponses
Méthode AuthnRequest
AuthnResponse
AttributeResponse
Request Response
HTTP GET OK OK OK OK OK
HTTP POST OK OK OK OK OK
Artifact GET OK OK OK
Artifact POST OK OK OK
PAOS TODO TODO TODO
SOAP OK OK OK
Matrice du support SAML2
36#mpclinid2014
LinID Federation Manager et le Cloud
37#mpclinid2014
Provisionning Manager
38#mpclinid2014
LinID Provisioning Manager - PM
Moteur d'approvisionnement et de synchronisation
Fonctionnement : unitaire ou événementiel
Référentiels supportés :
– SGBD : Oracle, MySQL, PostgreSQL, Ingres, Sybase…
– Annuaires LDAP : Sun/Oracle DS, OpenLDAP, Active Directory, ...
– Fichiers : CSV, XML, LDIF, ...
– Autres : Google Apps, OBM, NIS, Executable
Libraires avancées :
– Active Directory
– Samba
Extensibilité simple via Java
Supervision temps réel Nagios/Centreon via JMX
39#mpclinid2014
Exemples d'implémentation
Synchronisation d'un annuaire d'entreprise vers des annuaires techniques Samba
Synchronisation bidirectionnelle entre Active Directory et OpenLDAP, avec gestion des mots de passe
Import des comptes dans un annuaire depuis une base de données RH
Approvisionnement d'identités dans des bases de données d'applications
40#mpclinid2014
Sommaire
Introduction (15')
Présentation des composants de LinID.org (30')
Intégration du serveur Active Directory avec LinID.org (30')
Pause (15')
Mise en place de la fédération des identités avec le protocole SAML (45')
Retour d'expérience par Olivier Guillard, AFNIC (30')
#mpclinid2014
Intégration du serveur Intégration du serveur Active Directory avec Active Directory avec
LinID.orgLinID.org
42#mpclinid2014
Le serveur Active Directory
43#mpclinid2014
Active Directory
Active Directory est le serveur de gestion de parc de Microsoft
Parmi ses services, Active Directory propose un annuaire LDAP, toutefois quelques libertés ont été prises vis-à-vis du standard LDAP :
– Chiffrement spécifique du mot de passe, pas d'export possible
– Limites sur le nombre d'entrées retournées (page size) et le nombre de valeurs retournées par attributs (val range)
– Schéma non standard, en particulier la classe d'objet « user »
– Période de validité de l'ancien mot de passe même après son changement
– Utilisation de nombreux attributs binaires
– Format de temps spécifique (nombre de blocs de 100 ns depuis le 1er janvier 1601)
44#mpclinid2014
Synchronisation OpenLDAP AD↔
45#mpclinid2014
Objectifs de la synchronisation
Utiliser LinID Directory Server (OpenLDAP) comme référentiel des identités
Conserver Active Directory comme composant d'infrastructure
Synchroniser utilisateurs et groupes entre les annuaires
Le sens d'implémentation de la synchronisation dépend du serveur gérant les
créations/modifications/suppressions d'utilisateur
La synchronisation du mot de passe nécessite un traitement particulier
46#mpclinid2014
Démonstration
Synchronisation en temps réel des utilisateurs de LinID Directory Server vers Active Directory
LinIDDirectory
Server
ActiveDirectoryLinID Provisionning Manager
47#mpclinid2014
Stratégies de synchronisation du mot de passe
1ère solution : pas de synchronisation, conservation du mot de passe dans AD et
utilisation de la délégation SASL dans OpenLDAP
2ème solution : modification du mot de passe sur OpenLDAP, utilisation d'un
chiffrement réversible pour synchronisation vers AD
3ème solution : modification du mot de passe sur AD, utilisation d'une DLL
(passwdHK) pour transmettre le mot de passe à OpenLDAP
48#mpclinid2014
Fonctionnement de la délégation SASL
49#mpclinid2014
Utilisation d'un chiffrement réversible
LinID Provisionning Manager peut utiliser le chiffrement AES
Un connecteur peut être écrit pour chiffrer à la volée un mot de passe en clair :
– En SHA pour le mot de passe standard LDAP (userPassword)
– EN AES réversible dans un attribut dédié
Le connecteur AD peut ensuite utiliser l'attribut dédié pour déchiffrer le mot de passe avant de l'envoyer à AD
On simule une authentification sur AD pour chaque entrée afin de ne mettre à jour le mot de passe que s'il a changé
50#mpclinid2014
Utilisation d'une DLL
L'utilisation d'une DLL check password est un mécanisme standard proposé par
Active Directory, initialement pour implémenter sa propre politique de
vérification de mot de passe
Cette DLL intercepte le mot de passe en clair lors du changement par l'utilisateur,
et accepte ou non son changement dans Active Directory
Une implémentation libre de la DLL existe : passwdHK
On configure alors un script qui est appelé par la DLL et qui va faire la
modification du mot de passe dans OpenLDAP
51#mpclinid2014
Authentification sur Active Directory
52#mpclinid2014
Support AD dans LinID A&F Manager
LinID Access & Federation Manager sait s'interfacer avec l'authentification Active Directory :
– Soit en utilisant l'authentification LDAP (identifiant et mot de passe)
– Soit en utilisant l'authentification Windows intégrée (Kerberos)
– Soit les deux, en testant d'abord Kerberos, puis LDAP
Le changement du mot de passe dans Active Directory peut également se faire depuis le portail LinID A&F Manager
53#mpclinid2014
Utilisation de LDAP
L'authentification se fait de manière standard au protocole LDAP
Le module AD vérifie en plus le champ « changement du mot de passe à la prochaine connexion » et force l'utilisateur à faire ce changement au niveau du portail
Le module AD traite ensuite l'opération de changement de mot de passe en utilisant l'attribut spécifique unicodePwd
54#mpclinid2014
Utilisation de Kerberos
L'authentification de l'utilisateur est réalisée grâce au ticket Kerberos obtenu à l'ouverture de session et stocké dans le navigateur
C'est un module d'authentification Apache qui traite les échanges Kerberos
Le portail LinID A&F Manager peut ensuite consolider les informations de l'utilisateur en effectuant une recherche LDAP dans Active Directory
Une configuration spécifique permet de présenter un formulaire d'authentification standard dans le cas où l'authentification Kerberos échoue
55#mpclinid2014
Sommaire
Introduction (15')
Présentation des composants de LinID.org (30')
Intégration du serveur Active Directory avec LinID.org (30')
Pause (15')
Mise en place de la fédération des identités avec le protocole SAML
(45')
Retour d'expérience par Olivier Guillard, AFNIC (30')
#mpclinid2014
Mise en place de la Mise en place de la fédération des identités fédération des identités avec le protocole SAMLavec le protocole SAML
57#mpclinid2014
Fédération des identités
58#mpclinid2014
Pourquoi la fédération des identités ?
Le SSO est un moyen d'unifier l'authentification au sein d'une organisation
L'utilisateur ne choisit pas sur quelles applications il souhaite avoir du SSO
L'utilisateur a la même identité sur chaque application
Vie privée ? Anonymat ?
L'utilisateur doit pouvoir :
– Posséder des identités différentes sur des services différents (Clément OUDOT chez Google, Mon Petit Chou sur Meetic)
– Choisir de relier une identité à une autre pour faire du SSO sur un service
– Briser le lien a posteriori
59#mpclinid2014
Cercle de confiance
Service Provider
Identity Provider Service Provider
Attributes Provider
User interaction
Web service
60#mpclinid2014
Fédération d'un compte
Fournisseur d'identité Fournisseur de service
clement.oudot
abcd1234
abcd1234
monpetitchou=abcd1234 ?
clement.oudot monpetitchou
61#mpclinid2014
Fédération et protocoles
La fédération d'identité permet de créer des cercles de confiance entre fournisseurs de service et fournisseurs d'identités
Les comptes des différents fournisseurs de services peuvent être fédérés avec le compte du fournisseur d'identité (ce compte est appelé principal)
Chaque fournisseur de service dialogue alors avec le fournisseur d'identité pour s'assurer que l'utilisateur est bien reconnu sur le cercle de confiance
Les standards d'origine SAML1, Liberty Alliance et Shibboleth convergent aujourd'hui vers SAML2
SAML gère également la déconnexion (Single Logout), l'échange d'attributs, l'autorisation...
62#mpclinid2014
SAML, gloire et beauté
SAML 1.0
WS-*
ID-FF 1.2
ID-WSF 1.2
Shibboleth 1
SAML 2.0
ID-WSF 2.0
63#mpclinid2014
Fonctionnement de SAML
64#mpclinid2014
Cinématique SAML 2.0
1. Premier accès à l'application
IDP SAML
SP SAML
2. Authentification sur le serveur SAML choisi par l'utilisateur et autorisé dans le cercle de confiance
3. Réponse SAML
IDP SAML IDP SAML
65#mpclinid2014
Les composants du protocole SAML
66#mpclinid2014
LinID Access & Federation Manager
67#mpclinid2014
Démonstration
Utilisation de LinID A&F Manager comme IDP et de simpleSAMLphp comme SP
LinIDDirectory
Server
SP
LinIDAccess
&FederationManager
IDP
68#mpclinid2014
Sommaire
Introduction (15')
Présentation des composants de LinID.org (30')
Intégration du serveur Active Directory avec LinID.org (30')
Pause (15')
Mise en place de la fédération des identités avec le protocole SAML (45')
Retour d'expérience par Olivier Guillard, AFNIC (30')
#mpclinid2014
Retour d'expérienceRetour d'expérience
Olivier GUILLARD, AFNICOlivier GUILLARD, AFNIC
#mpclinid2014
Merci de votre attention
WWW.LINAGORA.COM