Authentification OpenID Connect 1.0

S’APPLIQUE À :  no-img-13 2013  no-img-16 2016  no-img-19 2019  yes-img-se Subscription Edition  no-img-sop SharePoint in Microsoft 365

SharePoint Server Subscription Edition prend désormais en charge le protocole d’authentification OpenID Connecter (OIDC) 1.0. OIDC 1.0 est un protocole d’authentification moderne qui facilite l’intégration d’applications et d’appareils aux solutions de gestion des identités et de l’authentification de votre organisation afin de mieux répondre à l’évolution de vos besoins en matière de sécurité et de conformité.

Dans SharePoint 2019 et versions antérieures, SharePoint Server 2016 2016 3 types de méthodes d’authentification :

  1. Windows’authentification (NTLM, Kerberos, etc.)
  2. Authentification basée sur les formulaires
  3. Authentification basée sur SAML 1.1

Avec cette nouvelle fonctionnalité, vous pouvez désormais configurer une OIDC qui fonctionne avec un fournisseur d’identité distant pour activer SPTrustedIdentityTokenIssuer l’authentification OIDC.

Configurer l’authentification OIDC dans SharePoint Server avec AAD

Configuration requise

Pour effectuer la configuration, vous avez besoin des ressources suivantes lorsque vous configurez avec Azure Active Directory (AAD) OIDC :

  1. Une batterie SharePoint Server Subscription Edition
  2. AAD Rôle d’administrateur général du client M365

Cet article utilise les valeurs suivantes pour la configuration AAD OIDC :

Valeur Liens
SharePoint URL du site https://spsites.contoso.local/
OIDC site URL https://sts.windows.net/<tenantid>/
AAD Point de terminaison d’authentification OIDC https://login.microsoftonline.com/<tenantid>/oauth2/authorize
AAD OIDC RegisteredIssuerName URL https://sts.windows.net/<tenantid>/
AAD URL de la signature OIDC https://login.microsoftonline.com/<tenantid>/oauth2/logout
Type de revendication d’identité http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress
Windows de collection de sites contoso\yvand
Valeur de messagerie de l’administrateur de collection de sites fédéré (AD FS) yvand@contoso.local

Étape 1 : Configurer le fournisseur d’identité

Si vous choisissez d’utiliser AAD comme fournisseur d’identité fédérée, effectuez les étapes suivantes pour configurer AAD OIDC :

  1. Go to the App Registration page https://portal.azure.com/#blade/Microsoft_AAD_IAM/ActiveDirectoryMenuBlade/RegisteredApps .

  2. Entrez ce qui suit pour l’URL de redirection : https://spsites.contoso.local/ puis sélectionnez Enregistrer.

    Inscrire une application

  3. Enregistrez l’ID d’annuaire (client) en tant qu’ID de client que nous utiliserons à l’avenir et enregistrez l’ID d’application (client) qui sera utilisé comme DefaultClientIdentifier dans SharePoint configuration.

    Enregistrer l’application

  4. Après l’inscription, allez dans l’onglet Authentification et activez les jetons d’ID, puis sélectionnez Enregistrer.

    Activer les jetons d’ID

  5. Go to the API permissions tab and add email and profile permissions.

    Autorisations de l’API

  6. Go to the Token configuration tab and add email, groups and upn optional claims.

    Configuration du jeton

  7. Go to the Manifest tab, and manually change replyUrlsWithType.url from https://spsites.contoso.local/ to https://spsites.contoso.local/* . Sélectionnez Enregistrer.

    Manifeste

  8. Obtenir des informations d’authentification OIDC à partir du point de terminaison de découverte OIDC.

Dans AAD, il existe deux versions des points de terminaison d’authentification OIDC. Par conséquent, il existe deux versions des points de terminaison de découverte OIDC, respectivement :

  • V1.0 : https://login.microsoftonline.com/<TenantID>/.well-known/openid-configuration
  • V2.0 : https://login.microsoftonline.com/<TenantID>/v2.0/.well-known/openid-configuration

Notes

Pour l’authentification OIDC, les deux points de terminaison sont pris en charge, mais nous vous recommandons d’utiliser V2.0.

Remplacez TenantID par l’ID d’annuaire (client) enregistré à la troisième étape mentionnée ci-dessus et connectez-vous au point de terminaison via votre navigateur. Enregistrez ensuite les informations suivantes :

