Partager via


Configurer l’authentification OIDC dans SharePoint Server avec Active Directory Federation Services (AD FS)

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

Configuration requise

Lorsque vous configurez SharePoint Server avec Services ADFS (AD FS) à l’aide de l’authentification OpenID Connect (OIDC), vous avez besoin des ressources suivantes pour effectuer la configuration :

  1. Une batterie de serveurs SharePoint Server Édition d'abonnement.
  2. AD FS dans Windows Server 2016 ou une version ultérieure, déjà créée, avec la clé publique du certificat de signature AD FS exportée dans un .cer fichier.

Cet article utilise les exemples de valeurs suivants pour la configuration d’AD FS OIDC :

Valeur Liens
SharePoint site URL https://spsites.contoso.local/
AD FS site URL https://adfs.contoso.local/adfs/
Point de terminaison d’authentification AD FS https://adfs.contoso.local/adfs/oauth2/authorize
RegisteredIssuerName URL https://adfs.contoso.local/adfs/
AD FS SignoutURL https://adfs.contoso.local/adfs/oauth2/logout
Type de revendication d’identité http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress
Administrateur de collection de sites Windows contoso\yvand
Email valeur de l’administrateur de collection de sites fédéré (AD FS) yvand@contoso.local

Étape 1 : Configurer le fournisseur d’identité

Pour configurer OIDC avec AD FS, procédez comme suit :

  1. Dans Gestion AD FS, cliquez avec le bouton droit sur Application Groupes et sélectionnez Ajouter un groupe d’applications.

  2. Accédez à la page d’accueil , entrez ADFSSSO dans le champ Nom et, sous Applications client-serveur, sélectionnez le navigateur web accédant à un modèle d’application web . Puis sélectionnez Suivant.

    Assistant Ajout d’un groupe d’applications

  3. Accédez à la page Application native et copiez la valeur Identificateur du client . Il sera utilisé ultérieurement comme valeur pour DefaultClientIdentifier le paramètre pendant la configuration de SharePoint.

  4. Sous le champ URL de redirection , entrez https://spsites.contoso.local/ et sélectionnez Ajouter. Puis sélectionnez Suivant.

    Assistant Ajout d’un groupe d’applications 2

  5. Accédez à la page Résumé , puis sélectionnez Suivant.

    Assistant Ajout d’un groupe d’applications 3

  6. Accédez à la page Terminer et sélectionnez Fermer.

  7. Exporter le certificat de signature de jeton à partir d’AD FS. Ce certificat de signature de jeton sera utilisé dans l’installation de SharePoint. Les images suivantes montrent comment exporter un certificat de signature de jeton à partir d’AD FS :

    Exportation de certificat AD FS 1

    Exportation de certificat AD FS 2

    Exportation de certificat AD FS 3

    Exportation de certificat AD FS 4

  8. Vérifiez que l’ID de revendication requis est inclus dans le id_token à partir d’AD FS. Prenons l’exemple du courrier électronique :

    Nous partons du principe que votre service AD FS a configuré la règle qui lit la revendication d’identificateur à partir du magasin d’attributs, par exemple AD. Procédez comme suit pour créer une règle de transformation d’émission pour cette application web spécifique que nous avons créée précédemment dans AD FS :

    1. Ouvrez l’application web que vous avez créée et accédez à l’onglet Règle de transformation du problème .

      Règle de transformation de problème

    2. Sélectionnez Ajouter une règle et sélectionnez Envoyer des attributs LDAP en tant que revendications dans la liste d’options.

      Transformation de problème - Ajouter une règle

      Ajouter une règle de revendication de transformation

    3. Nommez votre règle de revendication AD et sélectionnez Active Directory dans le menu déroulant Magasin d’attributs . Créez deux mappages à l’aide des zones de liste déroulante comme indiqué :

      Attribut Valeur
      Adresses de messagerie Adresse de messagerie
      Token-Groups - Qualifié par nom de domaine Role

      Ajouter une règle de revendication de transformation 2

    4. Sélectionnez Terminer pour fermer l’Assistant Règle, puis sélectionnez OK pour fermer les propriétés de l’application web. Sélectionnez OK une fois de plus pour terminer la règle.

