ObjectifCyber

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.

Mémorisez ! SSO = une authentification, accès à plusieurs services. Avantage : moins de mots de passe à gérer. Risque : compromission du compte SSO = accès à tous les services. Mitiger avec MFA robuste.

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.

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é

  1. Utilisateur tente d'accéder à une application (SP).
  2. Le SP redirige vers l'IdP avec une SAML AuthnRequest.
  3. L'utilisateur s'authentifie auprès de l'IdP (mot de passe + MFA).
  4. L'IdP génère une assertion SAML signée numériquement.
  5. L'assertion est renvoyée au SP via le navigateur de l'utilisateur.
  6. Le SP vérifie la signature et accorde l'accès.
Exemple : Un employé clique sur Salesforce. Salesforce redirige vers Okta (IdP). L'employé s'authentifie avec son compte d'entreprise + TOTP. Okta envoie une assertion SAML à Salesforce qui accorde l'accès — sans que l'employé ait un compte Salesforce distinct.

Mémorisez ! OAuth 2.0 = autorisation (qu'est-ce que cette app peut faire en mon nom). OpenID Connect (OIDC) = authentification (qui je suis). OIDC est une couche d'identité construite au-dessus d'OAuth 2.0.

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.

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.

1. Un développeur intègre "Se connecter avec Google" dans son application. L'utilisateur voit ses informations de profil dans l'app sans avoir créé de compte distinct. Quel protocole est principalement utilisé ?

OIDC est utilisé pour l'authentification "Se connecter avec X". OAuth 2.0 gère l'autorisation (accès aux APIs Google). OIDC ajoute l'ID token qui contient les informations de profil de l'utilisateur.

2. Quelle est la différence fondamentale entre OAuth 2.0 et SAML ?

SAML utilise XML et est conçu pour la fédération B2B et SSO d'entreprise. OAuth 2.0 utilise JSON/REST et est conçu pour autoriser l'accès aux APIs. OIDC combine OAuth (autorisation) + authentification. Les deux peuvent coexister.

3. Dans le contexte SSO, quel est le principal risque que le responsable sécurité doit atténuer ?

SSO crée un "single point of failure" d'authentification. Contre-mesures : MFA fort (phishing-resistant de préférence), détection d'anomalies comportementales (UEBA), accès conditionnel basé sur le risque.

4. Dans le flux SAML, quel rôle joue l'assertion ?

L'assertion SAML est un document XML signé numériquement par l'IdP, contenant des claims sur l'utilisateur (identité, attributs, permissions). Le SP vérifie la signature pour s'assurer qu'elle vient bien de l'IdP de confiance.

5. SCIM est utilisé pour :

SCIM (System for Cross-domain Identity Management) automatise la gestion des identités entre systèmes. Quand un employé rejoint (ou quitte) l'entreprise, SCIM propage automatiquement la création (ou la désactivation) de son compte dans tous les SaaS connectés.

6. Une entreprise A souhaite donner accès à ses ressources aux consultants de l'entreprise B, sans créer de comptes locaux pour eux. Quelle approche décrit cela ?

La fédération inter-organisations (cross-organizational federation) permet à l'entreprise A de faire confiance à l'IdP de l'entreprise B. Les consultants s'authentifient avec leurs propres credentials — aucun compte local à gérer.

7. Dans OAuth 2.0, quel est le rôle du "Refresh Token" ?

L'access token a une courte durée de vie (ex: 1h). Le refresh token (durée plus longue) permet à l'application d'obtenir un nouvel access token sans intervention de l'utilisateur. Si un refresh token est volé, un attaquant peut maintenir l'accès — il faut le révoquer.

8. Quelle est la principale différence entre SAML et OIDC en termes de format de token ?

SAML = XML (plus verbeux, adapté aux systèmes d'entreprise legacy). OIDC/OAuth = JSON et JWT (compact, adapté aux APIs REST, applications mobiles/SPA). JWT contient des claims en base64 et est signé (JWS) ou chiffré (JWE).

9. Le "transitive trust" dans la fédération d'identité signifie que :

Le transitive trust étend la confiance à travers des chaînes d'organisations. Risque : si B est compromis, la chaîne A→B→C est brisée et C peut subir les conséquences. À gérer avec des politiques d'accès conditionnel et des révisions régulières.

10. Un utilisateur se connecte à son portail d'entreprise le matin et accède ensuite à 8 applications différentes (CRM, ERP, email, etc.) sans jamais redonner son mot de passe. Quelle technologie est derrière cela ?

C'est le SSO en action — l'utilisateur s'authentifie une fois auprès de l'IdP (Okta, Azure AD, etc.) et les 8 applications (SPs) acceptent les assertions/tokens sans demander de ré-authentification. Souvent basé sur SAML pour les apps d'entreprise ou OIDC pour les apps modernes.