L'authentification unique (SSO, Single Sign-On) permet aux utilisateurs de se connecter à de nombreuses applications sans devoir saisir de nom d'utilisateur ni de mot de passe pour chacune d'elles. Le protocole SAML (Security Assertion Markup Language) est une norme XML qui permet aux domaines Web sécurisés d'échanger des données d'authentification et d'autorisation d'utilisateurs.
Les rôles des fournisseurs de services et d'identité
Google propose un service SSO basé sur SAML qui permet aux entreprises partenaires d'autoriser et d'authentifier les utilisateurs hébergés qui essaient d'accéder à du contenu sécurisé. Google agit en tant que fournisseur de services en ligne et propose des services tels que Google Agenda et Gmail. Les Partenaires Google, quant à eux, font office de fournisseurs d'identités en ligne en contrôlant les noms d'utilisateur, mots de passe et autres informations nécessaires à l'identification, l'authentification et l'autorisation des personnes qui utilisent les applications Web hébergées par Google.
De nombreux fournisseurs d'identité Open Source et commerciaux peuvent vous aider à implémenter l'authentification unique avec Google.
Les clients de bureau exigent toujours une connexion
Il est important de noter que la solution d'authentification unique s'applique uniquement aux applications Web. Vous pouvez autoriser vos utilisateurs à accéder aux services Google à l'aide de clients de bureau. Par exemple, pour fournir un accès POP à Gmail via Outlook, vous devez fournir à vos utilisateurs des mots de passe utilisables et synchroniser ces mots de passe avec votre base de données utilisateur interne à l'aide de l'API Directory du SDK Admin. Lorsque vous synchronisez vos mots de passe, vous devez comprendre comment les utilisateurs sont authentifiés via l'URL de connexion au panneau de configuration de l'administrateur.
Fonctionnement du service d'authentification unique SAML géré par les partenaires
La figure 1 illustre le processus de connexion d'un utilisateur à une application Google, telle que Gmail, via un service SSO basé sur SAML et géré par un partenaire. Liste numérotée qui suit les détails de l'image à chaque étape.
Remarque : En amont de ce processus, le partenaire doit fournir à Google l'URL associée à son service d'authentification unique (SSO), ainsi que la clé publique qui lui sera nécessaire pour valider les réponses SAML.
Figure 1 : Illustration du processus de connexion à Google à l'aide d'un service SSO basé sur SAML.
Les étapes suivantes sont illustrées sur ce diagramme :
- L'utilisateur tente d'accéder à une application Google hébergée, telle que Gmail, Google Agenda ou un autre service Google.
- Google génère une demande d'authentification SAML, qui est encodée et intégrée dans l'URL associée au service SSO du partenaire. Le paramètre RelayState, qui contient l'URL encodée de l'application Google à laquelle tente d'accéder l'utilisateur, est également intégré dans l'URL d'authentification unique. Ce paramètre RelayState est un identifiant opaque qui est renvoyé sans aucune modification ni inspection.
- Google envoie une URL de redirection au navigateur de l'utilisateur. Cette URL inclut la demande d'authentification SAML encodée qui doit être envoyée au service SSO du partenaire.
- Le navigateur effectue une redirection vers l'URL d'authentification unique.
- Le partenaire décode la demande SAML et en extrait l'URL du service ACS (Assertion Consumer Service) de Google et de la destination de l'utilisateur (paramètre RelayState).
- Il authentifie ensuite l'utilisateur, soit en l'invitant à saisir ses identifiants de connexion, soit en vérifiant ses cookies de session.
- Le partenaire génère une réponse SAML contenant le nom de l'utilisateur authentifié. Conformément aux spécifications SAML v2.0, cette réponse contient les signatures numériques des clés DSA/RSA publiques et privées du partenaire.
- Le partenaire encode la réponse SAML et le paramètre RelayState avant de les renvoyer au navigateur de l'utilisateur. Il fournit le mécanisme permettant au navigateur de transmettre ces informations au service ACS de Google. Par exemple, il peut intégrer la réponse SAML et l'URL de destination dans un formulaire, puis fournir à l'utilisateur un bouton sur lequel cliquer pour envoyer le formulaire à Google. Il peut également inclure un script JavaScript sur la page qui envoie le formulaire à Google.
- Le navigateur envoie une réponse à l'URL ACS. Le service ACS de Google vérifie la réponse SAML à l'aide de la clé publique du partenaire. Si la réponse est validée, le service ACS redirige l'utilisateur vers l'URL de destination.
- L'utilisateur est connecté à l'appli Google.