Partager via


Implémenter l’authentification fédérée

S’APPLIQUE À :oui-img-132013 oui-img-162016 oui-img-192019 oui-img-seÉdition d’abonnement no-img-sopSharePoint dans Microsoft 365

Implémenter l’authentification fédérée dans SharePoint Server

Ce guide pas à pas explique comment configurer l’authentification fédérée dans SharePoint avec Active Directory Federation Services (AD FS).

Vue d’ensemble de l’authentification fédérée

Dans l’authentification fédérée, SharePoint traite les jetons SAML émis par un service STS (Security Token Service) externe approuvé. Un utilisateur qui tente de se connecter est redirigé vers ce service STS, qui authentifie l’utilisateur et génère un jeton SAML en cas d’authentification réussie. SharePoint traite ensuite ce jeton et l’utilise pour créer son propre jeton et autoriser l’utilisateur à accéder au site.

Configuration requise

Pour effectuer la configuration, vous avez besoin des ressources suivantes :

  • Une batterie de serveurs SharePoint 2013 ou une version ultérieure.
  • Une batterie de serveurs AD FS version 2 ou ultérieure, déjà créée, avec la clé publique du certificat de signature AD FS exportée dans un fichier .cer.

Cet article utilise les valeurs suivantes :

  • URL du site SharePoint : https://spsites.contoso.local/
  • URL du site AD FS : https://adfs.contoso.local/adfs/ls/
  • Domaine (identificateur de partie de confiance) : urn:contoso:spsites
  • Type de revendication d’identité : http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress
  • Type de revendication de rôle : http://schemas.microsoft.com/ws/2008/06/identity/claims/role
  • Administrateur de collection de sites Windows : contoso\yvand
  • Valeur d’e-mail de l’administrateur de collection de sites fédéré (AD FS) : yvand@contoso.local

Créer une partie de confiance dans AD FS

Dans cette étape, vous allez créer une partie de confiance dans AD FS. La partie de confiance stocke la configuration requise pour fonctionner avec SharePoint et les règles de revendication qui définissent les revendications qui seront injectées dans le jeton SAML en cas d’authentification réussie.

Sur le serveur AD FS, démarrez PowerShell et exécutez le script suivant :

### STEP 1: Create the relying party
# Name of the Relying Party
$name = "SPSites"
# Unique identifier of the Relying Party (in SharePoint it's referred to as the realm)
$identifier = "urn:contoso:spsites"
# Authority that authenticates users
$identityProvider = "Active Directory"
# SharePoint URL where user is redirected upon successful authentication
$redirectURL = "https://spsites.contoso.local/_trust/default.aspx"
# Allow everyone to use this relying party
$allowEveryoneRule = '=> issue (Type = "http://schemas.microsoft.com/authorization/claims/permit", value = "true");'
# Create the Relying Party
Add-ADFSRelyingPartyTrust -Name $name -Identifier $identifier -ClaimsProviderName $identityProvider -Enabled $true -WSFedEndpoint $redirectURL -IssuanceAuthorizationRules $allowEveryoneRule -Confirm:$false

### STEP 2: Add claim rules to the relying party
# Rule below configured relying party to issue 2 claims in the SAML token: email and role
$claimsRule = @"
@RuleTemplate = "LdapClaims"
@RuleName = "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/ws/2005/05/identity/claims/emailaddress", "http://schemas.microsoft.com/ws/2008/06/identity/claims/role"), 
query = ";mail,tokenGroups(fullDomainQualifiedName);{0}", 
param = c.Value);
"@
# Apply the rule to the Relying Party
Set-ADFSRelyingPartyTrust -TargetName $name -IssuanceTransformRules $claimsRule

Une fois le script terminé, la partie de confiance dans AD FS doit ressembler à ceci :

Partie de confiance ADFS

Configurer SharePoint pour approuver AD FS

Dans cette étape, vous créez un SPTrustedLoginProvider qui stocke la configuration dont SharePoint a besoin pour approuver AD FS. Démarrez SharePoint Management Shell et exécutez le script suivant pour le créer :

# Define claim types
$email = New-SPClaimTypeMapping "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress" -IncomingClaimTypeDisplayName "EmailAddress" -SameAsIncoming
$role = New-SPClaimTypeMapping "http://schemas.microsoft.com/ws/2008/06/identity/claims/role" -IncomingClaimTypeDisplayName "Role" -SameAsIncoming

# Public key of the AD FS signing certificate
$signingCert = New-Object System.Security.Cryptography.X509Certificates.X509Certificate2("C:\Data\Claims\ADFS Signing.cer")
# Unique realm (corresponds to the unique identifier of the AD FS Relying Party)
$realm = "urn:contoso:spsites"
# Set the AD FS URL where users are redirected to authenticate
$signinurl = "https://adfs.contoso.local/adfs/ls/"