Si vous définissez OIDC avec SharePoint Server, la revendication nbf doit être configurée côté serveur AD FS dans l’application web que vous avez créée. Si la revendication nbf n’existe pas dans cette application web, procédez comme suit pour la créer :

  1. Ouvrez l’application web que vous avez créée et accédez à l’onglet Règle de transformation du problème .

    Règle de transformation de problème

  2. Sélectionnez Ajouter une règle , puis Appliquer. Dans l’Assistant Ajout d’une règle de revendication de transformation , sélectionnez Envoyer des revendications à l’aide d’une règle personnalisée dans les options du modèle de règle de revendication .

    Transformation de problème - Ajouter une règle

    Ajouter une règle de revendication de transformation 3

  3. Sélectionnez Suivant et entrez la chaîne suivante dans le champ Règle personnalisée :

    c:[Type == "http://schemas.microsoft.com/ws/2008/06/identity/claims/windowsaccountname"] => issue(Type = "nbf", Value = "0");

    Ajouter une règle de revendication de transformation 4

  4. Sélectionnez Terminer.

Étape 2 : Modifier les propriétés de la batterie de serveurs SharePoint

Dans cette étape, vous devez modifier les propriétés de la batterie de serveurs SharePoint Server en fonction de la version de votre batterie de serveurs SharePoint Server.

Configurer SharePoint Server Édition d'abonnement version 24H1 ou ultérieure avec la préférence de fonctionnalité de version préliminaire

À compter de SharePoint Server Édition d'abonnement version 24H1 (mars 2024), si la batterie de serveurs SharePoint est configurée pour la préférence de fonctionnalité version préliminaire, vous pouvez configurer les propriétés de la batterie de serveurs SharePoint Server en utilisant La gestion des certificats SharePoint pour gérer le certificat de cookie nonce. Le certificat de cookie nonce fait partie de l’infrastructure pour garantir la sécurité des jetons d’authentification OIDC. Exécutez le script PowerShell suivant pour configurer :

Importante

Pour utiliser ce script, la batterie de serveurs SharePoint doit être définie sur Version anticipée, comme indiqué ci-dessus. Si ce n’est pas le cas, le script se termine sans erreur, mais l’appel à $farm. UpdateNonceCertificate() ne fera rien. Si vous ne souhaitez pas configurer votre batterie de serveurs en version anticipée, vous devez utiliser les étapes Configurer SPSE avant la version 24H1 à la place.

Remarque

Démarrez SharePoint Management Shell en tant qu’administrateur de batterie pour exécuter le script suivant. Lisez attentivement les instructions mentionnées dans le script PowerShell suivant. Vous devez entrer vos propres valeurs spécifiques à l’environnement à certains endroits.

# Set up farm properties to work with OIDC

# Create the Nonce certificate
$cert = New-SelfSignedCertificate -CertStoreLocation Cert:\LocalMachine\My -Provider 'Microsoft Enhanced RSA and AES Cryptographic Provider' -Subject "CN=SharePoint Cookie Cert"

# Import certificate to Certificate Management
$certPath = "<path and file name to save the exported cert.  ex: c:\certs\nonce.pfx>"
$certPassword = ConvertTo-SecureString -String "<password>" -Force -AsPlainText
Export-PfxCertificate -Cert $cert -FilePath $certPath -Password $certPassword
$nonceCert = Import-SPCertificate -Path $certPath -Password $certPassword -Store "EndEntity" -Exportable:$true

# Update farm property
$farm = Get-SPFarm 
$farm.UpdateNonceCertificate($nonceCert,$true)

Configurer SharePoint Server Édition d'abonnement avant la version 24H1

# Set up farm properties to work with OIDC
$cert = New-SelfSignedCertificate -CertStoreLocation Cert:\LocalMachine\My -Provider 'Microsoft Enhanced RSA and AES Cryptographic Provider' -Subject "CN=SharePoint Cookie Cert"
$rsaCert = [System.Security.Cryptography.X509Certificates.RSACertificateExtensions]::GetRSAPrivateKey($cert)
$fileName = $rsaCert.key.UniqueName

# If you have multiple SharePoint servers in the farm, you need to export the certificate by Export-PfxCertificate and import the certificate to all other SharePoint servers in the farm by Import-PfxCertificate. 

# After the certificate is successfully imported to SharePoint Server, we will need to grant access permission to the certificate's private key.

$path = "$env:ALLUSERSPROFILE\Microsoft\Crypto\RSA\MachineKeys\$fileName"
$permissions = Get-Acl -Path $path

# Replace the <web application pool account> with the real application pool account of your web application
$access_rule = New-Object System.Security.AccessControl.FileSystemAccessRule(<Web application pool account>, 'Read', 'None', 'None', 'Allow')
$permissions.AddAccessRule($access_rule)
Set-Acl -Path $path -AclObject $permissions

# Update farm properties
$farm = Get-SPFarm
$farm.Properties['SP-NonceCookieCertificateThumbprint']=$cert.Thumbprint
$farm.Properties['SP-NonceCookieHMACSecretKey']='seed'
$farm.Update()

Étape 3 : Configurer SharePoint pour approuver les fournisseurs d’identité