Valeur Liens
authorization_endpoint https://login.microsoftonline.com/<tenantid>/oauth2/authorize
end_session_endpoint https://login.microsoftonline.com/<tenantid>/oauth2/logout
émetteur https://sts.windows.net/<tenantid>/
jwks_uri https://login.microsoftonline.com/common/discovery/keys

Ouvrez jwks_uri ( ), et enregistrez la chaîne de certificat x5c de la première clé pour une utilisation ultérieure dans l’installation de SharePoint (si la première touche ne fonctionne pas, essayez la deuxième ou la https://login.microsoftonline.com/common/discovery/keys troisième touche).

Clés de découverte

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

Dans cette étape, vous devrez modifier les propriétés de la batterie de serveurs. Démarrez l SharePoint Management Shell et exécutez le script suivant :

# Setup 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 certificate by Export-PfxCertificate and import certificate to all other SharePoint servers in the farm by Import-PfxCertificate. 

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

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

#Please replace the <web application pool account> with 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

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

Étape 3 : Configurer SharePoint pour faire confiance au fournisseur d’identité

Vous pouvez configurer SharePoint pour qu’il puisse faire confiance au fournisseur d’identité des deux manières suivantes :

  • Configurer SharePoint pour faire confiance AAD fournisseur OIDC manuellement
  • Configurer SharePoint pour qu’il AAD en tant que fournisseur OIDC à l’aide du point de terminaison de métadonnées
    • À l’aide du point de terminaison de métadonnées, un grand nombre de paramètres dont vous avez besoin dans « Configurer SharePoint pour faire confiance à AAD en tant que fournisseur OIDC manuellement » peuvent être récupérés automatiquement par le point de terminaison de métadonnées.

Configurer SharePoint pour faire confiance AAD fournisseur OIDC manuellement

Dans cette étape, vous allez créer une configuration qui stockera la configuration dont SharePoint a besoin pour AAD OIDC en tant que fournisseur SPTrustedTokenIssuer OIDC. Démarrez l SharePoint Management Shell et exécutez le script suivant pour le créer :

Notes

Suivez bien les instructions mentionnées dans le script PowerShell suivant.

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

# Public key of the AAD OIDC signing certificate. Please replace <x5c cert string> with the encoded cert string which you get from x5c certificate string of the keys of jwks_uri from Step #1
$encodedCertStr = <x5c cert string>
$signingCert = New-Object System.Security.Cryptography.X509Certificates.X509Certificate2 @(,[System.Convert]::FromBase64String($encodedCertStr))
# Set the AAD OIDC URL where users are redirected to authenticate. Please replace <tenantid> accordingly
$authendpointurl = "https://login.microsoftonline.com/<tenantid>/oauth2/authorize"
$registeredissuernameurl = " https://sts.windows.net/<tenantid>/"
$signouturl = " https://login.microsoftonline.com/<tenantid>/oauth2/logout"

# Please replace <Application (Client) ID> with the value saved in step #3 in AAD setup section
$clientIdentifier = <Application (Client)ID>

# 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

Ici, l’cmdlet PowerShell est étendue pour prendre en charge New-SPTrustedIdentityTokenIssuer OIDC à l’aide des paramètres suivants :

Paramètre Description
Nom Donner un nom à ce nouvel émetteur de jeton.
Description Description de ce nouvel émetteur de jeton.
ImportTrustCertificate Elle prend une liste de certificats X509, qui seront utilisés pour la validation à partir de l’identificateur id_token OIDC. Si l’IDP OIDC utilise plusieurs certificats pour signer numériquement le certificat, importez ces certificats et SharePoint les validera en correspondant à la signature numérique générée à l’aide de ces id_token id_token certificats.
ClaimsMappings Objet qui sera utilisé pour identifier la revendication qui sera considérée comme identificateur dans SPClaimTypeMapping id_token SharePoint.
IdentifierClaim En spécifiant le type de l’identificateur.
RegisteredIssuerName Spécification de l’identificateur de l’émetteur, qui a pour effet d’émettre le id_token . Il sera utilisé pour valider le id_token .
AuthorizationEndPointUrl Spécification du point de terminaison d’autorisation du fournisseur d’identité OIDC.
SignoutUrl Spécification du point de terminaison de la signature du fournisseur d’identité OIDC.
DefaultClientIdentifier Spécifiez le serveur SharePoint, qui est affecté client_id par le fournisseur d’identité OID. Cela sera validé par rapport à la revendication aud dans id_token .
ResponseTypesSupported Spécifiez le type de réponse IDP 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 sera utilisé code id_token par défaut.

Important

Le certificat approprié doit être ajouté au magasin de certificats SharePoint’autorité racine :

New-SPTrustedRootAuthority -Name "AAD OIDC signing root authority" -Certificate $signingCert

Configurer SharePoint pour qu’il AAD OIDC à l’aide du point de terminaison de métadonnées

SharePoint Server Subscription Edition prend désormais en charge la fonctionnalité de découverte de métadonnées OIDC pendant la configuration.

À l’aide du point de terminaison de métadonnées fourni par le fournisseur d’identité OIDC, une partie de la configuration sera récupérée directement à partir du point de terminaison de métadonnées du fournisseur OIDC, notamment :

  1. Certificat
  2. Émetteur
  3. Point de terminaison d’autorisation
  4. SignoutURL

Cela peut simplifier la configuration de l’émetteur de jeton OIDC.

À l’aide de l’exemple PowerShell ci-dessous, nous pouvons utiliser le point de terminaison de métadonnées à partir de AAD pour configurer SharePoint d’AAD OIDC.

Notes

Suivez bien les instructions mentionnées dans le script PowerShell suivant.

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

# Set the AAD metadata endpoint URL. Please replace <TenantID> with the value saved in step #3 in AAD setup section  
$metadataendpointurl = "https://login.microsoftonline.com/<TenantID>/.well-known/openid-configuration"

# Please replace <Application (Client) ID> with the value saved in step #3 in AAD setup section
$clientIdentifier = <Application (Client)ID>

# Create a new SPTrustedIdentityTokenIssuer in SharePoint
New-SPTrustedIdentityTokenIssuer -Name "contoso.local" -Description "contoso.local" -ClaimsMappings $email -IdentifierClaim $email.InputClaimType  -DefaultClientIdentifier $clientIdentifier -MetadataEndPoint $ metadataendpointurl
Paramètre Description
Nom Donner un nom à ce nouvel émetteur de jeton.
Description Description de ce nouvel émetteur de jeton.
ImportTrustCertificate Certificat qui sera utilisé pour la validation à partir de id_token l’identificateur OIDC.
ClaimsMappings Objet qui sera utilisé pour identifier la revendication qui sera considérée comme identificateur dans SPClaimTypeMapping id_token SharePoint.
IdentifierClaim En spécifiant le type de l’identificateur.
DefaultClientIdentifier Spécifiez le serveur SharePoint, qui est affecté client_id par le fournisseur d’identité OID. Cela sera validé par rapport à la revendication aud dans id_token .
MetadataEndPoint Spécification du point de terminaison de métadonnées connu à partir du fournisseur d’identité OIDC, qui peut être utilisé pour récupérer le dernier certificat, l’émetteur, le point de terminaison d’autorisation et le point de terminaison de signature.

Étape 4 : Configurer l’application SharePoint web

Dans cette étape, vous allez configurer une application web dans SharePoint pour qu’elle soit fédérée avec l’OIDC AAD, à l’aide de celle qui a été créée à SPTrustedIdentityTokenIssuer l’étape précédente.

Voici les 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.
  • L SharePoint URL qui utilisera AAD fédération OIDC doit être configurée avec HTTPS.

Il existe deux configurations possibles :

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

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

      # 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 SharePoint’Administration centrale.

    4. Ouvrez l’application web que vous avez créée et choisissez contoso.local en tant que fournisseur d’identité approuvé.

      Fournisseurs d’authentification

    5. Ouvrez le SharePoint’Administration centrale.

    6. Accédez à System Paramètres > Configure Alternate Access Mappings > Alternate Access Mapping Collection.

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

      Nouvelle application web

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

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

      # This script creates a trusted authentication provider for OIDC
      
      $sptrust = Get-SPTrustedIdentityTokenIssuer "Contoso.local"
      $ap = New-SPAuthenticationProvider -TrustedIdentityTokenIssuer $sptrust
      
    2. Ouvrez le SharePoint’Administration centrale.

    3. Ouvrez l’application web pour qui vous souhaitez étendre l’authentification OIDC et choisissez contoso.local comme fournisseur d’identité approuvé.

      Fournisseurs d’authentification 2

    4. Ouvrez le SharePoint’Administration centrale.

    5. Accédez à System Paramètres > Configure Alternate Access Mappings > Alternate Access Mapping Collection.

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

      SharePoint Site d’administration

Étape 5 : s’assurer que l’application web est configurée avec le certificat SSL

Étant donné que l’authentification OpenID Connecter 1.0 ne peut fonctionner qu’avec le protocole HTTPS, un certificat doit être définie sur l’application web correspondante. Pour définir un certificat, effectuez les étapes suivantes :

  • 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 SharePoint console PowerShell.

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

      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
      

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

    Vous pouvez utiliser l’cmdlet 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 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é (AAD).

  1. Ouvrez le SharePoint’Administration centrale.

  2. Accédez à Gestion des applications Créer des collections de > sites Créer des > collections de sites.

  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 s sélectionneur de personnes (livre) de l’icône Livre pour ouvrir la boîte de dialogue S’il s’est suffit de le faire.

  5. Dans la boîte de dialogue S’il s’est s’il s’Windows, tapez le compte d’administrateur Windows, par exemple yvand.

  6. Sur la gauche, filtrez la liste en sélectionnant Organisations. Voici un exemple de sortie :

    Sélectionner des personnes

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

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

  9. Dans la boîte de dialogue S picker de personnes, tapez la valeur de messagerie exacte du compte d’administrateur AAD, par exemple yvand@contoso.local.

  10. Sur la gauche, filtrez la liste en sélectionnant contoso.local. Voici un exemple de sortie :

    Sélectionner les personnes 2

  11. Sélectionnez le compte et choisissez OK pour fermer la boîte de dialogue Sélecteur de personnes.

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

Étape 7 : Configurer le s picker de personnes

Dans l’authentification OIDC, le s picker 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. Cette situation peut être traitée à l’aide du nouveau fournisseur de revendications de l’UPA dans SharePoint Server.

Pour ce faire, procédez comme suit :

1. Créer un fournisseur de revendications

À l’étape précédente, vous avez déjà créé un OIDC à SPTrustedIdentityTokenIssuer l’aide de New-SPTrustedIdentityTokenIssuer l’cmdlet PowerShell. Au cours de cette étape, vous allez créer un fournisseur de revendications qui utilise le service d’application de profil utilisateur pour rechercher et résoudre des utilisateurs et des groupes dans le s picker de personnes et spécifie d’utiliser l’OIDC SPTrustedIdentityTokenIssuer :

$claimprovider = New-SPClaimProvider -AssemblyName "Microsoft.SharePoint, Version=16.0.0.0, Culture=neutral, publicKeyToken=71e9bce111e9429c" -DisplayName 'OIDC Claim Provider' -Type "Microsoft.SharePoint.Administration.Claims.SPTrustedBackedByUPAClaimProvider" -TrustedTokenIssuer $tokenissuer

Trois paramètres doivent être spécifiés ici :

Paramètre Description
AssemblyName À spécifier en tant que « Microsoft. SharePoint, Version=16.0.0.0, Culture=neutral, publicKeyToken=71e9bce111e9429c ».
Type À spécifier en tant que « Microsoft. SharePoint. Administration.Claims.SPTrustedBackedByUPAClaimProvider " afin que cette commande crée un fournisseur de revendications qui utilise UPA comme source de revendication.
TrustedTokenIssuer À spécifier comme OIDC créé SPTrustedIdentityTokenIssuer à l’étape précédente qui utilisera ce fournisseur de revendications. Il s’agit d’un nouveau paramètre que l’utilisateur doit fournir lorsque le type du fournisseur de revendications est « Microsoft. SharePoint. Administration.Claims.SPTrustedBackedByUPAClaimProvider ».

2. Connecter SPTrustedIdentityTokenIssuer avecSPClaimProvider

Dans cette étape, l’OIDC utilise le fournisseur de revendications créé à l’étape 1 pour rechercher et résoudre des utilisateurs SPTrustedIdentityTokenIssuer et des groupes :

Set-SPTrustedIdentityTokenIssuer <token issuer name> -ClaimProvider <claim provider object> -IsOpenIDConnect

Les paramètres suivants doivent être spécifiés ici :

Paramètre Description
nom de l’émetteur du jeton L’émetteur de jeton que ce s picker de personnes utilisera.
-ClaimProvider Ce SPClaimProvider qui sera utilisé pour générer la revendication.
-IsOpenIDConnect Obligatoire SPTrustedIdentityTokenIssuer lorsqu’est OIDC SPTrustedIdentityTokenIssuer . Sans ce paramètre, la configuration OIDC SPTrustedIdentityTokenIssuer échouera.

Voici un exemple de cette commande :

$claimprovider = Get-SPClaimProvider -Identity "UPATest"
Set-SPTrustedIdentityTokenIssuer "ADFS Provider" -ClaimProvider $claimprovider -IsOpenIDConnect

3. Synchroniser les profils avec UPSA

Désormais, les clients peuvent commencer à synchroniser les profils dans le service d’application de profil utilisateur SharePoint à partir du fournisseur d’identité utilisé dans l’organisation afin que le fournisseur de revendications nouvellement créé puisse travailler sur le jeu de données correct.

Il existe deux façons de synchroniser les profils utilisateur dans SharePoint service d’application de profil utilisateur :

  • En créant une nouvelle SharePoint d’importation Active Directory (importation AD) avec l’authentification de fournisseur de revendications approuvé comme type de fournisseur d’authentification dans le paramètre de connexion. Pour utiliser l’importation AD, voir Gérer la synchronisation des profils utilisateur dans SharePoint Server.

    Ajouter de nouvelles connexions de synchronisation

  • En utilisant Microsoft Identity Manager (MIM). Pour utiliser MIM, voir Microsoft Identity Manager dans SharePoint Serveurs 2016 et 2019.

    • Il doit y avoir deux agents à l’intérieur MIM’UX du Gestionnaire de synchronisation après MIM est définie. Un agent est utilisé pour importer des profils utilisateur à partir de l’IDP source vers la base MIM données. L’autre agent est utilisé pour exporter les profils utilisateur de la base de données MIM vers SharePoint service d’application de profil utilisateur.

Pendant la synchronisation, les trois propriétés suivantes doivent être fournies au service d’application de profil utilisateur :

  • SPS-ClaimID

  • SPS-ClaimProviderID

  • SPS-ClaimProviderType

    1. SPS-ClaimID

      Pendant la synchronisation, vous devez sélectionner la propriété d’identité unique dans la source qui sera mappée à la propriété dans le service d’application de profil SPS-ClaimID utilisateur. Nous vous suggérons d’utiliser la messagerie électronique ou le nom d’utilisateur principal pour le SPS-ClaimID . La valeur IdentifierClaim correspondante doit être définie lors de la création de l’émetteur de jeton à partir de l’cmdlet New-SPTrustedIdentityTokenIssuer.

      Pour la synchronisation d’importation AD, l’Administration centrale > Gestion des applications > Gérer les applications de service > Application de service profil utilisateur > Gérer les propriétés utilisateur permet aux administrateurs de modifier la propriété pour indiquer à quelle propriété du fournisseur d’identité source doit être SPS-ClaimID SPS-ClaimID synchronisée. (Le nom d’affichage de cette propriété est identificateur d’utilisateur de revendication dans l’expérience utilisateur et peut être personnalisé par l’administrateur pour d’autres noms complets.) Par exemple, si le courrier électronique doit être utilisé comme identificateur d’utilisateur de revendication , il doit SPS-ClaimID être définie sur Email.

      SPS-ClaimID SPS-ClaimProviderID SPS-ClaimProviderType

      MIM synchronisation est effectuée en m mappage de la messagerie électronique ou du nom d’utilisateur principal à la base de données MIM à l’agent de service d’application SharePoint SPS-ClaimID profil utilisateur :

      • Dans le MIM service de synchronisation d’entreprise, sélectionnez l’agent et ouvrez l’Flow . Vous pouvez ma cartographier le courrier électronique SPS-ClaimID sur .

        SPS-ClaimID4

    2. SPS-ClaimProviderID et SPS-ClaimProviderType

      Pour la synchronisation d’importation AD, ces propriétés peuvent être modifiées dans l’application de service de profil utilisateur > Configure Synchronization Connections > Create New Connection when you create a new AD Import synchronization connection.

      • SPS-ClaimProviderID doit être définie sur le nom du fournisseur créé à l’étape 1 par New-SPClaimProvider l’cmdlet.
      • SPS-ClaimProviderType doit être définie sur SPTrustedBackedByUPAClaimProvider .

      Pour MIM de synchronisation, ces propriétés peuvent être définies dans la Flow Configurer l’attribut pour que la base de données MIM soit SharePoint agent de service d’application de profil utilisateur :

      • SPS-ClaimProviderType doit être définie sur Approuvé en tant que type constant.
      • SPS-ClaimProviderID doit être définie sur le nom du fournisseur créé à l’étape 1 par New-SPClaimProvider l’cmdlet.

      Configurer l’attribut Flow

4. Rendre les groupes utilisables dans une recherche

Pour que le contrôle S picker de personnes fonctionne avec des groupes, les étapes suivantes doivent être suivies :

  1. L’objet group doit avoir une propriété nommée « SID » de type « groupid » dans le fournisseur d’identité.

    Vous pouvez créer un objet à l’aide de ClaimTypeMapping New-SPClaimTypeMapping, puis fournir cet objet à l’cmdlet New-SPTrustedIdentityTokenIssuer avec le -ClaimsMappings paramètre.

    $sidClaimMap = New-SPClaimTypeMapping -IncomingClaimType "http://schemas.microsoft.com/ws/2008/06/identity/claims/groupsid" -IncomingClaimTypeDisplayName "SID" -SameAsIncoming 
    $tokenissuer = New-SPTrustedIdentityTokenIssuer -ClaimsMappings $sidClaimMap, $emailClaimMap
    

    Cet exemple d’cmdlet crée d’abord un objet « claimmap » de type « groupsid » et indique qu’il fonctionne avec la propriété « SID » du groupe, puis crée un émetteur d’identité qui peut comprendre ce mappage.

  2. Synchronisez la propriété « SID » des groupes du fournisseur d’identité à la propriété « SID » dans le service d’application de profil utilisateur.

    1. Pour la synchronisation d’importation AD, siD est synchronisé automatiquement sans configuration supplémentaire du fournisseur d’identité source vers le service d’application SharePoint profil utilisateur.
    2. Pour la synchronisation MIM, le mappage de propriétés doit être pris du fournisseur d’identité à MIM puis de MIM au service d’application de profil utilisateur SharePoint afin que MIM puisse synchroniser le « SID » de groupe du fournisseur d’identité au service d’application de profil utilisateur SharePoint. Cela est similaire à la façon dont nous synchronions les profils utilisateur pour SPS-ClaimID la propriété des profils utilisateur.
  3. Pour MIM synchronisation, « sAMAccountName » doit également être mappé sur « accountName » de MIM au service d’application de profil utilisateur SharePoint.

5. Activer les champs utilisables dans une recherche dans UPSA

Pour que le s picker de personnes fonctionne, l’étape finale consiste à permettre aux champs d’être recherchés dans UPSA.

Les utilisateurs peuvent définir les propriétés qui sont recherchés par le s picker de personnes en suivant cet exemple de script PowerShell :

#Get the property list of UPSA connected with the web application 
$site = $(Get-SPWebApplication $WebApplicationName).Sites[0] 
$context= Get-SPServiceContext $site 
$psm = [Microsoft.Office.Server.UserProfiles.ProfileSubTypeManager]::Get($context) 
$ps = 
$psm.GetProfileSubtype([Microsoft.Office.Server.UserProfiles.ProfileSubtypeManager]::GetDefaultProfileName([Microsoft.Office.Server.UserProfiles.ProfileType]::User)) 
$properties = $ps.Properties

#Enable people picker search for property name 'FistName', 'LastName' and 'SPS-ClaimID' 
$PropertyNames = 'FirstName', 'LastName', 'SPS-ClaimID'
foreach ($p in $PropertyNames) { 
    $property = $properties.GetPropertyByName($p) 
    if ($property) { 
        $property.CoreProperty.IsPeoplePickerSearchable = $true 
        $property.CoreProperty.Commit() 
        $property.Commit() 
    } 
} 

Configurer l’authentification OIDC dans SharePoint Server avec AD FS

Configuration requise

Assurez-vous que vous disposez des ressources suivantes avant de configurer avec AD FS OIDC :

  1. Une batterie SharePoint server.
  2. AD FS dans Windows Server 2016 ou ultérieure, déjà créé, avec la clé publique du certificat de signature AD FS exporté dans un .cer fichier.

Cet article utilise les valeurs suivantes pour :

Valeur Liens
SharePoint URL du site 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/
URL de la signature AD FS https://adfs.contoso.local/adfs/oauth2/logout
Type de revendication d’identité http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress
Windows de collection de sites contoso\yvand
Valeur de messagerie de l’administrateur de collection de sites fédéré (AD FS) yvand@contoso.local

Étape 1 : Configurer le fournisseur d’identité

Si vous choisissez d’utiliser AD FS comme fournisseur d’identité, effectuez les étapes suivantes pour configurer OIDC avec AD FS :

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

  2. Dans 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. Ensuite, cliquez sur Suivant.

    Assistant Ajouter un groupe d’applications

  3. Dans la page Application native, copiez la valeur de l’identificateur client. Il sera utilisé ultérieurement comme valeur pour le paramètre pendant DefaultClientIdentifier SharePoint configuration.

  4. Sous le champ URL de redirection, entrez et https://spsites.contoso.local/ choisissez Ajouter. Cliquez ensuite sur Next (Suivant).

    Assistant Ajouter un groupe d’applications 2

  5. Dans la page Résumé, cliquez sur Suivant.

    Assistant Ajouter un groupe d’applications 3

  6. Dans la page Complète, cliquez sur Fermer.

  7. Exporter le certificat de signature de jetons à partir d’AD FS. Ce certificat de signature de jetons sera utilisé dans SharePoint configuration.

    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. Assurez-vous que l’ID de revendication requis est inclus dans id_token les AD FS. Prenons le courrier électronique comme exemple :

    Nous partons du principe que vos AD FS ont configuré la règle qui lit la revendication d’identificateur à partir du magasin d’attributs, comme AD. Effectuez les étapes suivantes pour créer une règle de transformation d’émission pour cette application web spécifique que nous avons créée dans AD FS précédemment :

    1. Ouvrez l’application web que vous avez créée et allez dans l’onglet Règle de transformation des problèmes.

      Règle de transformation de problème

      Ajout d’une règle de transformation de problème

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

      Ajouter une règle de revendication de transformation

    3. Attribuez à votre règle de revendication le nom AD et sélectionnez Active Directory dans le menu déroulant du magasin d’attributs. Créez deux mappages à l’aide des zones de drop-down, comme illustré :

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

      Ajouter la règle de revendication de transformation 2

    4. Sélectionnez Terminer pour fermer l’Assistant Règle et 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 configurez 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, effectuez les étapes suivantes pour la créer :

  1. Ouvrez l’application web que vous avez créée et allez dans l’onglet Règle de transformation des problèmes.

    Règle de transformation de problème

    Ajout d’une règle de transformation de problème

  2. Sélectionnez Ajouter une règle, puis Appliquer. Dans l’Assistant Ajouter 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.

    Ajouter la règle de revendication de transformation 3

  3. Sélectionnez Suivant et saisie de 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 la règle de revendication de transformation 4

  4. Sélectionnez Terminer.

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

Dans cette étape, vous devrez modifier les propriétés de la batterie de serveurs. Démarrez l SharePoint Management Shell et exécutez le script suivant :

Notes

Suivez bien les instructions mentionnées dans le script PowerShell suivant.

# Setup farm properties to work with OIDC
#Create a self-signed certificate in one SharePoint Server in the farm
$cert = New-SelfSignedCertificate -CertStoreLocation Cert:\LocalMachine\My -Provider 'Microsoft Enhanced RSA and AES Cryptographic Provider' -Subject "CN=SharePoint Cookie Cert"

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

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

$rsaCert = [System.Security.Cryptography.X509Certificates.RSACertificateExtensions]::GetRSAPrivateKey($cert)
$fileName = $rsaCert.key.UniqueName
$path = "$env:ALLUSERSPROFILE\Microsoft\Crypto\RSA\MachineKeys\$fileName"
$permissions = Get-Acl -Path $path
#please replace the <web application pool account> with 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

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

Étape 3 : Configurer SharePoint aux fournisseurs d’identité

Dans cette étape, vous allez créer une configuration qui stockera la configuration dont SharePoint a besoin pour faire confiance à AD FS en tant que fournisseur SPTrustedTokenIssuer OIDC. Démarrez l SharePoint Management Shell et exécutez le script suivant pour le créer :

Notes

Suivez bien les instructions mentionnées dans le script PowerShell suivant.

# 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"

#Please replace <Client Identifier> with the value you saved in step #3 of AD FS Setup section
$clientIdentifier = <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

Ici, l’cmdlet PowerShell est étendue pour prendre en charge New-SPTrustedIdentityTokenIssuer OIDC à l’aide des paramètres suivants :

Paramètre Description
Nom Donner un nom à ce nouvel émetteur de jeton.
Description Description de ce nouvel émetteur de jeton.
ImportTrustCertificate Elle prend une liste de certificats X509, qui seront utilisés pour la validation à partir de id_token l’identificateur OIDC. Si l’IDP OIDC utilise plusieurs certificats pour signer numériquement le certificat, importez ces certificats et SharePoint les validera en correspondant à la signature numérique générée à l’aide de ces id_token id_token certificats.
ClaimsMappings Objet SPClaimTypeMapping, qui sera utilisé pour identifier la revendication qui sera considérée comme identificateur dans id_token SharePoint.
IdentifierClaim En spécifiant le type de l’identificateur.
RegisteredIssuerName Spécification de l’identificateur de l’émetteur, qui a pour effet d’émettre le id_token . Il sera utilisé pour valider le id_token .
AuthorizationEndPointUrl Spécification du point de terminaison d’autorisation du fournisseur d’identité OIDC.
SignoutUrl Spécification du point de terminaison de la signature du fournisseur d’identité OIDC.
DefaultClientIdentifier Spécifiez le serveur SharePoint, qui est affecté client_id par le fournisseur d’identité OID. Cela sera validé par rapport à la revendication aud dans id_token .
ResponseTypesSupported Spécifiez le type de réponse IDP qui peut être accepté par cet émetteur de jeton. Il peut accepter deux chaînes et id_token code id_token . Si ce paramètre n’est pas fourni, il sera utilisé code id_token par défaut.

Important

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

  • 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 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
    

Étape 4 : Configurer l’application SharePoint web

Dans cette étape, vous allez configurer une application web dans SharePoint pour qu’elle soit fédérée avec l’OIDC AD FS, à l’aide de celle qui a été créée à SPTrustedIdentityTokenIssuer l’étape précédente.

Voici les règles importantes à respecter :

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

Il existe deux configurations possibles :

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

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

      # 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 SharePoint’Administration centrale.

    4. Ouvrez l’application web que vous avez créée et choisissez contoso.local en tant que fournisseur d’identité approuvé.

      Fournisseurs d’authentification 3

    5. Accédez à System Paramètres > Configure Alternate Access Mappings > Alternate Access Mapping Collection.

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

      Collection de mappages des accès de remplacement -1

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

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

      # This script creates a trusted authentication provider for OIDC
      
      $sptrust = Get-SPTrustedIdentityTokenIssuer "contoso.local"
      $ap = New-SPAuthenticationProvider -TrustedIdentityTokenIssuer $sptrust
      
    2. Ouvrez le SharePoint’Administration centrale.

    3. Ouvrez l’application web pour qui vous souhaitez étendre l’authentification OIDC et choisissez contoso.local en tant que fournisseur d’identité approuvé.

      Fournisseurs d’authentification 4

    4. Accédez à System Paramètres > Configure Alternate Access Mappings > Alternate Access Mapping Collection.

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

      Collection de mappages des accès de remplacement

Étape 5 : s’assurer que l’application web est configurée avec le certificat SSL

Étant donné que l’authentification OpenID Connecter 1.0 ne peut fonctionner qu’avec le protocole HTTPS, un certificat doit être définie sur l’application web correspondante. Pour définir un certificat, effectuez les étapes suivantes :

  • 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 SharePoint console PowerShell.

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

      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
      

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

    Vous pouvez utiliser l’cmdlet 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 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.

  2. Accédez à Gestion des applications Créer des collections de > sites.

  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 S sélectionneur de personnes.

  5. Dans la boîte de dialogue S’il s’est s’il s’Windows, tapez le compte d’administrateur Windows, par exemple yvand.

  6. Sur la gauche, filtrez la liste en sélectionnant Organisations. Voici un exemple de sortie :

    Sélectionner des personnes 3

  7. Sélectionnez le compte et choisissez OK.

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

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

  10. Sur la gauche, filtrez la liste en sélectionnant Contoso.local. Voici un exemple de sortie :

    Sélectionner des personnes 4

  11. Sélectionnez le compte et choisissez 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 y inscrire à l’aide du compte Windows ou du compte d’administrateur de collection de sites fédéré.

Étape 7 : Configurer le s picker de personnes

Pour plus d’informations sur la façon de configurer le s picker de personnes, voir Étape 7 : Configurer le s picker de personnes.