Drupal sso

Preview:

DESCRIPTION

 

Citation preview

vendredi 13 septembre 13

l’agilité du SIOpenCSI

Le SSO, la fédérationet Drupal

Bruno Bonfils <bbonfils@opencsi.com>

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 : asyd@irc.freenode.net

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

Recommended