Dans cette étape, vous allez créer un SPTrustedTokenIssuer qui stockera la configuration dont SharePoint a besoin pour approuver AD FS en tant que fournisseur OIDC. Démarrez SharePoint Management Shell en tant qu’administrateur de batterie de serveurs et exécutez le script suivant pour le créer :

Remarque

Lisez attentivement les instructions mentionnées dans le script PowerShell suivant. Vous devez entrer des valeurs spécifiques à l’environnement à plusieurs endroits.

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

# Public key of the AD FS signing certificate
$signingCert = New-Object System.Security.Cryptography.X509Certificates.X509Certificate2("C:\Data\Claims\ADFS Signing.cer")
# Set the AD FS URL where users are redirected to authenticate
$authendpointurl = "https://adfs.contoso.local/adfs/oauth2/authorize"
$registeredissuernameurl = "https://adfs.contoso.local/adfs"
$signouturl = "https://adfs.contoso.local/adfs/oauth2/logout"

# Replace <Client Identifier> with the value you saved in step #3 of AD FS Setup section
$clientIdentifier = "<Your Client Identifier>"

# Create a new SPTrustedIdentityTokenIssuer in SharePoint
New-SPTrustedIdentityTokenIssuer -Name "Contoso.local" -Description "Contoso.local" -ImportTrustCertificate $signingCert -ClaimsMappings $email -IdentifierClaim $email.InputClaimType  -RegisteredIssuerName $registeredissuernameurl  -AuthorizationEndPointUri $authendpointurl -SignOutUrl $signouturl -DefaultClientIdentifier $clientIdentifier

L’applet New-SPTrustedIdentityTokenIssuer de commande PowerShell est étendue pour prendre en charge OIDC à l’aide des paramètres suivants :

Paramètre Description
Nom Donne un nom au nouvel émetteur de jeton.
Description Donne une description au nouvel émetteur de jeton.
ImportTrustCertificate Importe une liste de certificats X509, qui sera utilisée pour valider id_token à partir de l’identificateur OIDC. Si le fournisseur d’identité OIDC utilise plusieurs certificats pour signer numériquement le id_token, importez ces certificats et SharePoint validera ensuite id_token en faisant correspondre la signature numérique générée à l’aide de ces certificats.
ClaimsMappings Objet SPClaimTypeMapping , qui sera utilisé pour identifier la revendication dans le id_token sera considérée comme identificateur dans SharePoint.
IdentifierClaim Spécifie le type d’identificateur.
RegisteredIssuerName Spécifie l’identificateur de l’émetteur, qui émet le id_token. Il sera utilisé pour valider le id_token.
AuthorizationEndPointUrl Spécifie le point de terminaison d’autorisation du fournisseur d’identité OIDC.
SignoutUrl Spécifie le point de terminaison de déconnexion du fournisseur d’identité OIDC.
DefaultClientIdentifier Spécifie le du serveur SharePoint, qui est affecté par le client_id fournisseur d’identité OID. Cela sera validé par rapport à la revendication aud dans id_token.
ResponseTypesSupported Spécifie le type de réponse du fournisseur d’identité, qui peut être accepté par cet émetteur de jeton. Il peut accepter deux chaînes : id_token et code id_token. Si ce paramètre n’est pas fourni, il est utilisé code id_token par défaut.

Importante

Le certificat approprié doit être ajouté au magasin de certificats de l’autorité racine SharePoint et il existe deux options possibles pour ce faire :

  • 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 ajouter le certificat :

    $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 AD FS est un certificat auto-signé (non recommandé pour des raisons de sécurité).

    La clé publique du certificat de signature AD FS doit être ajoutée au magasin. Démarrez SharePoint Management Shell et exécutez le script suivant pour ajouter le certificat :

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

Étape 4 : Configurer une application web SharePoint

Dans cette étape, vous allez configurer une application web dans SharePoint pour utiliser l’authentification AD FS OIDC, à l’aide du SPTrustedIdentityTokenIssuer qui a été créé à l’étape précédente.

Importante

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

