Authentification OpenID Connect 1.0
S’APPLIQUE À :
2013
2016
2019
Subscription Edition
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 :
- Windows’authentification (NTLM, Kerberos, etc.)
- Authentification basée sur les formulaires
- 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 :
- Une batterie SharePoint Server Subscription Edition
- 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 :
Go to the App Registration page
https://portal.azure.com/#blade/Microsoft_AAD_IAM/ActiveDirectoryMenuBlade/RegisteredApps.Entrez ce qui suit pour l’URL de redirection :
https://spsites.contoso.local/puis sélectionnez Enregistrer.
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.
Après l’inscription, allez dans l’onglet Authentification et activez les jetons d’ID, puis sélectionnez Enregistrer.
Go to the API permissions tab and add email and profile permissions.
Go to the Token configuration tab and add email, groups and upn optional claims.
Go to the Manifest tab, and manually change replyUrlsWithType.url from
https://spsites.contoso.local/tohttps://spsites.contoso.local/*. Sélectionnez Enregistrer.
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).
É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 :
- Certificat
- Émetteur
- Point de terminaison d’autorisation
- 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 :
Démarrez l SharePoint Management Shell et exécutez le script suivant pour créer un nouveau
SPAuthenticationProviderscript :# This script creates a trusted authentication provider for OIDC $sptrust = Get-SPTrustedIdentityTokenIssuer "contoso.local" $trustedAp = New-SPAuthenticationProvider -TrustedIdentityTokenIssuer $sptrustSuivez Créer une application web dans SharePoint Server pour créer une application web activant HTTPS/SSL nommée SharePoint - OIDC sur contoso.local.
Ouvrez le SharePoint’Administration centrale.
Ouvrez l’application web que vous avez créée et choisissez contoso.local en tant que fournisseur d’identité approuvé.
Ouvrez le SharePoint’Administration centrale.
Accédez à System Paramètres > Configure Alternate Access Mappings > Alternate Access Mapping Collection.
Filtrez l’affichage avec la nouvelle application web et confirmez que vous voyez quelque chose comme ceci :
Si vous étendez une application web existante pour définir l’authentification AD FS/AAD OIDC sur une nouvelle zone :
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 $sptrustOuvrez le SharePoint’Administration centrale.
Ouvrez l’application web pour qui vous souhaitez étendre l’authentification OIDC et choisissez contoso.local comme fournisseur d’identité approuvé.
Ouvrez le SharePoint’Administration centrale.
Accédez à System Paramètres > Configure Alternate Access Mappings > Alternate Access Mapping Collection.
Filtrez l’affichage avec l’application web qui a été étendue et confirmez que vous voyez quelque chose comme ceci :
É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.
Ouvrez la SharePoint console PowerShell.
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).
Ouvrez le SharePoint’Administration centrale.
Accédez à Gestion des applications Créer des collections de > sites Créer des > collections de sites.
Tapez un titre, une URL et sélectionnez le modèle Site d’équipe.
Dans la section Administrateur principal de la collection de sites, cliquez sur l’icône Du s sélectionneur
personnes (livre) de l’icône Livre pour ouvrir la boîte de dialogue S’il s’est suffit de le faire.Dans la boîte de dialogue S’il s’est s’il s’Windows, tapez le compte d’administrateur Windows, par exemple yvand.
Sur la gauche, filtrez la liste en sélectionnant Organisations. Voici un exemple de sortie :
Sélectionnez le compte, puis cliquez sur OK.
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.
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.
Sur la gauche, filtrez la liste en sélectionnant contoso.local. Voici un exemple de sortie :
Sélectionnez le compte et choisissez OK pour fermer la boîte de dialogue Sélecteur de personnes.
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 :
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.
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-ClaimIDSPS-ClaimProviderIDSPS-ClaimProviderTypeSPS-ClaimIDPendant 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-ClaimIDutilisateur. Nous vous suggérons d’utiliser la messagerie électronique ou le nom d’utilisateur principal pour leSPS-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-ClaimIDSPS-ClaimIDsynchronisé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 doitSPS-ClaimIDêtre définie sur Email.
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-ClaimIDprofil 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-ClaimIDsur .
SPS-ClaimProviderIDetSPS-ClaimProviderTypePour 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-ClaimProviderIDdoit être définie sur le nom du fournisseur créé à l’étape 1 parNew-SPClaimProviderl’cmdlet.SPS-ClaimProviderTypedoit être définie surSPTrustedBackedByUPAClaimProvider.
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-ClaimProviderTypedoit être définie sur Approuvé en tant que type constant.SPS-ClaimProviderIDdoit être définie sur le nom du fournisseur créé à l’étape 1 parNew-SPClaimProviderl’cmdlet.
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 :
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
ClaimTypeMappingNew-SPClaimTypeMapping, puis fournir cet objet à l’cmdlet New-SPTrustedIdentityTokenIssuer avec le-ClaimsMappingsparamètre.$sidClaimMap = New-SPClaimTypeMapping -IncomingClaimType "http://schemas.microsoft.com/ws/2008/06/identity/claims/groupsid" -IncomingClaimTypeDisplayName "SID" -SameAsIncoming $tokenissuer = New-SPTrustedIdentityTokenIssuer -ClaimsMappings $sidClaimMap, $emailClaimMapCet 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.
Synchronisez la propriété « SID » des groupes du fournisseur d’identité à la propriété « SID » dans le service d’application de profil utilisateur.
- 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.
- 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-ClaimIDla propriété des profils utilisateur.
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 :
- Une batterie SharePoint server.
- 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
.cerfichier.
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 :
Dans la gestion AD FS, cliquez avec le bouton droit sur Groupes d’applications et sélectionnez Ajouter un groupe d’applications.
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.
Dans la page Application native, copiez la valeur de l’identificateur client. Il sera utilisé ultérieurement comme valeur pour le paramètre pendant
DefaultClientIdentifierSharePoint configuration.Sous le champ URL de redirection, entrez et
https://spsites.contoso.local/choisissez Ajouter. Cliquez ensuite sur Next (Suivant).
Dans la page Résumé, cliquez sur Suivant.
Dans la page Complète, cliquez sur Fermer.
Exporter le certificat de signature de jetons à partir d’AD FS. Ce certificat de signature de jetons sera utilisé dans SharePoint configuration.
Assurez-vous que l’ID de revendication requis est inclus dans
id_tokenles 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 :
Ouvrez l’application web que vous avez créée et allez dans l’onglet Règle de transformation des problèmes.
Sélectionnez Ajouter une règle et sélectionnez Envoyer les attributs LDAP en tant que revendications dans la liste d’options.
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
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 :
Ouvrez l’application web que vous avez créée et allez dans l’onglet Règle de transformation des problèmes.
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.
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");
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 $rootCertSi 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 :
Démarrez l SharePoint Management Shell et exécutez le script suivant pour créer un nouveau
SPAuthenticationProviderscript :# This script creates a trusted authentication provider for OIDC $sptrust = Get-SPTrustedIdentityTokenIssuer "contoso.local" $trustedAp = New-SPAuthenticationProvider -TrustedIdentityTokenIssuer $sptrustSuivez Créer une application web dans SharePoint Server pour créer une application web activant HTTPS/SSL nommée SharePoint - OIDC sur contoso.local.
Ouvrez le SharePoint’Administration centrale.
Ouvrez l’application web que vous avez créée et choisissez contoso.local en tant que fournisseur d’identité approuvé.
Accédez à System Paramètres > Configure Alternate Access Mappings > Alternate Access Mapping Collection.
Filtrez l’affichage avec la nouvelle application web et confirmez que vous voyez quelque chose comme ceci :
Si vous étendez une application web existante pour définir l’authentification OIDC AD FS sur une nouvelle zone :
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 $sptrustOuvrez le SharePoint’Administration centrale.
Ouvrez l’application web pour qui vous souhaitez étendre l’authentification OIDC et choisissez contoso.local en tant que fournisseur d’identité approuvé.
Accédez à System Paramètres > Configure Alternate Access Mappings > Alternate Access Mapping Collection.
Filtrez l’affichage avec l’application web qui a été étendue et confirmez que vous voyez quelque chose comme ceci :
É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.
Ouvrez la SharePoint console PowerShell.
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).
Ouvrez le SharePoint’Administration centrale.
Accédez à Gestion des applications Créer des collections de > sites.
Tapez un titre, une URL et sélectionnez le modèle Site d’équipe.
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.
Dans la boîte de dialogue S’il s’est s’il s’Windows, tapez le compte d’administrateur Windows, par exemple yvand.
Sur la gauche, filtrez la liste en sélectionnant Organisations. Voici un exemple de sortie :
Sélectionnez le compte et choisissez OK.
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.
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.
Sur la gauche, filtrez la liste en sélectionnant Contoso.local. Voici un exemple de sortie :
Sélectionnez le compte et choisissez OK.
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.