Beschränken oder Ermöglichen des Zugriffs auf eine Dienstanwendung in SharePoint Server

GILT FÜR:yes-img-132013 yes-img-162016 yes-img-192019 yes-img-seSubscription Edition no-img-sopSharePoint 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:

  1. Fügen Sie der Dienstanwendung ein bestimmtes Dienstkonto hinzu.

  2. 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:

  1. Rufen Sie das Webanwendungs-Dienstkonto ab.

  2. Fügen Sie der Dienstanwendung das Webanwendungs-Dienstkonto hinzu.

  3. Entfernen Sie die ID der lokalen Farm aus der Dienstanwendung.

So rufen Sie ein Webanwendungs-Dienstkonto mithilfe der Zentraladministration ab

  1. Vergewissern Sie sich, dass das Benutzerkonto, mit dem dieses Verfahren ausgeführt wird, Mitglied der SharePoint-Gruppe "Farmadministratoren" ist.

  2. Klicken Sie auf der Homepage der Zentraladministration im Abschnitt Sicherheit auf Dienstkonten konfigurieren.

  3. 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.

  4. 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

  1. Vergewissern Sie sich, dass das Benutzerkonto, mit dem dieses Verfahren ausgeführt wird, Mitglied der SharePoint-Gruppe Farmadministratoren ist.

  2. Klicken Sie auf der Homepage der Zentraladministration im Abschnitt Anwendungsverwaltung auf Dienstanwendungen verwalten.

  3. 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.

  4. Klicken Sie auf dem Menüband in der Gruppe Freigabe auf Berechtigungen.

  5. Geben Sie im Dialogfeld Verbindungsberechtigungen den Dienstkontonamen ein, den Sie im vorherigen Verfahren abgerufen haben, und klicken Sie dann auf Hinzufügen.

  6. 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.

  7. Klicken Sie im mittleren Bereich auf Lokale Farm, und klicken Sie anschließend auf Entfernen.

  8. 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. Zum Wiederherstellen der id der lokalen Farm in der Dienstanwendung mithilfe von CentralAdmin_2nd 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:

  1. Rufen Sie die ID der lokalen Farm ab.

  2. Rufen Sie das Webanwendungs-Dienstkonto ab.

  3. Erstellen Sie einen neuen Forderungsprinzipal, der das Webanwendungs-Dienstkonto enthält.

  4. Rufen Sie das Sicherheitsobjekt der Dienstanwendung ab.

  5. Fügen Sie dem Sicherheitsobjekt der Dienstanwendung das Webanwendungs-Dienstkonto hinzu.

  6. Entfernen Sie die ID der lokalen Farm aus dem Sicherheitsobjekt der Dienstanwendung.

  7. Weisen Sie der Dienstanwendung das aktualisierte Sicherheitsobjekt zu.

  8. Zeigen Sie die aktualisierten Berechtigungen an, und überprüfen Sie sie.

So starten Sie eine Microsoft PowerShell-Sitzung

  1. 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.

  2. Starten Sie die SharePoint-Verwaltungsshell.

So rufen Sie mithilfe von Microsoft PowerShell ein Webanwendungs-Dienstkonto ab und erstellen einen neuen Forderungsprinzipal

  1. 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.

  2. 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

  1. 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

  1. 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
    
  2. 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
    
  3. 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

  1. Dieses Verfahren beginnt nach Schritt 4 des Verfahrens So starten Sie eine Microsoft PowerShell-Sitzung.

  2. 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

  1. 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.

  2. Kopieren Sie im Dialogfeld Verbindungsberechtigungen die lokale Farm-ID, die Sie im vorherigen Verfahren abgerufen haben, und klicken Sie dann auf Hinzufügen.

  3. Stellen Sie sicher, dass die ID der lokalen Farm im mittleren Bereich ausgewählt ist. Aktivieren Sie im unteren Bereich das Kontrollkästchen Vollzugriff.

  4. 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

  1. Dieses Verfahren beginnt nach Schritt 2 der Prozedur Zum Abrufen der lokalen Farm-ID mithilfe von Windows PowerShell.

  2. 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

Hinzufügen oder Löschen der Verbindung einer Dienstanwendung mit einer Webanwendung in SharePoint Server

Kontoberechtigungen und Sicherheitseinstellungen in SharePoint Server 2016 und 2019

Weitere Ressourcen

Erstellen einer Webanwendung in SharePoint Server

Get-SPWebApplication

New-SPClaimsPrincipal

Get-SPServiceApplication

Get-SPServiceApplicationSecurity

Grant-SPObjectSecurity

Set-SPServiceApplicationSecurity

Get-SPFarm

Get-SPClaimProvider