# Create a new SPTrustedIdentityTokenIssuer in SharePoint
New-SPTrustedIdentityTokenIssuer -Name "Contoso.local" -Description "Contoso.local" -Realm $realm -ImportTrustCertificate $signingCert -ClaimsMappings $email,$role -SignInUrl $signinurl -IdentifierClaim $email.InputClaimType

Importante

N’utilisez PAS l’option -UseDefaultConfiguration avec l’applet de commande New-SPTrustedIdentityTokenIssuer. Cette option provoque des effets secondaires inattendus en raison de la façon dont elle définit l’identité des utilisateurs en interne.

Ensuite, le certificat approprié doit être ajouté au magasin de certificats de l’autorité racine SharePoint. Il existe 2 options possibles :

  • Si le certificat de signature AD FS est émis par une autorité de certification (bonne pratique pour des raisons de sécurité)

La clé publique du certificat de l’émetteur (et tous les intermédiaires) doit être ajoutée au magasin : Démarrez SharePoint Management Shell et exécutez le script suivant pour l’ajouter :

$rootCert = New-Object System.Security.Cryptography.X509Certificates.X509Certificate2("C:\Data\Claims\ADFS Signing issuer.cer")
New-SPTrustedRootAuthority -Name "adfs.contoso.local signing root authority" -Certificate $rootCert
  • Si le certificat de signature ADFS est un certificat auto-signé (non recommandé pour des raisons de sécurité)

La clé publique du certificat de signature ADFS proprement dit doit être ajoutée au magasin : Démarrez SharePoint Management Shell et exécutez le script suivant pour l’ajouter :

$rootCert = New-Object System.Security.Cryptography.X509Certificates.X509Certificate2("C:\Data\Claims\ADFS Signing.cer")
New-SPTrustedRootAuthority -Name "adfs.contoso.local signing certificate" -Certificate $rootCert

Configurer l’application web SharePoint

Dans cette étape, vous configurez une application web dans SharePoint pour qu’elle soit fédérée avec l’approbation AD FS, à l’aide du SPTrustedLoginProvider créé ci-dessus.

Il existe des règles importantes à respecter :

  • L’authentification Windows doit être activée dans la zone par défaut de l’application web SharePoint. Cela est requis pour le robot de recherche.
  • L’URL SharePoint qui utilisera la fédération AD FS doit être configurée avec HTTPS.

Il existe deux configurations possibles :

  • Si vous créez une application web et utilisez à la fois l’authentification Windows et AD FS dans la zone par défaut :

    1. Démarrez SharePoint Management Shell et exécutez le script suivant :

      # This script creates a new web application and sets Windows and AD FS authentication on the Default zone
      # URL of the SharePoint site federated with ADFS
      $trustedSharePointSiteUrl = "https://spsites.contoso.local/"
      $applicationPoolManagedAccount = "Contoso\spapppool"
      
      $winAp = New-SPAuthenticationProvider -UseWindowsIntegratedAuthentication -DisableKerberos:$true
      $sptrust = Get-SPTrustedIdentityTokenIssuer "Contoso.local"
      $trustedAp = New-SPAuthenticationProvider -TrustedIdentityTokenIssuer $sptrust
      
      New-SPWebApplication -Name "SharePoint - ADFS on contoso.local" -Port 443 -SecureSocketsLayer -URL $trustedSharePointSiteUrl -ApplicationPool "SharePoint - ADFS on contoso.local" -ApplicationPoolAccount (Get-SPManagedAccount $applicationPoolManagedAccount) -AuthenticationProvider $winAp, $trustedAp
      
    2. Ouvrez le site Administration centrale de SharePoint .

    3. Sous Paramètres système, sélectionnez Configurer les mappages d’accès de substitution. La zone Collection de mappages d’accès alternatif s’ouvre.

    4. Filtrez l’affichage avec la nouvelle application web et vérifiez que vous voyez quelque chose comme ceci :

      Mappages d’accès de remplacement de l’application web

  • Si vous étendez une application web existante pour définir l’authentification AD FS sur une nouvelle zone :

    1. Démarrez SharePoint Management Shell et exécutez le script suivant :

      # This script extends an existing web application to set AD FS authentication on a new zone
      # URL of the default zone of the web application
      $webAppDefaultZoneUrl = "http://spsites/"
      # URL of the SharePoint site federated with ADFS
      $trustedSharePointSiteUrl = "https://spsites.contoso.local/"
      
      $sptrust = Get-SPTrustedIdentityTokenIssuer "Contoso.local"
      $ap = New-SPAuthenticationProvider -TrustedIdentityTokenIssuer $sptrust
      $wa = Get-SPWebApplication $webAppDefaultZoneUrl
      New-SPWebApplicationExtension -Name "SharePoint - ADFS on contoso.local" -Identity $wa -SecureSocketsLayer -Zone Intranet -Url $trustedSharePointSiteUrl -AuthenticationProvider $ap
      
    2. Ouvrez le site Administration centrale de SharePoint .

    3. Sous Paramètres système, sélectionnez Configurer les mappages d’accès de substitution. La zone Collection de mappages d’accès alternatif s’ouvre.

    4. Filtrez l’affichage avec l’application web qui a été étendue et vérifiez que vous voyez quelque chose comme ceci :

      Mappages d’accès de substitution de l’application étendue

