vendredi 13 septembre 13
vendredi 13 septembre 13
l’agilité du SIOpenCSI
Le SSO, la fédérationet Drupal
Bruno Bonfils <[email protected]>
2vendredi 13 septembre 13
% whoami
✦ sysadmin devenu consultant sécurité spécialisé en gestion d’identité (SSO, IAM, PKI, etc.)
✦ Simple utilisateur de Drupal
✦ Twitter : bbonfils
✦ IRC : [email protected]
3vendredi 13 septembre 13
La présentation
✦ Cas d’utilisation
✦ Description des problématiques
✦ Description des réponses techniques
✦ Best pratices
4vendredi 13 septembre 13
Définitions✦ SSO : authentification unique
✦ Fédération : authentification unique déléguée à une entité tierce
✦ Référentiel d’identité : « base de données » maître contenant la liste des utilisateurs, mots de passes, attributs (dont rôles)
✦ Rôle : Fonction d’une personne
✦ Droit : Permission (donné ou refusée) d’effectuer une action sur un élément
5vendredi 13 septembre 13
Définitions
✦ Fournisseur d’identité (IdP) : en charge d’authentifier un utilisateur
✦ Fournisseur de services (SP) : site utilisateur, par exemple un Drupal
6vendredi 13 septembre 13
Cas d’utilisation
✦ Une société (ACME) qui dispose de :
✦ Un Drupal comme outil interne
✦ Un Drupal comme site vitrine
✦ Une application tierce comme GED
7vendredi 13 septembre 13
Cas d’utilisation : les acteurs
✦ Technicien : consulte et publie des articles sur le drupal interne, la GED. Peut consulter le site vitrine (comme n’importe quel Internaute)
✦ Marketing : en charge de publier des articles sur le site vitrine
✦ Internaute : consulte et commente les articles du site vitrine
8vendredi 13 septembre 13
Pour mieux comprendre
9
Intranet(Drupal)
Extranet(Drupal)
GED(Autre)
Intranet
Internet
Consulte, commente
Internaute
Technicien
Consulte, commente
Consulte, publiecommente
Consulte, publie
Marketing
Consulte, publiecommente
vendredi 13 septembre 13
Mode non SSO
✦ Chaque site dispose de sa base de comptes (login, mot de passes, rôles)
✦ Problèmes utilisateurs
✦ Double (voire triple) saisie pour un employé
✦ Création d’un compte pour qu’un Internaute puisse commenter
10vendredi 13 septembre 13
Un référentiel par site
11
Intranet(Drupal)
Extranet(Drupal)
GED(Autre)
Intranet
Internet
Internaute
Technicien MarketingAdministrateur
gère
gère
gère
vendredi 13 septembre 13
Mode non SSO
✦ Problèmes d’administrations
✦ Multiples créations de comptes, saisies d’attributs,
✦ Rigueur requise (ex : bbonfils vs bonfilsb), notamment entre les différents administrateurs
12vendredi 13 septembre 13
Mode non SSO
✦ Il est toujours facile de créer un utilisateur
✦ Il est beaucoup plus difficile de supprimer un utilisateur, a fortiori dans un laps de temps pertinent
13
!vendredi 13 septembre 13
Simplifions...
✦ Le DSI d’ACME veut simplifier l’authentification des employés dans un premier temps, puis des Internautes dans un second temps
14vendredi 13 septembre 13
Utilisation d’un référentiel unique
✦ Simplifie l’administration
✦ L’utilisateur à le même mot de passe et attributs sur tous les sites
✦ Solutions possibles :
✦ Base de données SQL
✦ Serveur LDAP
✦ Active Directory
15vendredi 13 septembre 13
Un référentiel unique
16
Intranet(Drupal)
Extranet(Drupal)
GED(Autre)
Intranet
Internet
Internaute
Technicien MarketingAdministrateur
vendredi 13 septembre 13
Quid des comptes internautes ?
✦ On peut très bien mixer une authentification avec référentiel et une authentification locale
17vendredi 13 septembre 13
Mix de référentiels
18
Intranet(Drupal)
Extranet(Drupal)
GED(Autre)
Intranet
Internet
Internaute
Technicien MarketingAdministrateur
Comptes internautes
Comptes employés
vendredi 13 septembre 13
Drupal et LDAP
✦ Le module ldap de Drupal est très complet
✦ Authentification
✦ Autorisation
✦ Provisionning
✦ Documentation !
19vendredi 13 septembre 13
Et le SSO ?
✦ Nous avons maintenant un référentiel unique, propre, et facile à maintenir
✦ Simplifions la vie des employés en rajoutant l’authentification unique
20vendredi 13 septembre 13
Comprendre le SSO
✦ Un utilisateur s’authentifie sur un seul site (le fournisseur d’identité)
✦ Il n’a pas besoin de s’authentifier sur tous les autres sites qui utilisent ce fournisseur d’identité
21vendredi 13 septembre 13
SSO : La technique
✦ On distingue deux grands familles de fonctionnement
✦ Par cookie
✦ Par ticket
22vendredi 13 septembre 13
Le SSO par cookie
✦ L’IdP positionne un cookie (généralement sur .domaine.com)
✦ Les SP lisent ce cookie, le vérifient auprès de l’IdP et récupérent les attributs de l’utilisateur
23vendredi 13 septembre 13
SSO par cookie
24
Service IdP
accède à
redirige
accède à
authentification
redirige (cookie)
accède à (cookie)
information de session
vendredi 13 septembre 13
SSO par cookie
25
Service 2 IdP
accède à (cookie)
information de session
Exemple :• liste des groupes• attributs :• email, prénom, nom
vendredi 13 septembre 13
Le SSO par ticket
✦ L’utilisateur s’authentifie sur l’IdP
✦ Chaque service demande un ticket à l’IdP
26vendredi 13 septembre 13
Le SSO par ticket
27
Service IdP
accède à
redirige
accède à
authentification
redirige (cookie + jeton)
accède à (jeton)
vérifie le jeton
vendredi 13 septembre 13
Le SSO par ticket
28
Service 2 IdP
accède à
redirige
accède à (cookie)
redirige (jeton)
accède à (jeton)
vérifie le jeton
vendredi 13 septembre 13
SSO
SSO employés
29
Intranet(Drupal)
Extranet(Drupal)
GED(Autre)
Intranet
Internet
Internaute
Technicien MarketingAdministrateur
Comptes internautes
Comptes employés
vendredi 13 septembre 13
Solutions SSO libres
✦ Par cookie
✦ LemonLDAP::NG
✦ OpenAM
✦ Par ticket
✦ CAS
✦ SAML
30vendredi 13 septembre 13
Et maintenant ?
✦ Simplifions la vie des internautes en ajoutant la possibilité d’utiliser un compte déjà existant auprès de fournisseurs divers
31vendredi 13 septembre 13
Les solutions techniques
✦ OpenID (en perte de vitesse)
✦ OAuth2
✦ Facebook, Google, etc..
32vendredi 13 septembre 13
SSO
Fédération
33
Intranet(Drupal)
Extranet(Drupal)
GED(Autre)
Intranet
Internet
Internaute
Technicien MarketingAdministrateur
Comptes internautes
Comptes employés
Google Facebook
oauth
vendredi 13 septembre 13
SSO vs Fédération ?
✦ Le terme fédération sous entend que deux entités (sociétés) sont impliquées
✦ Le fournisseur de service : vous
✦ Le fournisseur d’identité : Google, etc.
✦ Le terme SSO est utilisé dans un cadre mono entité
34vendredi 13 septembre 13
La gestion des rôles
✦ Un fournisseur d’identité ne doit pas transmettre des droits, mais des rôles fonctionels
✦ Ces rôles doivent être mappés localement à des groupes, qui eux définissent des droits
35vendredi 13 septembre 13
Rappel
36
Intranet(Drupal)
Extranet(Drupal)
GED(Autre)
Intranet
Internet
Consulte, commente
Internaute
Technicien
Consulte, commente
Consulte, publiecommente
Consulte, publie
Marketing
Consulte, publiecommente
vendredi 13 septembre 13
Matrice : Intranet
37
Role Groupe Droits
developper developper• Création du contenu
xxx• Consultation
marketing anonymous Consultation
vendredi 13 septembre 13
Fédération : SAML
✦ Il existe un autre protocole (standard) de fédération : SAML
✦ Très utile (et utilisé) dans le cas d’applications SaaS
✦ Drupal se repose alors sur l’excellente bibliothèque simplesamlphp
38vendredi 13 septembre 13
Démo
✦ LDAP
✦ CAS
✦ SimpleSAML
39vendredi 13 septembre 13
Conclusion
✦ Drupal est probablement le CMS le plus complet en terme de modules d’authentifications / autorisations
40vendredi 13 septembre 13
l’agilité du SIOpenCSI
Questions ?
41vendredi 13 septembre 13