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

S’APPLIQUE À :  yes-img-13 2013  yes-img-16 2016  yes-img-19 2019  yes-img-se Subscription Edition  no-img-sop SharePoint in 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 services AD FS (Active Directory Federation Services).

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 d’émission de jeton de sécurité (STS) externe approuvé. Un utilisateur qui tente de se connecter est redirigé vers ce sts, qui l’authentifiera et générera un jeton SAML en cas de réussite de l’authentification. Ensuite, SharePoint 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 SharePoint 2013 ou une batterie de serveurs plus nouvelle.
  • Une batterie de serveurs AD FS version 2 ou plus récente, déjà créée, avec la clé publique du certificat de signature AD FS exporté dans un fichier .cer.

Cet article utilise les valeurs suivantes :

  • SharePoint URL du site :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
  • Windows’administrateur de collection de sites :contoso\yvand
  • Valeur de messagerie 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 stockera 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 de réussite de l’authentification.

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 les SharePoint pour faire confiance à AD FS

Au cours de cette étape, vous allez créer un SPTrustedLoginProvider qui stockera la configuration SharePoint doit faire confiance à AD FS. Démarrez l 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

Important

N’utilisez pas l’option -UseDefaultConfiguration avec l’cmdlet 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 SharePoint’autorité racine. Il existe 2 options possibles :

  • Si le certificat de signature AD FS est émis par une autorité de certification (meilleure 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 l’environnement de ligne de 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 l’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 SharePoint web

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

Il existe des règles importantes à respecter :

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

Il existe 2 configurations possibles :

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

    1. Démarrez l’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 SharePoint’Administration centrale centrale.

    3. Sous Système Paramètres, sélectionnez Configurer les mappages des accès de remplacement. La zone Collection de mappages des accès de remplacement s’ouvre.

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

      Mappages des 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 l 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 SharePoint’Administration centrale centrale.

    3. Sous Système Paramètres, sélectionnez Configurer les mappages des accès de remplacement. La zone Collection de mappages des accès de remplacement s’ouvre.

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

      Mappages des accès de remplacement d’une application étendue

Assurez-vous qu’un certificat HTTPS est définie dans IIS

Étant SharePoint URL utilise le protocole HTTPS ( ), un certificat doit être définie sur le https://spsites.contoso.local/ site Internet Information Services (IIS) 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 Windows PowerShell console.

  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"
    

Important

Les certificats auto-signés conviennent uniquement à des fins de test. Dans les environnements de production, nous vous recommandons vivement d’utiliser les certificats émis par une autorité de certification à la place.

Définir le certificat

  1. Ouvrez la console Internet Information Services Manager.

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

  3. Sélectionnez la liaison https, puis sélectionnez Modifier.

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

Créer la collection de sites

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

  1. Ouvrez le SharePoint’Administration centrale centrale.

  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 et 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 picker de personnes.

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

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

    S’il s’Windows administrateur

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

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

  9. Dans la boîte de dialogue s’il s’agit de personnes, tapez la valeur de courrier exacte du compte d’administrateur AD FS, par yvand@contoso.local exemple.

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

    S’il s’Windows administrateur

  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 inscrire à l’aide du compte Windows ou du compte d’administrateur de collection de sites fédéré.

Étapes suivantes

Dans l’authentification fédérée, le s sélectionneur de personnes ne valide pas l’entrée, ce qui peut entraîner des fautes d’orthographe ou le choix accidentel du type de revendication par les utilisateurs. Cela peut être traité à l’aide d’un fournisseur de revendications personnalisé ; par exemple, LDAPCP.

Important

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 local, consultez le site web LDAPCP.