Konfigurieren der Server-zu-Server-Authentifizierung zwischen Veröffentlichungs- und Nutzungsfarmen
GILT FÜR: 2013
2016
2019
Abonnementedition
SharePoint in Microsoft 365
Wenn eine Farm die Benutzerprofildienstanwendung einer Veröffentlichungsfarm nutzt, SharePoint Anforderungen mithilfe der Server-zu-Server-Authentifizierung im Auftrag 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 eine OAuth-Anforderung an die Webanwendung "Meine Websites" im Namen des Benutzers.
Erstellen oder antworten Sie auf 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" fordert die Inhaltswebanwendung im Namen des Benutzers auf, den Beitrag oder die Antwort zu schreiben.
Eine Benutzerprofildienst-Anwendungsaufgabe zum Erneuten Auffüllen des Feedcaches muss von 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 das Verfahren in diesem Artikel müssen Sie Folgendes bereits konfiguriert haben:
- Die Benutzerprofildienstanwendung wurde für eine Farm freigegeben, die den Dienst in Anspruch nimmt und eine Veröffentlichungsfarm verwendet, wie in share service applications across farms in SharePoint Serverdokumentiert.
- Konfigurierte die Abonnement-Einstellungen- und App-Verwaltungsdienstanwendungen in Veröffentlichungs- und Nutzungsfarmen, wie im Abschnitt "Konfigurieren der Abonnement-Einstellungen- und App-Verwaltungsdienstanwendungen" dieses Artikels beschrieben.
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
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öffentlichungs- und Nutzungsfarmen konfigurieren und nur die erforderlichen Berechtigungen erteilen, damit Features für soziale Netzwerke funktionieren. Jede Farm behält ihren eigenen, eindeutigen Authentifizierungsbereich bei.
Autorisieren der Farm, die OAuth-Anforderungen an die Farm sendet, in der die MySites-Webanwendung gehostet wird
Starten Sie auf einem SharePoint Server in der Farm, auf dem die MySites-Webanwendung ausgeführt wird (die möglicherweise nicht die Veröffentlichungsfarm ist), die SharePoint Verwaltungsshell, und führen Sie dieses PowerShell-Skript aus, um die Farm als vertrauenswürdigen Herausgeber zu registrieren, den App-Prinzipal abzurufen und ihm die erforderlichen Autorisierungen zu erteilen:
# 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 farm, die den Dienst in Anspruch nimmt
Starten Sie in einem SharePoint Server in der Farm, die den Dienst in Anspruch nimmt, die SharePoint Verwaltungsshell, und führen Sie dieses PowerShell-Skript aus, um die Veröffentlichungsfarm als vertrauenswürdigen Aussteller zu registrieren, den App-Prinzipal abzurufen und ihm die erforderlichen Autorisierungen zu erteilen:
# 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