Que fait Construction de la Fédération d'Identité avec SAML Azure AD ?
Vue d'ensemble
La fédération d'identité permet aux utilisateurs authentifiés par un fournisseur d'identité d'accéder aux ressources gérées par un autre sans maintenir des identifiants séparés. Cette compétence couvre l'établissement d'une fédération SAML 2.0 entre l'Active Directory sur site d'une organisation (via AD FS ou un IdP tiers) et Microsoft Entra ID (anciennement Azure AD), ainsi que la configuration de l'authentification unique (SSO) fédérée pour des applications SaaS tierces. La fédération élimine les préoccupations liées à la synchronisation des mots de passe et maintient l'autorité d'authentification sur site tout en étendant l'SSO aux ressources cloud.
Quand l'utiliser
- Lors du déploiement ou de la configuration des capacités de construction de fédération d'identité avec SAML Azure AD dans votre environnement
- Lors de l'établissement de contrôles de sécurité alignés sur les exigences de conformité
- Lors de la construction ou de l'amélioration de l'architecture de sécurité pour ce domaine
- Lors de la réalisation d'évaluations de sécurité nécessitant cette mise en œuvre
Prérequis
- Domaine Active Directory sur site
- AD FS 2019+ ou fournisseur d'identité SAML tiers (Okta, Ping, etc.)
- Locataire Microsoft Entra ID (licence P1 ou P2 recommandée)
- Azure AD Connect (si utilisation d'identité hybride avec synchronisation de hachage de mot de passe comme sauvegarde)
- Certificat TLS public pour le point de terminaison de fédération
- Enregistrements DNS pour le nom du service de fédération
Concepts clés
Modèles de fédération
| Modèle | Autorité d'authentification | Cas d'utilisation |
|---|---|---|
| Fédéré (AD FS) | AD FS sur site | Exigence réglementaire de conserver l'authentification sur site |
| Géré (PHS) | Azure AD avec synchronisation de hachage de mot de passe | Authentification cloud la plus simple, AD FS non nécessaire |
| Géré (PTA) | Sur site via agent de transfert | Authentification cloud validée contre l'AD sur site |
| Fédération tierce | IdP externe (Okta, Ping) | Environnement multi-IdP |
Architecture de fédération SAML
Utilisateur → Application cloud (SP)
│
└── Redirection vers Azure AD
│
├── Azure AD vérifie le domaine fédéré
│
└── Redirection vers AD FS sur site
│
├── AD FS authentifie contre Active Directory
│
├── AD FS émet un jeton SAML
│
└── Jeton renvoyé à Azure AD
│
├── Azure AD valide la relation de confiance de fédération
│
├── Azure AD émet son propre jeton
│
└── L'utilisateur reçoit un jeton d'accès pour l'application cloud
Composants de la relation de confiance de fédération
| Composant | Description |
|---|---|
| Certificat de signature de jeton | Certificat X.509 utilisé par l'IdP pour signer les assertions SAML |
| Métadonnées de fédération | Document XML décrivant les points de terminaison et les capacités de l'IdP |
| Relation de confiance de la partie de confiance | Configuration dans AD FS pour chaque SP (Azure AD) |
| Règles de revendication | Transformez les attributs AD en revendications SAML |
| URI de l'émetteur | Identifiant unique de l'IdP (ID d'entité) |
Flux de travail
Étape 1 : Préparer l'infrastructure AD FS
# Installer le rôle AD FS
Install-WindowsFeature ADFS-Federation -IncludeManagementTools
# Configurer la batterie AD FS
Install-AdfsFarm `
-CertificateThumbprint $certThumbprint `
-FederationServiceDisplayName "Service de fédération de l'entreprise" `
-FederationServiceName "fs.corp.example.com" `
-ServiceAccountCredential $gmsaCredential
# Vérifier qu'AD FS est opérationnel
Get-AdfsProperties | Select-Object HostName, Identifier, FederationPassiveAddress
Étape 2 : Configurer le domaine fédéré Azure AD
# Installer le module Microsoft Graph PowerShell
Install-Module Microsoft.Graph -Scope CurrentUser
# Se connecter à Microsoft Graph
Connect-MgGraph -Scopes "Domain.ReadWrite.All"
# Convertir un domaine managé en domaine fédéré
# En utilisant l'URL des métadonnées de fédération AD FS
$domainId = "corp.example.com"
$federationConfig = @{
issuerUri = "http://fs.corp.example.com/adfs/services/trust"
metadataExchangeUri = "https://fs.corp.example.com/adfs/services/trust/mex"
passiveSignInUri = "https://fs.corp.example.com/adfs/ls/"
signOutUri = "https://fs.corp.example.com/adfs/ls/?wa=wsignout1.0"
signingCertificate = $base64Cert
preferredAuthenticationProtocol = "saml"
}
# Appliquer les paramètres de fédération au domaine
New-MgDomainFederationConfiguration -DomainId $domainId -BodyParameter $federationConfig
Étape 3 : Configurer les règles de revendication AD FS
# Ajouter une relation de confiance de la partie de confiance pour Azure AD
Add-AdfsRelyingPartyTrust `
-Name "Plateforme d'identité Microsoft Office 365" `
-MetadataUrl "https://nexus.microsoftonline-p.com/federationmetadata/2007-06/federationmetadata.xml"
# Configurer les règles de revendication
$rules = @"
@RuleTemplate = "LdapClaims"
@RuleName = "Extraire les attributs AD"
c:[Type == "http://schemas.microsoft.com/ws/2008/06/identity/claims/windowsaccountname",
Issuer == "AD AUTHORITY"]
=> issue(store = "Active Directory",
types = ("http://schemas.xmlsoap.org/claims/UPN",
"http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress",
"http://schemas.xmlsoap.org/ws/2005/05/identity/claims/givenname",
"http://schemas.xmlsoap.org/ws/2005/05/identity/claims/surname"),
query = ";userPrincipalName,mail,givenName,sn;{0}",
param = c.Value);
@RuleTemplate = "PassThroughClaims"
@RuleName = "Transmettre l'UPN comme NameID"
c:[Type == "http://schemas.xmlsoap.org/claims/UPN"]
=> issue(Type = "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier",
Issuer = c.Issuer, OriginalIssuer = c.OriginalIssuer,
Value = c.Value,
ValueType = c.ValueType,
Properties["http://schemas.xmlsoap.org/ws/2005/05/identity/claimproperties/format"]
= "urn:oasis:names:tc:SAML:2.0:nameid-format:persistent");
"@
Set-AdfsRelyingPartyTrust `
-TargetName "Plateforme d'identité Microsoft Office 365" `
-IssuanceTransformRules $rules
Étape 4 : Configurer la fédération SaaS tierce
Pour chaque application SaaS qui prend en charge l'authentification unique SAML via Azure AD :
- Accédez au centre d'administration Microsoft Entra > Applications d'entreprise
- Ajoutez l'application depuis la galerie (ou créez une application SAML personnalisée)
- Configurez l'authentification unique > SAML :
- Identifiant (ID d'entité) : ID d'entité de l'application
- URL de réponse (ACS) : URL du service de consommation d'assertions de l'application
- URL de connexion : URL de connexion de l'application
- Mappez les attributs/revendications utilisateur :
- NameID : user.userprincipalname (format email)
- Revendications supplémentaires selon les besoins de l'application
- Téléchargez le fichier XML de métadonnées de fédération ou le certificat
- Configurez l'application SaaS avec les détails de fédération d'Azure AD
Étape 5 : Gestion du cycle de vie des certificats
Les certificats de signature de jeton AD FS expirent et doivent être renouvelés :
# Vérifier l'expiration du certificat actuel
Get-AdfsCertificate -CertificateType Token-Signing | Select-Object Thumbprint, NotAfter
# AD FS prend en charge le renouvellement automatique (activé par défaut)
Get-AdfsProperties | Select-Object AutoCertificateRollover
# Si une rotation manuelle est nécessaire :
# 1. Ajouter un nouveau certificat comme secondaire
Set-AdfsCertificate -CertificateType Token-Signing -Thumbprint $newThumbprint -IsPrimary $false
# 2. Mettre à jour Azure AD avec le nouveau certificat
# 3. Promouvoir en principal
Set-AdfsCertificate -CertificateType Token-Signing -Thumbprint $newThumbprint -IsPrimary $true
# 4. Supprimer l'ancien certificat
Remove-AdfsCertificate -CertificateType Token-Signing -Thumbprint $oldThumbprint
Liste de validation
- Batterie AD FS opérationnelle avec des certificats TLS et de signature de jeton valides
- Domaine Azure AD configuré comme fédéré avec les bonnes métadonnées
- Les règles de revendication transforment correctement les attributs AD en assertions SAML
- Un utilisateur de test peut s'authentifier de bout en bout via le flux de fédération
- MFA appliqué au niveau d'AD FS ou des accès conditionnels Azure AD
- Renouvellement automatique des certificats activé ou rotation manuelle planifiée
- Point de terminaison des métadonnées de fédération accessible publiquement
- Verrouillage intelligent configuré pour empêcher les attaques par force brute
- Stratégies de verrouillage extranet configurées sur AD FS
- Surveillance configurée pour l'état d'AD FS et l'expiration des certificats
- Reprise après sinistre : procédure de repli d'authentification gérée documentée