Chapitre 2 — SSO, SAML, OAuth & Fédération d'Identité
L'identité fédérée permet aux utilisateurs de s'authentifier une seule fois pour accéder à de multiples services. Ce module couvre SSO, SAML, OAuth 2.0, OpenID Connect, et les concepts de trust entre organisations.
Avec SSO, l'utilisateur s'authentifie une seule fois auprès d'un Identity Provider (IdP) et reçoit un token/ticket qui lui donne accès aux différents Service Providers (SP) sans se ré-authentifier.
- Avantages : réduction de la fatigue des mots de passe, meilleure expérience utilisateur, gestion centralisée des identités.
- Inconvénient : "single point of failure" — si le compte SSO est compromis, tous les services sont compromis. Contre-mesure : MFA obligatoire sur le SSO.
SAML est un standard XML pour l'échange d'assertions d'authentification et d'autorisation entre un IdP et des SPs. Utilisé principalement pour la fédération B2B et l'accès aux applications d'entreprise.
Flux SAML simplifié
- Utilisateur tente d'accéder à une application (SP).
- Le SP redirige vers l'IdP avec une SAML AuthnRequest.
- L'utilisateur s'authentifie auprès de l'IdP (mot de passe + MFA).
- L'IdP génère une assertion SAML signée numériquement.
- L'assertion est renvoyée au SP via le navigateur de l'utilisateur.
- Le SP vérifie la signature et accorde l'accès.
OAuth 2.0
Protocole d'autorisation (pas d'authentification). Permet à une application d'accéder à des ressources en votre nom, sans partager votre mot de passe.
- Resource Owner : l'utilisateur.
- Client : l'application qui demande l'accès.
- Authorization Server : délivre les tokens (ex: Google, Microsoft).
- Resource Server : l'API/service qui héberge les ressources.
- Access Token : preuve d'autorisation, utilisée pour accéder aux ressources.
- Refresh Token : permet d'obtenir un nouvel access token sans ré-authentification.
OpenID Connect (OIDC)
Ajoute l'authentification à OAuth 2.0 via un ID Token (JWT) qui contient des claims sur l'identité de l'utilisateur (sub, email, name, etc.).
Usage moderne : "Se connecter avec Google/Microsoft/GitHub" = OIDC. L'application reçoit un ID token prouvant l'identité + un access token pour accéder aux APIs.
- Identity Provider (IdP) : organisation qui authentifie les utilisateurs et émet les assertions/tokens. Ex: Okta, Azure AD, Google Identity.
- Service Provider (SP) : application ou service qui fait confiance à l'IdP pour l'authentification. Ex: Salesforce, ServiceNow, une app SaaS.
- Trust Relationship : accord préalable entre IdP et SP — métadonnées échangées, clés publiques partagées.
- Identity Federation : plusieurs organisations se font mutuellement confiance pour leurs assertions d'identité. Ex: un consultant d'une entreprise A accède aux ressources de l'entreprise B.
- Transitive Trust : si A fait confiance à B et B fait confiance à C, alors A fait confiance à C. Risque : compromettre B compromet la confiance A→C.
- SCIM (System for Cross-domain Identity Management) : protocole pour automatiser le provisionnement/déprovisionnement des comptes dans les SaaS (synchronise l'IdP avec les SPs).