Erweiterte Personenauswahl für moderne Authentifizierung
GILT FÜR:2013 2016 2019 Subscription Edition SharePoint in Microsoft 365
Wenn moderne Authentifizierung ("vertrauenswürdiger Identitätsanbieter") wie SECURITY ASSERTION Markup Language (SAML) 1.1 oder OpenID Connect (OIDC) 1.0 verwendet wird, kann das Personenauswahl-Steuerelement Benutzer und Gruppen nicht durchsuchen, auflösen und überprüfen. Stattdessen besteht das Standardverhalten darin, jeden eingegebenen Wert aufzulösen, auch wenn es sich nicht um einen gültigen Anspruch handelt. In früheren Versionen von SharePoint Server war die einzige Lösung die Verwendung eines benutzerdefinierten Anspruchsanbieters.
In sharePoint Server Subscription Edition (SPSE) wurde die Personenauswahl verbessert, um das Auflösen von Benutzern und Gruppen basierend auf ihren Profilen in der Benutzerprofilanwendung (UPA, auch bekannt als UPSA) zu ermöglichen. Der UPA muss so konfiguriert werden, dass Benutzer und Gruppen aus dem Mitgliedschaftsspeicher des vertrauenswürdigen Identitätsanbieters synchronisiert werden. Dadurch kann die Personenauswahl gültige Benutzer und Gruppen auflösen, ohne dass ein benutzerdefinierter Anspruchsanbieter erforderlich ist.
Hinweis
Die Verwendung eines benutzerdefinierten Anspruchsanbieters in der SharePoint Server-Abonnementedition ist weiterhin eine gültige Lösung für das Personenauswahlproblem. Wenn die in diesem Artikel beschriebenen Einschränkungen des UPA-gestützten Anspruchsanbieters für Ihre Organisation zu einschränkend sind, lesen Sie Erstellen eines Anspruchsanbieters in SharePoint.
Wichtig
Das in SharePoint Server enthaltene Standardmodul zum Importieren von Benutzerprofilen, das als "Active Directory-Import" (AD-Import) bezeichnet wird, kann nur zum Importieren von Benutzerprofilen aus lokalen Active Directory-Domänen und -Gesamtstrukturen verwendet werden. Es kann nicht zum Importieren von Benutzerprofilen aus der Microsoft Entra-ID konfiguriert werden. Wenn Sie die OIDC-Authentifizierung verwenden, die von Entra ID unterstützt wird, können Sie die Verwendung eines benutzerdefinierten Anspruchsanbieters in Betracht ziehen, um personenauswahlfunktionen bereitzustellen.
Im Folgenden sind die Konfigurationsschritte aufgeführt, damit die UPA-gestützte Personenauswahl funktioniert.
Schritt 1: Hinzufügen eines UPA-Backed Anspruchsanbieters zu Ihrem SPTrustedIdentityTokenIssuer
Hinweis
Für Tokenaussteller mit vertrauenswürdiger SAML 1.1-Identität können Sie beim Erstellen des Tokenausstellers einen UPA-gestützten Anspruchsanbieter hinzufügen oder später einen zuweisen.
Für OIDC 1.0-Tokenaussteller mit vertrauenswürdiger Identität muss zuerst der Tokenaussteller erstellt werden. Anschließend können Sie den Anspruchsanbieter zuweisen. Weitere Informationen finden Sie unter Hinzufügen eines UPA-gesicherten Anspruchsanbieters zu einem vorhandenen SPTrustedIdentityTokenIssuer.
Erstellen Sie ein neues SPTrustedIdentityTokenIssuer, und weisen Sie gleichzeitig einen UPA-gesicherten Anspruchsanbieter zu.
Hinweis
Dies ist nur für Tokenaussteller mit vertrauenswürdiger SAML 1.1-Identität verfügbar.
Erstellen Sie mithilfe des PowerShell-Cmdlets New-SPTrustedIdentityTokenIssuer einen neuen Tokenaussteller, und weisen Sie einen Anspruchsanbieter zu, indem Sie den Schalter UseUPABackedClaimProvider hinzufügen.
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]
Die folgenden drei Parameter erfordern besondere Aufmerksamkeit:
-
ClaimsMappings
ClaimsMappings
gibt die Zuordnung von Ansprüchen aus dem ursprünglichen Token zu einem SharePoint-Token an. Mithilfe dieses Parameters versteht SharePoint, wie ein SharePoint-Token generiert wird, wenn ein bestimmtes Token aus einer Anwendungseigenschaft des Benutzerprofildiensts zugewiesen wird.
Es akzeptiert eine Liste vonClaimTypeMapping
Objekten, die vom Cmdlet New-SPClaimTypeMapping erstellt werden. Im Folgenden finden Sie Beispiele fürClaimTypeMapping
Objekte verschiedener Tokentypen, und diese Objekte können für denClaimsMappings
Parameter bereitgestellt werden:
$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
DerIdentifierClaim
Parameter gibt an, welcher Anspruchstyp als Bezeichneranspruch verwendet wird (in der Regel E-Mail oder UPN). Sie kann auf dieInputClaimType
des Objekts festgelegt werden, dasClaimTypeMapping
mit dem Cmdlet New-SPClaimTypeMapping erstellt wurde.
-IdentifierClaim $emailClaimMap.InputClaimType
-
UseUPABackedClaimProvider
Mit diesem Switch-Parameter kann die Personenauswahl Benutzer und Gruppen im Benutzerprofilanwendungsdienst durchsuchen und auswählen. Außerdem wird einSPClaimProvider
erstellt, der denselben Namen wie derSPTrustedIdentityTokenIssuer
hat.
Hinweis
Der Parameter "UseUPABackedClaimProvider" kann nicht zum Erstellen eines OIDC SPTrustedIdentityTokenIssuer verwendet werden. Es kann nur verwendet werden, um ein SAML SPTrustedIdentityTokenIssuer zu erstellen.
Beispiel:
# 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
Hinzufügen eines UPA-gesicherten Anspruchsanbieters zu einem vorhandenen SPTrustedIdentityTokenIssuer
Das obige Beispiel zeigt, wie Sie einen UPA-gestützten Anspruchsanbieter zum Zeitpunkt der Erstellung des Tokenausstellers einer vertrauenswürdigen Identität zuweisen (nur für SAML-Anbieter). Wenn Sie über einen vorhandenen vertrauenswürdigen Identitätstokenaussteller (SAML oder OIDC) verfügen und diesem einen UPA-gestützten Anspruchsanbieter hinzufügen möchten, verwenden Sie das folgende Beispiel.
Hinweis
Die folgenden PowerShell-Skriptbeispiele variieren geringfügig zwischen SAML 1.1- und OIDC 1.0-Authentifizierungsanbietern. Wählen Sie das richtige Beispiel aus.
Beispiel für 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
Beispiel für 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
Schritt 2: Synchronisieren von Profilen mit UPSA
Sie können jetzt mit der Synchronisierung von Benutzerprofilen mit der SharePoint User Profile Service-Anwendung (UPSA) des identitätsanbieters beginnen, der in der Organisation verwendet wird, damit der neu erstellte Anspruchsanbieter mit dem richtigen Dataset arbeiten kann.
Im Folgenden finden Sie zwei Möglichkeiten zum Synchronisieren von Benutzerprofilen in der SharePoint-Benutzerprofildienstanwendung:
Verwenden Sie den SharePoint Active Directory-Import (AD-Import) mit der Authentifizierung des vertrauenswürdigen Anspruchsanbieters als Authentifizierungsanbietertyp in der Einstellung für die Synchronisierungsverbindung. Informationen zur Verwendung von AD Import finden Sie unter Verwalten der Benutzerprofilsynchronisierung in SharePoint Server.
Wichtig
AD Import kann nur zum Importieren von Benutzerprofilen aus lokalen Active Directory-Domänen und -Gesamtstrukturen verwendet werden. Es kann nicht so konfiguriert werden, dass Profile aus entra ID importiert werden. Wenn Sie die OIDC-Authentifizierung verwenden, die von Entra ID unterstützt wird, können Sie stattdessen einen benutzerdefinierten Anspruchsanbieter verwenden, um personenauswahlfunktionen bereitzustellen.
Verwenden Sie Microsoft Identity Manager (MIM). Informationen zur Verwendung von MIM finden Sie unter Microsoft Identity Manager in SharePoint Server 2016 und 2019.
Nach der Einrichtung von MIM sollten zwei Agents in der MIM-Synchronisierungs-Manager-Benutzeroberfläche vorhanden sein. Ein Agent wird verwendet, um Benutzerprofile aus dem Quell-IDP in die MIM-Datenbank zu importieren. Außerdem wird ein anderer Agent verwendet, um Benutzerprofile aus der MIM-Datenbank in die SharePoint-Benutzerprofildienstanwendung zu exportieren.
Geben Sie während der Synchronisierung die folgenden Eigenschaften für die Benutzerprofildienstanwendung an:
a. SPS-ClaimID
- Wählen Sie die eindeutige Identitätseigenschaft in der Quelle aus, die der SPS-ClaimID-Eigenschaft in der Benutzerprofildienstanwendung (bevorzugte E-Mail oderBenutzerprinzipalname) zugeordnet wird.
- Dies sollte der Wert für den entsprechenden IdentifierClaim-Parameter sein, wenn der Tokenaussteller der vertrauenswürdigen Identität mit dem Cmdlet New-SPTrustedIdentityTokenIssuer erstellt wurde.
Für die AD-Importsynchronisierung ermöglicht die Benutzeroberfläche der Zentraladministration> – Anwendungsverwaltung –> Verwalten von Dienstanwendungen –> Benutzerprofildienstanwendung –> Benutzereigenschaften verwalten Administratoren das Bearbeiten der SPS-ClaimID-Eigenschaft , um anzugeben, welches Attribut im Quellidentitätsanbieter mit SPS-ClaimID synchronisiert werden soll. Dies sollte die Eigenschaft sein, die als Bezeichneranspruch im Tokenaussteller der vertrauenswürdigen Identität verwendet wird. Wenn der Bezeichneranspruch beispielsweise E-Mail ist und E-Mail-Adressen der Benutzer im Attribut "mail" in Active Directory gespeichert werden, legen Sie anspruchsbenutzerbezeichner in dieser Benutzeroberfläche auf "mail" fest.
Hinweis
Der Anzeigename von SPS-ClaimID ist Anspruchsbenutzer-ID in der Benutzeroberfläche, und der Administrator kann die Anzeigenamen anpassen.
Wenn Sie sich bezüglich Ihres Bezeichneranspruchs nicht sicher sind, können Sie dies überprüfen, indem Sie diese PowerShell ausführen: $trust = Get-SPTrustedIdentityTokenIssuer
$trust.IdentityClaimTypeInformation
Ordnen Sie für die MIM-Synchronisierung Ihren Bezeichneranspruch (in der Regel E-Mail oder Benutzerprinzipalname) sps-ClaimID in der MIM-Datenbank dem Anwendungs-Agent des SharePoint-Benutzerprofildiensts zu:
Wählen Sie im DIENST-Manager für die MIM-Synchronisierung den Agent aus, und öffnen Sie die Benutzeroberfläche Attributfluss konfigurieren . Sie können E-Mail zu SPS-ClaimID zuordnen.
b. SPS-ClaimProviderID und SPS-ClaimProviderType
Hinweis
Für die AD-Importsynchronisierung müssen Sie nur die Eigenschaftenzuordnung "Claim User Identifier" (SPS-ClaimID) aktualisieren. Im Gegensatz zur MIM-Synchronisierung müssen Sie "Anspruchsanbieterbezeichner" (SPS-ClaimProviderID) und "Anspruchsanbietertyp" (SPS-ClaimProviderType) NICHT zuordnen.
Legen Sie für die MIM-Synchronisierung diese beiden Eigenschaften in der Benutzeroberfläche zum Konfigurieren des Attributflusses für die MIM-Datenbank auf den Anwendungs-Agent des SharePoint-Benutzerprofildiensts fest:
Legen Sie SPS-ClaimProviderType als Konstantentyp auf Vertrauenswürdig fest.
Legen Sie SPS-ClaimProviderID mithilfe des Cmdlets New-SPTrustedIdentityTokenIssuer auf den Anbieternamen fest.
Schritt 3: Gruppen durchsuchbar machen
Wichtig
Die Verwendung des UPA-gestützten Anspruchsanbieters zum Auflösen von Sicherheitsgruppen funktioniert nur, wenn die Sicherheits-ID (SID) der Gruppen verwendet wird und die Gruppen in die Benutzerprofildienstanwendung importiert werden.
Wenn Sie die OIDC-Authentifizierung verwenden, die von Entra ID unterstützt wird, sollten Sie beachten, dass reine Cloudgruppen weder über eine SID verfügen, noch kann AD Import eine Synchronisierung mit Entra ID durchführen.
Wenn Sie nur Cloudbenutzer oder -gruppen innerhalb Ihrer SharePoint-Websiteberechtigungen verwenden müssen, ist möglicherweise ein benutzerdefinierter Anspruchsanbieter die einzige Lösung.
Führen Sie die folgenden Schritte aus, um das Steuerelement Personenauswahl für die Verwendung mit Sicherheitsgruppen zu aktivieren:
- Stellen Sie sicher, dass das Group-Objekt über eine Eigenschaft namens SID vom Typ groupsid im Identitätsanbieter verfügt.
Wenn Sie noch nicht über eine Anspruchszuordnung für "groupSID" verfügen, können Sie mit New-SPClaimTypeMapping einClaimTypeMapping
Objekt erstellen und dieses Objekt dann mit-ClaimsMappings
dem Parameter für das Cmdlet New-SPTrustedIdentityTokenIssuer bereitstellen.
Beispiel:
# 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
Synchronisieren Sie die SID-Eigenschaft von Gruppen vom Identitätsanbieter mit der SID-Eigenschaft in der Benutzerprofildienstanwendung.
Bei der AD-Importsynchronisierung wird die SID-Eigenschaft automatisch vom Quellidentitätsanbieter mit der SharePoint-Benutzerprofildienst-Anwendung synchronisiert.
Verwenden Sie für die MIM-Synchronisierung die Eigenschaftenzuordnung vom Identitätsanbieter zu MIM und dann von MIM zur SharePoint-Benutzerprofildienstanwendung, damit MIM die Gruppen-SID vom Identitätsanbieter mit der SharePoint-Benutzerprofildienstanwendung synchronisieren kann. Die Schritte ähneln der Zuordnung der SPS-ClaimID-Eigenschaft für Benutzerprofile. In diesem Fall werden die Zuordnungen für den Objekttyp "group" aktualisiert.
Hinweis
Ordnen Sie für die MIM-Synchronisierung auch sAMAccountNameaccountName für das Group-Objekt aus MIM der SharePoint-Benutzerprofildienstanwendung zu.
Schritt 4: Festlegen von Eigenschaften als durchsuchbar in der UPSA
Damit die Personenauswahl funktioniert, besteht der letzte Schritt darin, zu aktivieren, welche Eigenschaften in der Benutzerprofildienstanwendung durchsuchbar sind.
Administratoren können festlegen, welche Eigenschaften von der Personenauswahl durchsucht werden, indem sie diesem PowerShell-Beispielskript folgen.
# 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()
}
}
Um zu überprüfen, welche UPSA-Eigenschaften für die Personenauswahlsuche aktiviert wurden, können Sie das folgende PowerShell-Beispiel verwenden:
# 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()
}
}