Définir un certificat HTTPS dans IIS

Étant donné que l’URL SharePoint utilise le protocole HTTPS (https://spsites.contoso.local/), un certificat doit être défini sur le site Iis (Internet Information Services) correspondant.

Générer le certificat de site

Notes

Vous pouvez ignorer cette étape si vous avez déjà généré le certificat.

  1. Ouvrez la console Windows PowerShell.

  2. Exécutez le script suivant pour générer un certificat auto-signé et l’ajouter au magasin MY de l’ordinateur :

    New-SelfSignedCertificate -DnsName "spsites.contoso.local" -CertStoreLocation "cert:\LocalMachine\My"
    

Importante

Les certificats auto-signés ne conviennent qu’à des fins de test. Dans les environnements de production, nous vous recommandons vivement d’utiliser plutôt des certificats émis par une autorité de certification.

Définir le certificat

  1. Ouvrez la console du Gestionnaire des services Internet.

  2. Développez le serveur dans l’arborescence, développez Sites, sélectionnez le site SharePoint - ADFS sur contoso.local , puis sélectionnez Liaisons.

  3. Sélectionnez liaison https , puis Modifier.

  4. Dans le champ Certificat TLS/SSL, choisissez certificat spsites.contoso.local , puis sélectionnez OK.

Créer la collection de sites

Dans cette étape, vous créez une collection de sites d’équipe avec deux administrateurs : un en tant qu’administrateur Windows et un en tant qu’administrateur fédéré (AD FS).

  1. Ouvrez le site Administration centrale de SharePoint .

  2. Sous Gestion des applications, sélectionnez Créer des collections de sites. La page Créer des collections de sites s’ouvre.

  3. Tapez un titre, une URL, puis sélectionnez le modèle Site d’équipe.

  4. Dans la section Administrateur principal de la collection de sites, cliquez sur l’icône du livre pour ouvrir la boîte de dialogue du sélecteur de personnes.

  5. Dans la boîte de dialogue du sélecteur de personnes, tapez le compte d’administrateur Windows, par exemple yvand.

  6. Sur la gauche, filtrez la liste en cliquant sur Organisations. Vous devriez voir une sortie semblable à celle-ci :

    Sélecteur de personnes Administrateur Windows

  7. Sélectionnez le compte, puis cliquez sur OK.

  8. Dans la section Administrateur de collection de sites secondaire , cliquez sur l’icône du livre pour ouvrir la boîte de dialogue du sélecteur de personnes.

  9. Dans la boîte de dialogue du sélecteur de personnes, tapez la valeur d’e-mail exacte du compte d’administrateur AD FS, par exemple yvand@contoso.local.

  10. Sur la gauche, filtrez la liste en cliquant sur Contoso.local. Vous devriez voir une sortie semblable à celle-ci :

    E-mail de l’administrateur FS du sélecteur de personnes

  11. Sélectionnez le compte, puis cliquez sur OK.

  12. Cliquez sur OK pour créer la collection de sites.

Une fois la collection de sites créée, vous devez être en mesure de vous y connecter à l’aide de Windows ou du compte d’administrateur de collection de sites fédéré.

Étapes suivantes

Dans l’authentification fédérée, le sélecteur de personnes ne valide pas l’entrée, ce qui peut entraîner des fautes d’orthographe ou des utilisateurs choisissant accidentellement le type de revendication incorrect. Ce problème peut être résolu à l’aide d’un fournisseur de revendications personnalisé ; par exemple, LDAPCP.

Importante

LDAPCP n’est pas un produit Microsoft et n’est pas pris en charge par le Support Microsoft. Pour télécharger, installer et configurer LDAPCP sur la batterie de serveurs SharePoint locale, consultez le site web LDAPCP.

Dans SharePoint Server Édition d’abonnement, le sélecteur de personnes natives peut rechercher et résoudre des personnes à l’aide de l’application de service de profil utilisateur pour l’authentification fédérée. Découvrez comment configurer le sélecteur de personnes pour qu’il fonctionne avec l’authentification fédérée.