OpenCSI                                             l’agilité du SI                 Le SSO, vue d’ensemble                ...
La présentation                       ✦   Orientée projet                       ✦   Critère libre                       ✦ ...
L’histoire d’ACME                       ✦   Une petite société crée il y a quelques                           années, qui ...
L’existant                                                              Penser à parler des rôles                         ...
L’existant                       ✦   Des groupes (~ rôles) propre à chaque                           application          ...
Problématiques                       ✦   Multiple entrepôts de comptes utilisateurs                           ✦   Changeme...
Objectifs 1/2                       ✦   Utiliser un seul entrepôt de compte                           utilisateur         ...
Objectifs 2/2                       ✦   Gérer plus efficacement les rôles                       ✦   Fournir une solution pr...
Les solutions                       ✦   Après une recherche, on arrive à :                           ✦   CAS              ...
Après étude, on constate                       ✦   Gestion du SSO au sein de l’application                           ✦   C...
poussons l’étude...                       ✦   mode de fonctionnement                       ✦   avantages / inconvénients  ...
SSO application                       ✦   Grand nombre de références Internet à                           CAS, qui se révè...
Fonctionnement CAS (app1)                                                   App1                     CAS                  ...
Fonctionnement CAS (app2)                                           App2                     CAS                          ...
SSO application, les +                       ✦   Totalement indépendant de                           l’environnement d’exé...
SSO application                       ✦   Pas d’autorisation (avec le serveur officiel)                       ✦   Pas de si...
SSO application                       ✦   CAS (Central Authentication Service),                           développé par l’...
SSO par agent                       ✦   Nécessite un agent (module) sur le serveur                           d’application...
OpenAM (app1)                                           Serveur                                                           ...
OpenAM (app2)                                           Serveur                                                           ...
SSO par agent                       ✦   Avec OpenAM, pour obtenir un nom                           d’utilisateur :        ...
SSO par agent, les +                       ✦   Plus grande souplesse fonctionnelle                       ✦   Gestion centr...
SSO par agent, les -                       ✦   Complexité                       ✦   Dépendance à l’agent (logiciel, OS, ar...
Les SSO par agent                       ✦   OpenAM (ex OpenSSO) probablement le                           plus ancien (bea...
SSO par injection                       ✦   Injection de formulaire d’authentifications                                    ...
SSO par injection                                                                 App3                                    ...
SSO par injection, les +                       ✦   Complète transparence au niveau des                           applicati...
SSO par injection, les -                       ✦   Performances : tous les flux passent par le                           SS...
SSO par injection                       ✦   Il est possible d’utiliser OpenAM ou                           LemonLDAP::NG, ...
Choix du SSO                       ✦   Projet mené en deux temps :                           1. SSO interne prioritaire, e...
Choix du SSO interne                       ✦   Il conviendra de :                           ✦   lister les serveurs d’appl...
Projet SSO pour acme                       ✦   En fonction des contraintes imposées,                           choix de la...
Projet SSO pour acme                       ✦   Comment gérer la différence de login ?                           (bbonfils v...
Un mot sur les rôles                       ✦   Dans un monde idéal, les utilisateurs sont                           associ...
Et l’externe ?                       ✦   Reste la problématique des applications à                           hébergées par...
La fédération                       ✦   Deux entités différentes : on parle donc de                           fédération  ...
La fédération                       ✦   Quelques termes :                           ✦   Identity Provider (IdP) c’est le  ...
Fonctionnement SAML                                              SP        IdP                            accède à        ...
Concrètement                       ✦   Configuration d’OpenAM en tant qu’IdP                           ✦   il n’est même pa...
La (vraie) fédération                                                  IdP                                        SP      ...
Quelques mots sur OpenAM                       41samedi 29 octobre 11
Un peu plus sur OpenAM                       Hiérarchie des utilisateurs :                       ✦ / (tous)               ...
Un peu plus sur OpenAM                       ✦   De la même manière que UNIX, distinction                           entre ...
OpenCSI                                                 l’agilité du SI                       Questions ?                 ...
Prochain SlideShare
Chargement dans…5
×

Vue d'ensemble du SSO

3 501 vues

Publié le

0 commentaire
0 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

  • Soyez le premier à aimer ceci

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

Aucune remarque pour cette diapositive

Vue d'ensemble du SSO

  1. 1. OpenCSI l’agilité du SI Le SSO, vue d’ensemble Bruno Bonfils bbonfils@opencsi.com 1samedi 29 octobre 11
  2. 2. La présentation ✦ Orientée projet ✦ Critère libre ✦ Aborde les concepts 2samedi 29 octobre 11
  3. 3. L’histoire d’ACME ✦ Une petite société crée il y a quelques années, qui a vite grossie ✦ Des applications installées de manière autonome, des logins différents ✦ Les commerciaux utilisent SalesForces ✦ Rachat d’une entreprise 3samedi 29 octobre 11
  4. 4. L’existant Penser à parler des rôles au sein de chaque application App1 SQL bonfilsb App2 SQL bbonfils App App3 Salesforces ?? propriétaire App web Interne LDAP bbonfils App Internet 4samedi 29 octobre 11
  5. 5. L’existant ✦ Des groupes (~ rôles) propre à chaque application ✦ Ces groupes sont liés au métier de l’application 5samedi 29 octobre 11
  6. 6. Problématiques ✦ Multiple entrepôts de comptes utilisateurs ✦ Changement du mot de passe ? ✦ Politique de mot de passe ? ✦ Identifiant non uniforme ✦ Authentification des applications externes 6samedi 29 octobre 11
  7. 7. Objectifs 1/2 ✦ Utiliser un seul entrepôt de compte utilisateur ✦ Mettre en place une politique de mot de passe uniforme ✦ Une seule authentification (SSO) ✦ Si possible, déconnexion unique 7samedi 29 octobre 11
  8. 8. Objectifs 2/2 ✦ Gérer plus efficacement les rôles ✦ Fournir une solution propre pour l’authentification sur les applications externes 8samedi 29 octobre 11
  9. 9. Les solutions ✦ Après une recherche, on arrive à : ✦ CAS ✦ OpenAM ✦ LemonLDAP::NG ✦ Vulture 9samedi 29 octobre 11
  10. 10. Après étude, on constate ✦ Gestion du SSO au sein de l’application ✦ CAS ✦ Un module spécifique au serveur d’application ✦ OpenAM, LemonLDAP::NG ✦ SSO par injection ✦ Vulture, OpenAM / LL::NG 10samedi 29 octobre 11
  11. 11. poussons l’étude... ✦ mode de fonctionnement ✦ avantages / inconvénients 11samedi 29 octobre 11
  12. 12. SSO application ✦ Grand nombre de références Internet à CAS, qui se révèle être un SSO géré au niveau application 12samedi 29 octobre 11
  13. 13. Fonctionnement CAS (app1) App1 CAS accède à redirige accède à authentification redirige (cookie + jeton) accède à (jeton) vérifie le jeton 13samedi 29 octobre 11
  14. 14. Fonctionnement CAS (app2) App2 CAS accède à redirige accède à (cookie) redirige (jeton) accède à (jeton) vérifie le jeton 14samedi 29 octobre 11
  15. 15. SSO application, les + ✦ Totalement indépendant de l’environnement d’exécution ✦ Libs CAS existantes pour Java, PHP, .Net ✦ Facile à déployer, à administrer ✦ Performances 15samedi 29 octobre 11
  16. 16. SSO application ✦ Pas d’autorisation (avec le serveur officiel) ✦ Pas de single logout évident ✦ Cas d’utilisations généralement très simple (pas ou peu de gestions de groupes, etc.) ✦ Que faire quand on a pas la main sur l’application ? 16samedi 29 octobre 11
  17. 17. SSO application ✦ CAS (Central Authentication Service), développé par l’université de Yale ✦ Très gros déploiement (y compris dans des universités françaises) 17samedi 29 octobre 11
  18. 18. SSO par agent ✦ Nécessite un agent (module) sur le serveur d’application : Apache, Tomcat, JBoss, etc. ✦ Se substitue à la couche d’authentification (autorisation le cas échéant) 18samedi 29 octobre 11
  19. 19. OpenAM (app1) Serveur OpenAM d’app1 accède à redirige accède à authentification redirige (cookie) accède à (cookie) information de session 19samedi 29 octobre 11
  20. 20. OpenAM (app2) Serveur OpenAM d’app2 accède à (cookie) information de session Exemple : • liste des groupes • attributs : • email, prénom, nom 20samedi 29 octobre 11
  21. 21. SSO par agent ✦ Avec OpenAM, pour obtenir un nom d’utilisateur : ✦ getPrincipal() en Java (couche JAAS) ✦ Par l’API de l’agent, en Java ✦ Par l’API REST ✦ Ou tout simplement en-tête HTTP 21samedi 29 octobre 11
  22. 22. SSO par agent, les + ✦ Plus grande souplesse fonctionnelle ✦ Gestion centralisée possible des agents (configuration, logs, etc.) ✦ Gestion des autorisations dans une certaine mesure (par méthode et par URL) 22samedi 29 octobre 11
  23. 23. SSO par agent, les - ✦ Complexité ✦ Dépendance à l’agent (logiciel, OS, archi) ✦ Performances (serveur sollicité très souvent) ✦ Fonctionne par cookie (Cross Domain Cookie comme palliatif) 23samedi 29 octobre 11
  24. 24. Les SSO par agent ✦ OpenAM (ex OpenSSO) probablement le plus ancien (beaucoup de très gros clients) ✦ LemonLDAP::NG, très complet, mais communauté réduite 24samedi 29 octobre 11
  25. 25. SSO par injection ✦ Injection de formulaire d’authentifications 25samedi 29 octobre 11
  26. 26. SSO par injection App3 POST /login HTTP/1.0 user=bonfilbs&password=secret SSO App POST /auth/login.php HTTP/1.0 username=bbonfils&password=secret2 propriétaire 26samedi 29 octobre 11
  27. 27. SSO par injection, les + ✦ Complète transparence au niveau des applications ✦ Permet de gérer le SSO sur les applications propriétaires ✦ Aucune contrainte sur la multiplicité des logins 27samedi 29 octobre 11
  28. 28. SSO par injection, les - ✦ Performances : tous les flux passent par le SSO ✦ Obligation de stocker les mots de passe des applications sous une forme réversible ✦ Travail d’intégration pour chaque application (formulaires différents) 28samedi 29 octobre 11
  29. 29. SSO par injection ✦ Il est possible d’utiliser OpenAM ou LemonLDAP::NG, via mod_proxy ✦ injection possible au travers d’en tête HTTP ✦ pas de rejeu de formulaires pour OpenAM (mais pas de portefeuilles de credentials pour LL::NG) 29samedi 29 octobre 11
  30. 30. Choix du SSO ✦ Projet mené en deux temps : 1. SSO interne prioritaire, en attendant on accepte d’utiliser un autre compte pour salesforces 2. Réflexion sur l’ouverture à l’extérieure 30samedi 29 octobre 11
  31. 31. Choix du SSO interne ✦ Il conviendra de : ✦ lister les serveurs d’applications, les applications ✦ se rappeler les contraintes (déconnexion, rôles) 31samedi 29 octobre 11
  32. 32. Projet SSO pour acme ✦ En fonction des contraintes imposées, choix de la solution : ✦ peu d’agents CAS gèrent nativement la déconnexion unique ✦ Choix final : OpenAM 32samedi 29 octobre 11
  33. 33. Projet SSO pour acme ✦ Comment gérer la différence de login ? (bbonfils vs bonfilsb) ✦ Définir REMOTE_USER avec un attribut ✦ Modifié l’application pour utiliser l’attribut 33samedi 29 octobre 11
  34. 34. Un mot sur les rôles ✦ Dans un monde idéal, les utilisateurs sont associés à des rôles métiers (nombre limités de rôles) qui sont véhiculés par le SSO ✦ Un rôle métier est associé à des rôles applicatifs (au sein de chaque application) 34samedi 29 octobre 11
  35. 35. Et l’externe ? ✦ Reste la problématique des applications à hébergées par un tierce, donc entités commerciales différentes ✦ on évite les échanges directs entre les SI 35samedi 29 octobre 11
  36. 36. La fédération ✦ Deux entités différentes : on parle donc de fédération ✦ nécessite une relation de confiance ✦ Techniquement, un seul choix standard : SAML 36samedi 29 octobre 11
  37. 37. La fédération ✦ Quelques termes : ✦ Identity Provider (IdP) c’est le fournisseur, celui qui vérifie l’authentification d’un utilisateur (ici ACME) ✦ Service Provider (SP) un fournisseur de service (ici SalesForce) 37samedi 29 octobre 11
  38. 38. Fonctionnement SAML SP IdP accède à redirige accède à authentification redirige (assertion) accède à (assertion) 38samedi 29 octobre 11
  39. 39. Concrètement ✦ Configuration d’OpenAM en tant qu’IdP ✦ il n’est même pas nécessaire de l’exposer sur Internet (mécanisme de redirection) ✦ SalesForces accepte les assertions ✦ Vérification par signature 39samedi 29 octobre 11
  40. 40. La (vraie) fédération IdP SP IdP SP SP SP SP 40samedi 29 octobre 11
  41. 41. Quelques mots sur OpenAM 41samedi 29 octobre 11
  42. 42. Un peu plus sur OpenAM Hiérarchie des utilisateurs : ✦ / (tous) ✦ /employes ✦ /employes/interne ✦ /employes/prestataires ✦ /fournisseurs 42samedi 29 octobre 11
  43. 43. Un peu plus sur OpenAM ✦ De la même manière que UNIX, distinction entre ✦ identification des utilisateurs (attributs) ✦ authentification des utilisateurs ✦ Cas client ✦ connexion sous un utilisateur sans connaître son mot de passe 43samedi 29 octobre 11
  44. 44. OpenCSI l’agilité du SI Questions ? <bbonfils@opencsi.com> http://www.opencsi.com/ 44samedi 29 octobre 11

×