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

 

**Gilt für:**SharePoint Foundation 2013, SharePoint Server 2013, SharePoint Server 2016

**Letztes Änderungsdatum des Themas:**2018-03-02

Zusammenfassung: Informationen zum Einschränken des Zugriffs auf eine Dienstanwendung durch Hinzufügen und Entfernen von Dienstkonten sowie zum Wiederherstellen des Zugriffs auf eine Dienstanwendung in der gesamten lokalen Farm in SharePoint Server 2016 und SharePoint 2013.

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.

Inhalt dieses Artikels:

  • Einschränken des Zugriffs auf eine Dienstanwendung

  • Wiederherstellen des farmweiten Zugriffs auf eine Dienstanwendung

  • Microsoft PowerShell-Codebeispiele

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.

Hinweis

In den Verfahren in diesem Artikel wird beschrieben, wie Sie den Zugriff auf eine Dienstanwendung einschränken oder wiederherstellen. Mit den Schritten in diesen Verfahren können Sie jedoch einer beliebigen Dienstanwendung ein beliebiges Dienstkonto hinzufügen bzw. ein beliebiges Dienstkonto aus einer beliebigen Dienstanwendung 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.

Warnung

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.

Inhalt dieses Abschnitts:

  • Einschränken des Zugriffs auf eine Dienstanwendung mithilfe der Zentraladministration

  • Einschränken des Zugriffs auf eine Dienstanwendung mithilfe von Windows PowerShell

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.

Verfahren in diesem Abschnitt:

  • So rufen Sie ein Webanwendungs-Dienstkonto mithilfe der Zentraladministration ab

  • So können Sie mithilfe der Zentraladministration Dienstkonten Berechtigungen für den Zugriff auf eine Dienstanwendung erteilen und entfernen

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 Berechtigungen widerrufen

  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.

Auf diese Weise können Sie jedem beliebigen Dienstkonto Berechtigungen erteilen bzw. die Berechtigungen jedes beliebigen Dienstkontos widerrufen. Zum Wiederherstellen der ID der lokalen Farm für die Dienstanwendung mithilfe der CentralAdmin_2nd ist ein zusätzlicher Schritt erforderlich, der für andere Dienstkonten nicht ausgeführt werden muss. Informationen zur Vorgehensweise 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 und das PowerShell-Eingabeaufforderungsfenster gemäß der Beschreibung im Verfahren So starten Sie eine Windows PowerShell-Sitzung weiter unten in diesem Abschnitt geöffnet haben.

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.

Inhalt dieses Abschnitts:

  • So starten Sie eine Windows PowerShell-Sitzung

  • So rufen Sie die ID der lokalen Farm mithilfe von Windows PowerShell ab

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

  • So rufen Sie das Sicherheitsobjekt der Dienstanwendung ab

  • So aktualisieren Sie das Sicherheitsobjekt der Dienstanwendung mithilfe der bevorzugten Berechtigungen

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

    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 SharePoint 15-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 ist <http://WebApplication> die URL der Webanwendung.

    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 (im Format jane@contoso.com bzw. contoso\jane), der durch Ausführen des vorherigen Befehls abgerufen wurde. Der neue Forderungsprinzipal ist in der $principal-Variablen enthalten.

So rufen Sie das Sicherheitsobjekt der Dienstanwendung ab

  1. Geben Sie die folgenden Befehl ein, um das Sicherheitsobjekt der Dienstanwendung abzurufen. Das Sicherheitsobjekt der Dienstanwendung wird in der $security-Variablen gespeichert.

    $spapp = Get-SPServiceApplication -Name "<ServiceApplicationDisplayName>"
    $spguid = $spapp.id
    $security = Get-SPServiceApplicationSecurity $spguid
    

    Dabei ist *<ServiceApplicationDisplayName>*der Anzeigename der Dienstanwendung.

    Wichtig

    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. Beispiel:
    Get-SpServiceApplication
    Alle Dienstanwendungen werden aufgelistet.
    $spapp = Get-SpserviceApplication -Identity <GUID>
    $spguid = $spapp.id
    Dabei ist <GUID> die GUID der 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 Sicherheitsobjekts der Dienstanwendung besteht im Hinzufügen des neuen Forderungsprinzipals $principal zum Sicherheitsobjekt $security der Dienstanwendung. Geben Sie hierzu folgenden Befehl ein:

    Grant-SPObjectSecurity $security $principal -Rights "<Rights>"
    

    Dabei steht <Rights> für die Berechtigungen, die gewährt werden sollen. Normalerweise handelt es sich hierbei um Vollzugriff. Die verfügbaren Berechtigungen können für die einzelnen Dienstanwendungen variieren.

    Tipp

    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. Geben Sie den folgenden Befehl ein, um die ID der lokalen Farm (die in der Variablen $farmID gespeichert ist) aus dem Sicherheitsobjekt $security der Dienstanwendung zu entfernen:

    Revoke-SPObjectSecurity $security $farmID
    
  3. Geben Sie die folgenden Befehle ein, um der Dienstanwendung das aktualisierte Sicherheitsobjekt $security 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 farmweiten Zugriffs auf eine Dienstanwendung

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.

Inhalt dieses Abschnitts:

  • So rufen Sie die ID der lokalen Farm mithilfe von Windows PowerShell ab

  • So stellen Sie den Zugriff auf eine Dienstanwendung für die gesamte lokale Farm mithilfe der Zentraladministration wieder her

  • So stellen Sie den Zugriff auf eine Dienstanwendung für die gesamte lokale Farm mithilfe von Windows PowerShell wieder her

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 Windows PowerShell-Sitzung.

  2. Mit dem folgenden Befehl wird die ID der lokalen Farm abgerufen, in der Variablen $farmID gespeichert und an der Eingabeaufforderung angezeigt:

    $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 "https://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 mithilfe der Zentraladministration wieder her

  1. Führen Sie die Schritte 1 bis 3 des Verfahrens So können Sie mithilfe der Zentraladministration Dienstkonten Berechtigungen für den Zugriff auf eine Dienstanwendung erteilen und entfernen aus.

  2. Kopieren Sie im Dialogfeld Verbindungsberechtigungen die ID der lokalen Farm, 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 des Verfahrens So rufen Sie die ID der lokalen Farm mithilfe von Windows PowerShell ab.

  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

    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 Webanwendung http://contoso/hawaii einschränken, die vom Dienstkonto contoso\jane verwaltet wird. Durch Hinzufügen von contoso\jane und Entfernen des Dienstkontos für die lokale Farm aus der Dienstanwendung wird "Contoso BDC" auf jene Webanwendungen eingeschrä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 "https://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 "https://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

See also

Create a web application in SharePoint Server
Hinzufügen oder Löschen der Verbindung einer Dienstanwendung mit einer Webanwendung in SharePoint Server
Kontoberechtigungen und Sicherheitseinstellungen in SharePoint Server 2016

Get-SPWebApplication
New-SPClaimsPrincipal
Get-SPServiceApplication
Get-SPServiceApplicationSecurity
Grant-SPObjectSecurity
Revoke-SPObjectSecurity
Set-SPServiceApplicationSecurity
Get-SPFarm
Get-SPClaimProvider