Vous pouvez effectuer cette configuration en procédant comme suit :

  • Création d’une application web et utilisation de l’authentification OIDC Windows et AD FS dans la zone par défaut. Pour créer une application web, procédez comme suit :

    1. Démarrez SharePoint Management Shell et exécutez le script suivant pour créer un nouveau SPAuthenticationProvider:

      # This script creates a trusted authentication provider for OIDC    
      $sptrust = Get-SPTrustedIdentityTokenIssuer "contoso.local"
      $trustedAp = New-SPAuthenticationProvider -TrustedIdentityTokenIssuer $sptrust
      
    2. Suivez Créer une application web dans SharePoint Server pour créer une application web activant HTTPS/SSL nommée SharePoint - OIDC sur contoso.local.

    3. Ouvrez le site Administration centrale de SharePoint.

    4. Ouvrez l’application web que vous avez créée, choisissez « Fournisseurs d’authentification » dans le ruban, cliquez sur le lien de la zone « Par défaut », puis choisissez contoso.local comme Fournisseur d’identité approuvé.

      Fournisseurs d’authentification 3

    5. Accédez à Paramètres> systèmeConfigurer la collection de mappages>d’accès de substitution.

    6. Filtrez l’affichage avec la nouvelle application web et vérifiez que les informations suivantes s’affichent :

      Collection de mappages d’accès de substitution-1

  • Extension d’une application web existante pour définir l’authentification AD FS OIDC sur une nouvelle zone. Pour étendre une application web existante, procédez comme suit :

    1. Démarrez SharePoint Management Shell et exécutez PowerShell pour étendre l’application web :

      Exemple :

      # Get the trusted provider
      $sptrust = Get-SPTrustedIdentityTokenIssuer "Contoso.local"
      $ap = New-SPAuthenticationProvider -TrustedIdentityTokenIssuer $sptrust
      # Get the web app
      $wa = Get-SPWebApplication http://spsites
      # Extend the web app to the "Intranet" zone using trusted provider auth and a SharePoint managed certificate called "SharePoint OIDC Site"
      New-SPWebApplicationExtension -Identity $wa -Name "spsites" -port 443 -HostHeader 'spsites.contoso.local'-AuthenticationProvider $ap -SecureSocketsLayer -UseServerNameIndication -Certificate 'SharePoint OIDC Site' -Zone 'Intranet' -URL 'https://spsites.contoso.local' 
      
    2. Accédez à Paramètres> systèmeConfigurer la collection de mappages>d’accès de substitution.

    3. Filtrez l’affichage avec l’application web qui a été étendue et vérifiez que les informations suivantes s’affichent :

      Collection de mappages d’accès de substitution

Étape 5 : Vérifier que l’application web est configurée avec un certificat SSL

Étant donné que l’authentification OpenID Connect 1.0 ne peut fonctionner qu’avec le protocole HTTPS, un certificat doit être défini sur l’application web correspondante. Si vous ne l’avez pas déjà fait, procédez comme suit pour définir un certificat :

  • Générez le certificat de site :

    Remarque

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

    1. Ouvrez la console SharePoint PowerShell.

    2. Exécutez le script suivant pour générer un certificat auto-signé et l’ajouter à la batterie de serveurs SharePoint :

      New-SPCertificate -FriendlyName "Contoso SharePoint (2021)" -KeySize 2048 -CommonName spsites.contoso.local -AlternativeNames extranet.contoso.local, onedrive.contoso.local -OrganizationalUnit "Contoso IT Department" -Organization "Contoso" -Locality "Redmond" -State "Washington" -Country "US" -Exportable -HashAlgorithm SHA256 -Path "\\server\fileshare\Contoso SharePoint 2021 Certificate Signing Request.txt"
      Move-SPCertificate -Identity "Contoso SharePoint (2021)" -NewStore EndEntity
      

      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éfinissez le certificat :

    Vous pouvez utiliser l’applet de commande PowerShell suivante pour affecter le certificat à l’application web :

    Set-SPWebApplication -Identity https://spsites.contoso.local -Zone Default -SecureSocketsLayer -Certificate "Contoso SharePoint (2021)"
    

Étape 6 : 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. Accédez à Gestion des>applications Créer des collections de sites.

  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, sélectionnez l’icône de livre pour ouvrir la boîte de dialogue Sélecteur de Personnes.

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

  6. Filtrez la liste à gauche en sélectionnant Organisations. Voici un exemple de sortie :

    Sélectionner Personnes 3

  7. Accédez au compte et sélectionnez OK.

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

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

  10. Filtrez la liste à gauche en sélectionnant Contoso.local. Voici un exemple de sortie :

    Sélectionner Personnes 4

  11. Accédez au compte et sélectionnez OK.

  12. Sélectionnez OK pour créer la collection de sites.

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

Étape 7 : Configurer Personnes sélecteur

Dans l’authentification OIDC, le sélecteur de Personnes ne valide pas l’entrée, ce qui peut entraîner des fautes d’orthographe ou des utilisateurs sélectionnant accidentellement le type de revendication incorrect. Vous pouvez résoudre ce problème à l’aide d’un fournisseur de revendications personnalisées ou en utilisant le nouveau fournisseur de revendications upA inclus dans SharePoint Server Édition d'abonnement. Pour configurer un fournisseur de revendications upA, consultez Sélecteur de Personnes amélioré pour l’authentification moderne.