Amélioration des Sélecteurs de personnes pour l’authentification moderne
S’APPLIQUE À :2013 2016 2019 Édition d’abonnement SharePoint dans Microsoft 365
Lorsque l’authentification moderne (« fournisseur d’identité approuvé ») telle que SAML (Security Assertion Markup Language) 1.1 ou OpenID Connect (OIDC) 1.0 est utilisée, le contrôle Sélecteur de personnes ne peut pas rechercher, résoudre et valider les utilisateurs et les groupes. Au lieu de cela, le comportement par défaut consiste à résoudre toute valeur entrée, même s’il ne s’agit pas d’une revendication valide. Dans les versions précédentes de SharePoint Server, la seule solution consistait à utiliser un fournisseur de revendications personnalisées.
Dans SharePoint Server Subscription Edition (SPSE), le sélecteur de personnes a été amélioré pour permettre la résolution des utilisateurs et des groupes en fonction de leurs profils dans l’application de profil utilisateur (UPA, alias UPSA). L’UPA doit être configuré pour synchroniser les utilisateurs et les groupes à partir du magasin d’appartenances du fournisseur d’identité approuvé. Cela permet au sélecteur de personnes de résoudre les utilisateurs et les groupes valides sans nécessiter de fournisseur de revendications personnalisées.
Notes
L’utilisation d’un fournisseur de revendications personnalisées dans SharePoint Server Édition d’abonnement est toujours une solution valide au problème du sélecteur de personnes. Si les limitations du fournisseur de revendications UPA décrites dans cet article sont trop restrictives pour votre organisation, voir Créer un fournisseur de revendications dans SharePoint
Importante
Le moteur d’importation de profil utilisateur par défaut fourni avec SharePoint Server, appelé « Importation Active Directory » (Importation AD), peut uniquement être utilisé pour importer des profils utilisateur à partir de forêts et de domaines Active Directory locaux. Il ne peut pas être configuré pour importer des profils utilisateur à partir de l’ID Microsoft Entra. Si vous utilisez l’authentification OIDC avec l’ID Entra, vous pouvez envisager d’utiliser un fournisseur de revendications personnalisées pour fournir la fonctionnalité sélecteur de personnes.
Voici les étapes de configuration pour que le sélecteur de personnes soutenu par l’UPA fonctionne.
Étape 1 : Ajouter un fournisseur de revendications UPA-Backed à votre SPTrustedIdentityTokenIssuer
Notes
Pour les émetteurs de jetons d’identité approuvés SAML 1.1, vous pouvez ajouter un fournisseur de revendications upA lorsque vous créez l’émetteur de jeton, ou vous pouvez en attribuer un ultérieurement.
Pour les émetteurs de jetons d’identité approuvés OIDC 1.0, l’émetteur de jeton doit d’abord être créé, puis vous pouvez affecter le fournisseur de revendications. Consultez Ajouter un fournisseur de revendications upA à un SPTrustedIdentityTokenIssuer existant.
Créez un SPTrustedIdentityTokenIssuer et affectez un fournisseur de revendications upA sauvegardé en même temps
Notes
Cette option est disponible uniquement pour les émetteurs de jetons d’identité approuvés SAML 1.1.
Créez un émetteur de jeton à l’aide de l’applet de commande PowerShell New-SPTrustedIdentityTokenIssuer et affectez un fournisseur de revendications en ajoutant le commutateur UseUPABackedClaimProvider.
New-SPTrustedIdentityTokenIssuer
-ClaimsMappings <SPClaimMappingPipeBind[]>
-Description <String>
-IdentifierClaim <String>
-Name <String>
-Realm <String>
-SignInUrl <String>
[-AssignmentCollection <SPAssignmentCollection>]
-ImportTrustCertificate <X509Certificate2>
[-UseWReply]
[-Confirm] [-RegisteredIssuerName <String>]
[-SignOutUrl <String>]
[-WhatIf] [<CommonParameters>]
[-UseUPABackedClaimProvider]
Les trois paramètres suivants nécessitent une attention particulière :
-
ClaimsMappings
ClaimsMappings
spécifie le mappage des revendications du jeton d’origine à un jeton SharePoint. En utilisant ce paramètre, SharePoint comprend comment générer un jeton SharePoint lorsqu’un jeton spécifique est attribué à partir d’une propriété d’application de service de profil utilisateur.
Il accepte une liste d’objetsClaimTypeMapping
créés par l’applet de commande New-SPClaimTypeMapping . Voici des exemples d’objetsClaimTypeMapping
de différents types de jetons et ces objets peuvent être fournis auClaimsMappings
paramètre :
$emailClaimMap = New-SPClaimTypeMapping -IncomingClaimType "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress" -IncomingClaimTypeDisplayName "EmailAddress" -SameAsIncoming
$upnClaimMap = New-SPClaimTypeMapping -IncomingClaimType "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/upn" -IncomingClaimTypeDisplayName "UPN" -SameAsIncoming
$roleClaimMap = New-SPClaimTypeMapping -IncomingClaimType "http://schemas.microsoft.com/ws/2008/06/identity/claims/role" -IncomingClaimTypeDisplayName "Role" -SameAsIncoming
$sidClaimMap = New-SPClaimTypeMapping -IncomingClaimType "http://schemas.microsoft.com/ws/2008/06/identity/claims/groupsid" -IncomingClaimTypeDisplayName "SID" -SameAsIncoming
-
IdentifierClaim
LeIdentifierClaim
paramètre spécifie le type de revendication qui sera utilisé comme revendication d’identificateur (généralement email ou UPN). Il peut être défini sur leInputClaimType
de l’objetClaimTypeMapping
créé à partir de l’applet de commande New-SPClaimTypeMapping .
-IdentifierClaim $emailClaimMap.InputClaimType
-
UseUPABackedClaimProvider
Ce paramètre switch permet au sélecteur de personnes de rechercher et de sélectionner des utilisateurs et des groupes à partir du service Application de profil utilisateur. Il crée également unSPClaimProvider
, qui porte le même nom que .SPTrustedIdentityTokenIssuer
Notes
Le paramètre « UseUPABackedClaimProvider » ne peut pas être utilisé pour créer un OIDC SPTrustedIdentityTokenIssuer. Il peut uniquement être utilisé pour créer un SPTrustedIdentityTokenIssuer SAML.
Exemple :
# Create a new trusted identity token issuer, and assign a UPA-backed claim provider at the same time
New-SPTrustedIdentityTokenIssuer -Name "UPATest" -Description "Contoso.local" -ClaimsMappings $emailClaimMap -IdentifierClaim $emailClaimMap.InputClaimType -UseUPABackedClaimProvider
Ajouter un fournisseur de revendications upA sauvegardé à un SPTrustedIdentityTokenIssuer existant
L’exemple ci-dessus montre comment attribuer un fournisseur de revendications soutenu par UPA au moment de la création de l’émetteur de jeton d’identité approuvé (pour les fournisseurs SAML uniquement). Si vous disposez d’un émetteur de jeton d’identité approuvé existant (SAML ou OIDC) et que vous souhaitez y ajouter un fournisseur de revendications upA, utilisez l’exemple suivant.
Notes
Les exemples de scripts PowerShell suivants varient légèrement entre les fournisseurs d’authentification SAML 1.1 et OIDC 1.0. Choisissez l’exemple approprié.
Exemple pour SAML
# Get the existing trusted identity token issuer named "SAML"
$stsidp = Get-SPTrustedIdentityTokenIssuer "SAML"
# Create the new UPA-backed claim provider
$claimprovider = New-SPClaimProvider -AssemblyName "Microsoft.SharePoint, Version=16.0.0.0, Culture=neutral, publicKeyToken=71e9bce111e9429c" -Description "UPA-Backed" -DisplayName "UPA-Backed Claim Provider" -Type "Microsoft.SharePoint.Administration.Claims.SPTrustedBackedByUPAClaimProvider" -TrustedTokenIssuer $stsidp
# Set the trusted identity token issuer to use the new claim provider
Set-SPTrustedIdentityTokenIssuer $stsidp -ClaimProvider $claimprovider
Exemple pour OIDC
# Get the existing trusted identity token issuer named "OIDC"
$stsidp = Get-SPTrustedIdentityTokenIssuer "OIDC"
# Create the new UPA-backed claim provider
$claimprovider = New-SPClaimProvider -AssemblyName "Microsoft.SharePoint, Version=16.0.0.0, Culture=neutral, publicKeyToken=71e9bce111e9429c" -Description "UPA-Backed" -DisplayName "UPA-Backed Claim Provider" -Type "Microsoft.SharePoint.Administration.Claims.SPTrustedBackedByUPAClaimProvider" -TrustedTokenIssuer $stsidp
# Set the trusted identity token issuer to use the new claim provider
Set-SPTrustedIdentityTokenIssuer $stsidp -ClaimProvider $claimprovider -IsOpenIDConnect
Étape 2 : Synchroniser les profils avec UPSA
Vous pouvez maintenant commencer à synchroniser les profils utilisateur dans l’application de service de profil utilisateur SharePoint (UPSA) à partir du fournisseur d’identité utilisé dans l’organisation afin que le fournisseur de revendications nouvellement créé puisse fonctionner sur le jeu de données approprié.
Voici les deux façons de synchroniser les profils utilisateur dans l’application de service de profil utilisateur SharePoint :
Utilisez SharePoint Active Directory Import (AD Import) avec l’authentification du fournisseur de revendications approuvé comme type de fournisseur d’authentification dans le paramètre de connexion de synchronisation. Pour utiliser l’importation AD, consultez Gérer la synchronisation des profils utilisateur dans SharePoint Server.
Importante
L’importation AD peut uniquement être utilisée pour importer des profils utilisateur à partir de forêts et de domaines Active Directory locaux. Il ne peut pas être configuré pour importer des profils à partir de l’ID Entra. Si vous utilisez l’authentification OIDC soutenue par l’ID Entra, vous pouvez plutôt envisager d’utiliser un fournisseur de revendications personnalisées pour fournir la fonctionnalité sélecteur de personnes.
Utilisez Microsoft Identity Manager (MIM). Pour utiliser MIM, consultez Microsoft Identity Manager dans SharePoint Server 2016 et 2019.
Il doit y avoir deux agents à l’intérieur de l’expérience utilisateur du Gestionnaire de synchronisation MIM après la configuration de MIM. Un agent est utilisé pour importer des profils utilisateur du fournisseur d’identité source vers la base de données MIM. Un autre agent est également utilisé pour exporter les profils utilisateur de la base de données MIM vers l’application de service Profil utilisateur SharePoint.
Pendant la synchronisation, fournissez les propriétés suivantes à l’application de service Profil utilisateur :
a. SPS-ClaimID
- Choisissez la propriété d’identité unique dans la source qui sera mappées à la propriété SPS-ClaimID dans l’application de service Profil utilisateur ( adresse e-mail ou nom d’utilisateur principal par défaut).
- Il doit s’agir de la valeur du paramètre IdentifierClaim correspondant lorsque l’émetteur du jeton d’identité approuvé a été créé à l’aide de l’applet de commande New-SPTrustedIdentityTokenIssuer .
Pour la synchronisation d’importation AD, l’expérience utilisateur 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é SPS-ClaimID pour indiquer quel attribut du fournisseur d’identité source doit être synchronisé avec SPS-ClaimID. Il doit s’agir de la propriété utilisée comme revendication d’identificateur dans l’émetteur du jeton d’identité approuvé. Par exemple, si la revendication d’identificateur est e-mail et que les adresses e-mail des utilisateurs sont stockées dans l’attribut « mail » dans Active Directory, définissez Claim User Identifier sur « mail » dans cette expérience utilisateur.
Notes
Le nom d’affichage de SPS-ClaimID est Claim User Identifier dans l’expérience utilisateur et l’administrateur peut personnaliser les noms d’affichage.
Si vous n’êtes pas sûr de votre revendication d’identificateur, vous pouvez vérifier en exécutant cette commande PowerShell : $trust = Get-SPTrustedIdentityTokenIssuer
$trust.IdentityClaimTypeInformation
Pour la synchronisation MIM, mappez votre revendication d’identificateur (généralement adresse e-mail ou nom d’utilisateur principal) à SPS-ClaimID dans la base de données MIM à l’agent d’application du service profil utilisateur SharePoint :
Dans le Gestionnaire de service de synchronisation MIM, sélectionnez l’agent et ouvrez l’expérience utilisateur Configurer le flux d’attributs . Vous pouvez mapper le courrier à SPS-ClaimID.
b. SPS-ClaimProviderID et SPS-ClaimProviderType
Notes
Pour la synchronisation d’importation AD, vous devez uniquement mettre à jour le mappage de propriété « Claim User Identifier » (SPS-ClaimID). Contrairement à la synchronisation MIM, vous n’avez PAS besoin de mapper « Claim Provider Identifier » (SPS-ClaimProviderID) et « Claim Provider Type » (SPS-ClaimProviderType).
Pour la synchronisation MIM, définissez ces deux propriétés dans l’expérience utilisateur Configurer le flux d’attribut pour la base de données MIM sur l’agent d’application du service Profil utilisateur SharePoint :
Définissez SPS-ClaimProviderType sur Approuvé comme type constant.
Définissez SPS-ClaimProviderID sur le nom du fournisseur à l’aide de l’applet de commande New-SPTrustedIdentityTokenIssuer .
Étape 3 : Rendre les groupes pouvant faire l’objet d’une recherche
Importante
L’utilisation du fournisseur de revendications upA pour résoudre les groupes de sécurité fonctionne uniquement si l’identificateur de sécurité (SID) des groupes est utilisé et que les groupes sont importés dans l’application de service de profil utilisateur.
Si vous utilisez l’authentification OIDC avec l’ID Entra, notez que les groupes cloud uniquement n’ont pas de SID et qu’AD Import ne peut pas se synchroniser avec l’ID Entra.
Si vous devez utiliser des utilisateurs ou des groupes cloud uniquement au sein de vos autorisations de site SharePoint, un fournisseur de revendications personnalisées peut être la seule solution.
Pour permettre au contrôle Sélecteur de personnes de fonctionner avec des groupes de sécurité, procédez comme suit :
- Vérifiez que l’objet Group a une propriété nommée SID de type groupsid dans le fournisseur d’identité.
Si vous n’avez pas encore de mappage de revendication pour « groupSID », vous pouvez créer unClaimTypeMapping
objet à l’aide de New-SPClaimTypeMapping , puis fournir cet objet à l’applet de commande New-SPTrustedIdentityTokenIssuer avec-ClaimsMappings
le paramètre .
Exemple :
# Add Group SID as a claim type to an existing trusted provider named "SAML"
$Trust = Get-SPTrustedIdentityTokenIssuer -Identity "SAML"
$Trust.ClaimTypes.Add("http://schemas.microsoft.com/ws/2008/06/identity/claims/groupsid")
$Trust.Update()
# Add a claim mapping for Group SID
$GroupSidClaimMap = New-SPClaimTypeMapping -IncomingClaimType "http://schemas.microsoft.com/ws/2008/06/identity/claims/groupsid" -IncomingClaimTypeDisplayName "Group SID" -SameAsIncoming
$Trust = Get-SPTrustedIdentityTokenIssuer "SAML"
Add-SPClaimTypeMapping –TrustedIdentityTokenIssuer $Trust -Identity $GroupSidClaimMaps
Synchronisez la propriété SID des groupes du fournisseur d’identité avec la propriété SID dans l’application de service de profil utilisateur.
Pour la synchronisation d’importation AD, la propriété SID se synchronise automatiquement à partir du fournisseur d’identité source vers l’application de service de profil utilisateur SharePoint.
Pour la synchronisation MIM, prenez le mappage des propriétés du fournisseur d’identité à MIM, puis de MIM à l’application de service Profil utilisateur SharePoint afin que MIM puisse synchroniser le SID de groupe du fournisseur d’identité avec l’application de service De profil utilisateur SharePoint. Les étapes sont similaires à la façon dont la propriété SPS-ClaimID a été mappée pour les profils utilisateur. Dans ce cas seulement, les mappages pour le type d’objet « group » sont mis à jour.
Notes
Pour la synchronisation MIM, mappez également sAMAccountName à accountName pour l’objet Group de MIM à l’application de service De profil utilisateur SharePoint.
Étape 4 : Définir les propriétés comme pouvant faire l’objet d’une recherche dans l’UPSA
Pour que le sélecteur de personnes fonctionne, la dernière étape consiste à activer les propriétés pouvant faire l’objet d’une recherche dans l’application de service de profil utilisateur.
Les administrateurs peuvent définir les propriétés à rechercher par le sélecteur de personnes en suivant cet exemple de script PowerShell.
# Get the UPA property list
$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
# Set the proerties defined in $PropertyNames as searchable.
# In this example, we set First Name, Last Name, claim ID, email address, and PreferredName as searchable for the People Picker.
$PropertyNames = 'FirstName', 'LastName', 'SPS-ClaimID', 'WorkEmail', 'PreferredName'
foreach ($p in $PropertyNames) {
$property = $properties.GetPropertyByName($p)
if ($property) {
$property.CoreProperty.IsPeoplePickerSearchable = $true
$property.CoreProperty.Commit()
$property.Commit()
}
}
Pour vérifier quelles propriétés UPSA ont été activées pour la recherche sélecteur de personnes, vous pouvez utiliser l’exemple PowerShell suivant :
# Get the UPA property list
$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
# Set the proerties defined in $PropertyNames as searchable.
# In this example, we set First Name, Last Name, claim ID, email address, and PreferredName as searchable for the People Picker.
$PropertyNames = 'FirstName', 'LastName', 'SPS-ClaimID', 'WorkEmail', 'PreferredName'
foreach ($p in $PropertyNames) {
$property = $properties.GetPropertyByName($p)
if ($property) {
$property.CoreProperty.IsPeoplePickerSearchable = $true
$property.CoreProperty.Commit()
$property.Commit()
}
}