Beschränken oder Ermöglichen des Zugriffs auf eine Dienstanwendung in SharePoint Server
GILT FÜR:2013 2016 2019 Subscription Edition SharePoint in Microsoft 365
In SharePoint Server können Sie den Zugriff auf eine Dienstanwendung einschränken, damit sie nur für die angegebenen Webanwendungen verfügbar ist.
Standardmäßig sind alle Dienstanwendungen in der lokalen Serverfarm für alle Webanwendungen in der lokalen Serverfarm verfügbar. Unter Umständen empfiehlt es sich, den Zugriff auf eine Dienstanwendung einzuschränken, wenn Sie mehrere Kunden in der gleichen Farm hosten und die Dienstanwendungen eines Kunden von der Webanwendung eines anderen Kunden trennen möchten.
Wenn Sie den Zugriff auf eine Dienstanwendung einschränken und diese später für die gesamte Farm verfügbar machen möchten, können Sie die Einschränkung entfernen.
Einschränken des Zugriffs auf eine Dienstanwendung
Entfernen Sie zum Einschränken des Zugriffs auf die Dienstanwendung Dienstkonten aus der Dienstanwendung. Umgekehrt können Sie zugriff auf eine Dienstanwendung gewähren, indem Sie der Dienstanwendung Dienstkonten hinzufügen. Diese Aufgaben können mithilfe der Zentraladministration oder mithilfe von PowerShell ausgeführt werden.
Sie müssen die folgenden Aufgaben ausführen, um den Zugriff auf eine Dienstanwendung einzuschränken:
Fügen Sie der Dienstanwendung ein bestimmtes Dienstkonto hinzu.
Entfernen Sie die ID der lokalen Farm aus der Dienstanwendung.
In den Verfahren in diesem Artikel wird beschrieben, wie Sie den Zugriff auf eine Dienstanwendung einschränken oder wiederherstellen. Sie können jedoch die Schritte in den Verfahren ausführen, um jeder Dienstanwendung ein beliebiges Dienstkonto hinzuzufügen oder ein Beliebiges Dienstkonto aus einer beliebigen Dienstanwendung zu entfernen.
Beispielsweise wird im Verfahren So stellen Sie den Zugriff auf eine Dienstanwendung für die gesamte lokale Farm mithilfe der Zentraladministration wieder her explizit beschrieben, wie Sie einer Dienstanwendung die ID der lokalen Farm hinzufügen. Mit diesem Verfahren können Sie einer Dienstanwendung jedes andere Dienstkonto hinzufügen. Dazu geben Sie anstelle der ID der lokalen Farm das entsprechende Dienstkonto an.
Die ID der lokalen Farm ermöglicht standardmäßig in der gesamten lokalen Farm den Zugriff auf die Dienstanwendung. Deshalb ist es nicht notwendig, einer Dienstanwendung auch explizite lokale Webanwendungsberechtigungen zu erteilen, außer Sie entfernen die ID der lokalen Farm.
Wenn Sie einer Dienstanwendung Berechtigungen erteilen möchten, müssen Sie das entsprechende Dienstkonto abrufen und bereitstellen. Für eine Webanwendung wird dieses Konto auch als Anwendungspool-Identitätskonto bezeichnet.
Nachdem Sie einem Dienstkonto Berechtigungen erteilt und die ID der lokalen Farm aus einer Dienstanwendung entfernt haben, haben nur Webanwendungen, die vom zugewiesenen Dienstkonto verwaltet werden, Zugriff auf die Dienstanwendung. Sie können einer Dienstanwendung mehrere Webanwendungen (mit unterschiedlichen Verwaltungsdienstkonten) zuweisen, indem Sie diese Verfahren wiederholen und der Dienstanwendung die verschiedenen Webanwendungs-Dienstkonten hinzufügen.
Achtung
Wenn Sie die ID der lokalen Farm aus einer Dienstanwendung entfernen und diesem Dienstkonto kein anderes Dienstkonto zuweisen, ist das Dienstkonto für alle Webanwendungen nicht mehr verfügbar.
Einschränken des Zugriffs auf eine Dienstanwendung mithilfe der Zentraladministration
Führen Sie diese Schritte aus, um den Zugriff auf eine Dienstanwendung mithilfe der die Website für die SharePoint-Zentraladministration einzuschränken:
Rufen Sie das Webanwendungs-Dienstkonto ab.
Fügen Sie der Dienstanwendung das Webanwendungs-Dienstkonto hinzu.
Entfernen Sie die ID der lokalen Farm aus der Dienstanwendung.
So rufen Sie ein Webanwendungs-Dienstkonto mithilfe der Zentraladministration ab
Vergewissern Sie sich, dass das Benutzerkonto, mit dem dieses Verfahren ausgeführt wird, Mitglied der SharePoint-Gruppe "Farmadministratoren" ist.
Klicken Sie auf der Homepage der Zentraladministration im Abschnitt Sicherheit auf Dienstkonten konfigurieren.
Wählen Sie auf der Seite Dienstkonten die Dienste und die Webanwendungskomponente in der ersten Dropdownliste aus.
Das Dienstkonto wird in der Liste Wählen Sie ein Konto für diese Komponente aus angezeigt. Notieren Sie sich den Namen des Dienstkontos, da Sie es im nächsten Verfahren benötigen.
Klicken Sie auf Abbrechen, um die Seite Dienstkonten zu beenden, ohne Änderungen vorzunehmen.
So können Sie mithilfe der Zentraladministration Dienstkonten Berechtigungen für den Zugriff auf eine Dienstanwendung erteilen und entfernen
Vergewissern Sie sich, dass das Benutzerkonto, mit dem dieses Verfahren ausgeführt wird, Mitglied der SharePoint-Gruppe Farmadministratoren ist.
Klicken Sie auf der Homepage der Zentraladministration im Abschnitt Anwendungsverwaltung auf Dienstanwendungen verwalten.
Klicken Sie auf der Seite Dienstanwendungen verwalten auf die Zeile mit der Dienstanwendung, für die Sie Berechtigungen zuweisen möchten.
Das Menüband wird aktiviert.
Klicken Sie auf dem Menüband in der Gruppe Freigabe auf Berechtigungen.
Geben Sie im Dialogfeld Verbindungsberechtigungen den Dienstkontonamen ein, den Sie im vorherigen Verfahren abgerufen haben, und klicken Sie dann auf Hinzufügen.
Stellen Sie sicher, dass der neu hinzugefügte Dienstkontoname im mittleren Bereich ausgewählt ist. Aktivieren Sie anschließend im unteren Bereich das entsprechende Kontrollkästchen, um die erforderliche Berechtigungsstufe bereitzustellen.
Klicken Sie im mittleren Bereich auf Lokale Farm, und klicken Sie anschließend auf Entfernen.
Stellen Sie sicher, dass auf der Seite Verbindungsberechtigungen nun nur das Dienstkonto aufgelistet wird, mit dem auf die Dienstanwendung zugegriffen werden soll, und dass das Dienstkonto über die erforderlichen Berechtigungen für die Dienstanwendung verfügt. Klicken Sie auf OK, um die Berechtigungen zu ändern, oder klicken Sie auf Abbrechen, um die Aufgabe zu beenden, ohne Änderungen vorzunehmen.
Durch Ausführen dieses Verfahrens können Sie Berechtigungen für beliebige Dienstkonten gewähren oder entfernen. Um die lokale Farm-ID mithilfe von CentralAdmin_2nd in der Dienstanwendung wiederherzustellen, ist ein zusätzlicher Schritt erforderlich, der nicht für andere Dienstkonten gilt. Informationen dazu finden Sie weiter unten in diesem Artikel unter Wiederherstellen des farmweiten Zugriffs auf eine Dienstanwendung .
Einschränken des Zugriffs auf eine Dienstanwendung mithilfe von Microsoft PowerShell
Bei allen Verfahren in diesem Abschnitt wird davon ausgegangen, dass Sie über die entsprechenden Berechtigungen verfügen.
Der Prozess zum Einschränken des Zugriffs auf eine Dienstanwendung mithilfe von PowerShell ist komplexer als die Verwendung der Zentraladministration. In PowerShell werden einige Prozeduren verwendet, um Informationen für die Eingabe in späteren Prozeduren zu sammeln und zu speichern.
Nachdem Sie PowerShell gestartet haben, sehen die restlichen Schritte zum Einschränken des Zugriffs auf eine Dienstanwendung wie folgt aus:
Rufen Sie die ID der lokalen Farm ab.
Rufen Sie das Webanwendungs-Dienstkonto ab.
Erstellen Sie einen neuen Forderungsprinzipal, der das Webanwendungs-Dienstkonto enthält.
Rufen Sie das Sicherheitsobjekt der Dienstanwendung ab.
Fügen Sie dem Sicherheitsobjekt der Dienstanwendung das Webanwendungs-Dienstkonto hinzu.
Entfernen Sie die ID der lokalen Farm aus dem Sicherheitsobjekt der Dienstanwendung.
Weisen Sie der Dienstanwendung das aktualisierte Sicherheitsobjekt zu.
Zeigen Sie die aktualisierten Berechtigungen an, und überprüfen Sie sie.
So starten Sie eine Microsoft PowerShell-Sitzung
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.
Administratorgruppe auf dem Server, auf dem die PowerShell-Cmdlets ausgeführt werden.
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.
Starten Sie die SharePoint-Verwaltungsshell.
So rufen Sie mithilfe von Microsoft PowerShell ein Webanwendungs-Dienstkonto ab und erstellen einen neuen Forderungsprinzipal
Geben Sie an der PowerShell-Eingabeaufforderung den folgenden Befehl ein, um das Dienstkonto (d. h., das Anwendungspool-Identitätskonto) einer Webanwendung abzurufen:
$webapp = Get-SPWebApplication <http://WebApplication> $webApp.ApplicationPool.UserName
Dabei <http://WebApplication> ist die Webanwendungs-URL.
Der Name des Webanwendungs-Dienstkontos wird an der Eingabeaufforderung angezeigt.
Geben Sie den folgenden Befehl ein, um einen neuen Forderungsprinzipal zu erstellen:
$principal = New-SPClaimsPrincipal <ServiceAccount> -IdentityType WindowsSamAccountName
Dabei <ist ServiceAccount> der Benutzername (in form von jane@contoso.com oder contoso\jane), der durch Ausführen des vorherigen Befehls abgerufen wurde. Die $principal Variable enthält den neuen Anspruchsprinzipal.
So rufen Sie das Sicherheitsobjekt der Dienstanwendung ab
Geben Sie die folgenden Befehl ein, um das Sicherheitsobjekt der Dienstanwendung abzurufen. Die variable $security speichert das Sicherheitsobjekt der Dienstanwendung.
$spapp = Get-SPServiceApplication -Name "<ServiceApplicationDisplayName>" $spguid = $spapp.id $security = Get-SPServiceApplicationSecurity $spguid
Dabei <ist ServiceApplicationDisplayName> der Anzeigename der Dienstanwendung.
Wichtig
[!WICHTIGER HINWEIS] Sie müssen den Anzeigenamen in Anführungszeichen einschließen, und die Eingabe muss genau mit dem Anzeigenamen der Dienstanwendung übereinstimmen. Hierzu zählt auch die Groß-/Kleinschreibung. Wenn mehrere Dienstanwendungen mit dem gleichen Anwendungsnamen vorhanden sind (davon wird abgeraten), können Sie das Get-SPServiceApplication -Cmdlet ohne Argumente ausführen, um alle Dienstanwendungen anzuzeigen. Anschließend können Sie die Dienstanwendung direkt anhand der GUID identifizieren.
Get-SpServiceApplication
Alle Dienstanwendungen werden aufgelistet.
$spapp = Get-SpserviceApplication -Identity <GUID> $spguid = $spapp.id
Dabei <ist GUID> die GUID für die Dienstanwendung, für die Sie Berechtigungen aktualisieren möchten.
So aktualisieren Sie das Sicherheitsobjekt der Dienstanwendung mithilfe der bevorzugten Berechtigungen
Der erste Schritt zum Aktualisieren des Dienstanwendungssicherheitsobjekts besteht darin, den neuen Anspruchsprinzipal $principal dem Sicherheitsobjekt der Dienstanwendung $security hinzuzufügen. Geben Sie hierzu folgenden Befehl ein:
Grant-SPObjectSecurity $security $principal -Rights "<Rights>"
Wobei <Rechte> die Berechtigungen sind, die Sie erteilen möchten. Typically, this will be Full Control. The available permissions can vary between service applications.
Wenn Sie die Berechtigung Vollzugriff nicht gewähren möchten und Ihnen nicht bekannt ist, welche Berechtigungen der Dienstanwendung zugewiesen werden können, können Sie die folgenden Befehle ausführen, um die Zeichenfolgen mit den verfügbaren Berechtigungen zurückzugeben:
$rightslist = Get-SPServiceApplicationSecurity $spapp $rightslist.NamedAccessRights
Um die lokale Farm-ID (die in der variablen $farmID gespeichert ist) aus dem Sicherheitsobjekt der Dienstanwendung $security zu entfernen, geben Sie den folgenden Befehl ein:
Revoke-SPObjectSecurity $security $farmID
Geben Sie die folgenden Befehle ein, um der Dienstanwendung das aktualisierte $security Sicherheitsobjekt zuzuweisen und zu bestätigen, dass das Sicherheitsobjekt für die Dienstanwendung entsprechend aktualisiert wurde:
Set-SPServiceApplicationSecurity $spapp -ObjectSecurity $security (Get-SPServiceApplicationSecurity $spapp).AccessRules
Mithilfe dieser Verfahren können Sie einer Dienstanwendung ein beliebiges Dienstkonto hinzufügen oder daraus entfernen.
Wiederherstellen des Zugriffs auf eine Dienstanwendung auf der Farmebene
Sie können den farmweiten Zugriff auf eine Dienstanwendung wiederherstellen, indem Sie der Dienstanwendung die ID der lokalen Farm hinzufügen. Hierfür können Sie die Zentraladministration oder PowerShell-Befehle verwenden. Zum Abrufen der ID der lokalen Farm müssen Sie jedoch PowerShell verwenden.
So rufen Sie die ID der lokalen Farm mithilfe von PowerShell ab
Dieses Verfahren beginnt nach Schritt 4 des Verfahrens So starten Sie eine Microsoft PowerShell-Sitzung.
Der folgende Befehl ruft die lokale Farm-ID ab, speichert sie in der variablen $farmID und zeigt die ID an der Eingabeaufforderung an:
$farmID = Get-SPFarm | select id
Wenn Sie den farmweiten Zugriff mithilfe der Zentraladministration wiederherstellen möchten, kopieren Sie diesen Wert für die Verwendung im nachfolgenden Verfahren in die Zwischenablage.
Wenn Sie den farmweiten Zugriff auf die Dienstanwendung mithilfe von PowerShell wiederherstellen möchten, geben Sie die folgenden zusätzlichen Befehle an der PowerShell-Eingabeaufforderung ein. Die abgerufenen Informationen werden Sie im nachfolgenden Verfahren verwenden.
$claimProvider = (Get-SPClaimProvider System).ClaimProvider $principal = New-SPClaimsPrincipal -ClaimType "http://schemas.microsoft.com/sharepoint/2009/08/claims/farmid" -ClaimProvider $claimProvider -ClaimValue $farmid
So stellen Sie den Zugriff auf eine Dienstanwendung für die gesamte lokale Farm mit der Zentraladministration wieder her
Führen Sie die Schritte 1 bis 3 des Verfahrens So gewähren und entfernen Sie Berechtigungen für den Zugriff auf eine Dienstanwendung für Dienstkonten mithilfe der Zentraladministration aus.
Kopieren Sie im Dialogfeld Verbindungsberechtigungen die lokale Farm-ID, die Sie im vorherigen Verfahren abgerufen haben, und klicken Sie dann auf Hinzufügen.
Stellen Sie sicher, dass die ID der lokalen Farm im mittleren Bereich ausgewählt ist. Aktivieren Sie im unteren Bereich das Kontrollkästchen Vollzugriff.
Klicken Sie auf OK, um den farmweiten Zugriff auf die Dienstanwendung wiederherzustellen, oder klicken Sie auf Abbrechen, um die Aufgabe zu beenden, ohne Änderungen vorzunehmen.
So stellen Sie den Zugriff auf eine Dienstanwendung für die gesamte lokale Farm mithilfe von Microsoft PowerShell wieder her
Dieses Verfahren beginnt nach Schritt 2 der Prozedur Zum Abrufen der lokalen Farm-ID mithilfe von Windows PowerShell.
Geben Sie die folgenden Befehle ein, um die abgerufene ID der lokalen Farm für das Sicherheitsobjekt der Dienstanwendung wiederherzustellen:
$spapp = Get-SPServiceApplication -Name "<ServiceApplicationDisplayName>" $spguid = $spapp.id $security = Get-SPServiceApplicationSecurity $spguid Grant-SPObjectSecurity -Identity $security -Principal $Principal -Rights "Full Control" Set-SPServiceApplicationSecurity $spguid -ObjectSecurity $security
Dabei <ist ServiceApplicationDisplayName> der Anzeigename der Dienstanwendung.
Wichtig
[!WICHTIGER HINWEIS] Sie müssen den Anzeigenamen in Anführungszeichen einschließen, und die Eingabe muss genau mit dem Anzeigenamen der Dienstanwendung übereinstimmen. Hierzu zählt auch die Groß-/Kleinschreibung. Wenn mehrere Dienstanwendungen mit dem gleichen Anwendungsnamen vorhanden sind (davon wird abgeraten), können Sie das Get-SPServiceApplication -Cmdlet ohne Argumente ausführen, um alle Dienstanwendungen anzuzeigen. Anschließend können Sie die Dienstanwendung direkt anhand der GUID identifizieren.
Microsoft PowerShell-Codebeispiele
Im folgenden Beispiel möchte der Administrator den Zugriff auf die Dienstanwendung "Contoso BDC" auf die http://contoso/hawaii Webanwendung beschränken, die vom Dienstkonto "contoso\jane" verwaltet wird. Durch Hinzufügen von "contoso\jane" und Entfernen des lokalen Farmdienstkontos aus der Dienstanwendung ist "Contoso BDC" auf die Webanwendungen beschränkt, die vom Dienstkonto "contoso\jane" verwaltet werden – in diesem Fall: http://contoso/hawaii.
$farmid = Get-SPFarm | select id
$claimProvider = (Get-SPClaimProvider System).ClaimProvider
$farmappId = New-SPClaimsPrincipal -ClaimType "http://schemas.microsoft.com/sharepoint/2009/08/claims/farmid" -ClaimProvider $claimProvider -ClaimValue $farmid
webapp = get-spwebapplication http://contoso
$webapp.applicationpool
$principal = New-SPClaimsPrincipal contoso/jane -IdentityType WindowsSamAccountName
$spapp = Get-SPServiceApplication -Name "Contoso BDC"
$spguid = $spapp.id
$security = Get-SPServiceApplicationSecurity $spguid
Grant-SPObjectSecurity $security $principal -Rights "Full Control"
Revoke-SPObjectSecurity $security $farmappId
Set-SPServiceApplicationSecurity $spguid -ObjectSecurity $security
(Get-SPServiceApplicationSecurity $spguid).AccessRules
Im folgenden Beispiel wird der Zugriff auf die Dienstanwendung "Contoso BDC" für alle Webanwendungen in der lokalen Farm wiederhergestellt.
$farmid = Get-SPFarm | select id
$claimProvider = (Get-SPClaimProvider System).ClaimProvider
$farmappId = New-SPClaimsPrincipal -ClaimType "http://schemas.microsoft.com/sharepoint/2009/08/claims/farmid" -ClaimProvider $claimProvider -ClaimValue $farmid
$spapp = Get-SPServiceApplication -Name "Contoso BDC"
$spguid = $spapp.id
$security = Get-SPServiceApplicationSecurity $spguid
Grant-SPObjectSecurity -Identity $security -Principal $farmappId -Rights "Full Control"
Set-SPServiceApplicationSecurity $spguid -ObjectSecurity $security
(Get-SPServiceApplicationSecurity $spguid).AccessRules
Siehe auch
Konzepte
Kontoberechtigungen und Sicherheitseinstellungen in SharePoint Server 2016 und 2019
Weitere Ressourcen
Erstellen einer Webanwendung in SharePoint Server
Get-SPServiceApplicationSecurity