Konfigurieren der Server-zu-Server-Authentifizierung zwischen Veröffentlichungs- und Nutzungsfarmen
GILT FÜR:2013 2016 2019 Subscription Edition SharePoint in Microsoft 365
Wenn eine Farm die Benutzerprofildienstanwendung einer Veröffentlichungsfarm nutzt, stellt SharePoint Anforderungen mithilfe der Server-zu-Server-Authentifizierung im Namen des Benutzers für einige Features aus:
Folgen Sie einem Dokument in einer Inhaltswebanwendung, wenn sich die persönliche Website eines Benutzers in einer Webanwendung in einer externen Farm befindet. Die Inhaltswebanwendung sendet im Namen des Benutzers eine OAuth-Anforderung an die Webanwendung "Meine Websites".
Erstellen oder beantworten Sie einen Websitefeedbeitrag für eine Website, die sich in einer Inhaltswebanwendung befindet, aber über den Newsfeed "Meine Website" des Benutzers in der Webanwendung "Meine Websites" ausgeführt wird. Die Webanwendung "Meine Websites" sendet eine Anforderung an die Inhaltswebanwendung im Namen des Benutzers, um den Beitrag oder die Antwort zu schreiben.
Eine Anwendungsaufgabe des Benutzerprofildiensts zum erneuten Auffüllen des Feedcaches muss aus der persönlichen Website oder Inhaltswebsite lesen. Wenn die Benutzerprofildienst-Anwendung in einer anderen Farm ausgeführt wird, sendet sie eine OAuth-Anforderung an die Webanwendung "Meine Websites" oder die Inhaltswebanwendung, um die Benutzer- oder Websitefeeddaten in den Cache zu lesen.
Bevor Sie beginnen
Für die Prozedur in diesem Artikel müssen Sie Folgendes bereits konfiguriert haben:
- Freigeben der Benutzerprofildienstanwendung zwischen einer nutzenden und einer Veröffentlichungsfarm, wie unter Freigeben von Dienstanwendungen farmübergreifend in SharePoint Server dokumentiert.
- Konfigurieren der Anwendungen für Abonnementeinstellungen und App-Verwaltungsdienst auf Veröffentlichungs- und Nutzungsfarmen, wie im Abschnitt "Konfigurieren der Abonnementeinstellungen und App-Verwaltungsdienstanwendungen" dieses Artikels dokumentiert
Vergewissern Sie sich, dass Sie über die folgenden Mitgliedschaften verfügen:
- Feste Serverrolle securityadmin auf der SQL Server-Instanz.
- Feste Datenbankrolle db_owner auf allen Datenbanken, die aktualisiert werden sollen.
- Mitglied der integrierten Gruppe Administratoren auf dem Server, auf dem Sie die PowerShell-Cmdlets ausführen.
Mit dem Cmdlet Add-SPShellAdmin kann ein Administrator die Berechtigung zur Verwendung von SharePoint Server-Cmdlets gewähren.
Hinweis
[!HINWEIS] Wenn Sie über keine Berechtigungen verfügen, kontaktieren Sie Ihren Setup-Administrator oder SQL Server-Administrator, um die Berechtigungen anzufordern. Weitere Informationen zu PowerShell-Berechtigungen finden Sie unter Add-SPShellAdmin.
Konfigurieren einer Server-zu-Server-Authentifizierung zwischen den Veröffentlichungs- und Nutzungsfarmen
Im folgenden Verfahren wird beschrieben, wie Sie die Server-zu-Server-Authentifizierung zwischen Veröffentlichung und Nutzung von Farmen konfigurieren und nur die erforderlichen Berechtigungen erteilen, damit Features für soziale Netzwerke funktionieren. Jede Farm behält ihren eigenen, eindeutigen Authentifizierungsbereich.
Autorisieren der Farm zum Senden von OAuth-Anforderungen an die Farm, die die MySites-Webanwendung hostet
Starten Sie auf einem SharePoint-Server in der Farm, auf dem die Webanwendung MySites ausgeführt wird (bei der es sich möglicherweise nicht um die Veröffentlichungsfarm handelt), starten Sie die SharePoint-Verwaltungsshell, und führen Sie dieses PowerShell-Skript aus, um die farm zu registrieren, die nutzende Farm als vertrauenswürdigen Aussteller zu registrieren, ihren App-Prinzipal abzurufen und ihr die erforderlichen Autorisierungen zu gewähren:
# Register the consuming farm as a trusted issuer using information in its metadata file
$trustedIssuer = New-SPTrustedSecurityTokenIssuer -MetadataEndpoint "https://<ConsumingFarmWinClaimsWebApp>/_layouts/15/metadata/json/1" -Name "<ConsumingFarmFriendlyName>"
# Get the app principal and set required authorizations
$mySiteHost = Get-SPWeb "http://<MySiteHostUrl/"
$appPrincipal = Get-SPAppPrincipal -Site $mySiteHost -NameIdentifier $trustedIssuer.NameId
# Grant permissions AppOnly and Write on the MySite host
Set-SPAppPrincipalPermission -EnableAppOnlyPolicy -Site $mySiteHost -AppPrincipal $appPrincipal -Scope SiteSubscription -Right Write
# Grant permissions Manage on the PrivateAPI and Read on the SocialPermissionProvider
$privateAPITypeId = New-Object -TypeName System.Guid ("a2ccc2e2-1703-4bd9-955f-77b2550d6f0d")
$socialPermissionProviderId = New-Object -TypeName System.Guid ("fcaec196-a98c-4f8f-b60f-e1a82272a6d2")
$mgr = New-Object -TypeName Microsoft.SharePoint.SPAppPrincipalPermissionsManager ($mySiteHost)
$mgr.AddSiteSubscriptionPermission($appPrincipal, $privateAPITypeId, [Microsoft.SharePoint.SPAppPrincipalPermissionKind]::Manage)
$mgr.AddSiteSubscriptionPermission($appPrincipal, $socialPermissionProviderId, [Microsoft.SharePoint.SPAppPrincipalPermissionKind]::Read)
Autorisieren der Veröffentlichungsfarm zum Senden von OAuth-Anforderungen an die nutzende Farm
Starten Sie auf einem SharePoint-Server in der farm, die die Nutzung nutzt, die SharePoint-Verwaltungsshell, und führen Sie dieses PowerShell-Skript aus, um die Veröffentlichungsfarm als vertrauenswürdigen Aussteller zu registrieren, ihren App-Prinzipal abzurufen und ihr die erforderlichen Autorisierungen zu gewähren:
# Register the publishing farm as a trusted issuer using information in its metadata file
$trustedIssuer = New-SPTrustedSecurityTokenIssuer -MetadataEndpoint "https://<PublishingFarmWinClaimsWebApp>/_layouts/15/metadata/json/1" -Name "<PublishingFarmFriendlyName>"
# Get the app principal
$centralAdminWeb = Get-SPWeb "http://<ConsumingFarmCentralAdminURL/"
$appPrincipal = Get-SPAppPrincipal -Site $centralAdminWeb -NameIdentifier $trustedIssuer.NameId
# Grant app only permission and Read on the SiteSubscription
Set-SPAppPrincipalPermission -EnableAppOnlyPolicy -AppPrincipal $appPrincipal -Site $centralAdminWeb -Scope SiteSubscription -Right Read
# Grant permissions Manage on the PrivateAPI
$privateAPITypeId = New-Object -TypeName System.Guid ("a2ccc2e2-1703-4bd9-955f-77b2550d6f0d")
$mgr = New-Object -TypeName Microsoft.SharePoint.SPAppPrincipalPermissionsManager ($centralAdminWeb)
$mgr.AddSiteSubscriptionPermission($appPrincipal, $privateAPITypeId, [Microsoft.SharePoint.SPAppPrincipalPermissionKind]::Manage)
Siehe auch
Konzepte
Freigeben von Dienstanwendungen für mehrere Farmen in SharePoint Server
Authentifizierungsübersicht für SharePoint Server
Planen der Server-zu-Server-Authentifizierung in SharePoint Server