Einschränken oder Aktivieren des Zugriffs auf eine Dienstanwendung (SharePoint Server 2010)

 

Gilt für: SharePoint Foundation 2010, SharePoint Server 2010

Letztes Änderungsdatum des Themas: 2016-11-30

In Microsoft SharePoint Server 2010 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. Sie können jedoch den Zugriff auf eine Dienstanwendung einschränken, damit sie nur für die angegebenen Webanwendungen verfügbar ist. Dies kann sich als hilfreiche Strategie erweisen, wenn Sie mehrere Kunden in derselben 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.

In diesem Artikel wird beschrieben, wie Sie den Zugriff auf eine Dienstanwendung einschränken, indem Sie Dienstkonten hinzufügen und entfernen. Darüber hinaus wird erläutert, wie Sie den Zugriff auf eine Dienstanwendung in der gesamten lokalen Farm wiederherstellen.

Wichtig

Es wird dringend empfohlen, die Sicherheit und die Diensteinfrastruktur zu planen, bevor Sie den Zugriff auf Dienstanwendungen einschränken.

Informationen zum Planen der Dienstarchitektur in SharePoint Server 2010 finden Sie in den folgenden Artikeln:

Inhalt dieses Artikels:

Einschränken des Zugriffs auf eine Dienstanwendung

Den Zugriff auf eine Dienstanwendung können Sie einschränken, indem Sie Dienstkonten aus der Dienstanwendung entfernen. Durch Hinzufügen von Dienstkonten zur Dienstanwendung können Sie dagegen den Zugriff auf eine Dienstanwendung zulassen. Diese Aufgaben führen Sie mit der Zentraladministration oder mit Windows PowerShell 2,0 aus.

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 allerdings 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

Sie müssen die folgenden Schritte ausführen, um den Zugriff auf eine Dienstanwendung mithilfe der 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 den Namen der Webanwendung 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 im Menüband 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 den Vorgang zu beenden, ohne Änderungen vorzunehmen.

Mithilfe dieses Verfahrens können Sie für ein beliebiges Dienstkonto Berechtigungen erteilen und entfernen.

Hinweis

Zum Wiederherstellen der ID der lokalen Farm für die Dienstanwendung mithilfe der Zentraladministration ist ein zusätzlicher Schritt erforderlich, der für andere Dienstkonten nicht zutrifft. Weitere Informationen hierzu finden Sie weiter unten in diesem Artikel unter Wiederherstellen des farmweiten Zugriffs auf eine Dienstanwendung.

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

Bei allen Verfahren in diesem Abschnitt wird davon ausgegangen, dass Sie über die entsprechenden Berechtigungen verfügen und das Windows PowerShell 2,0-Eingabeaufforderungsfenster gemäß der Beschreibung im Verfahren So starten Sie eine Windows PowerShell-Sitzung weiter unten in diesem Abschnitt geöffnet haben.

Die Vorgehensweise zum Einschränken des Zugriffs auf eine Dienstanwendung mithilfe von Windows PowerShell 2,0 ist komplexer als die Ausführung derselben Aufgabe mithilfe der Zentraladministration. In Windows PowerShell 2,0 werden Sie einige Verfahren verwenden, um Informationen für die Eingabe in späteren Verfahren zu sammeln und zu speichern.

Nachdem Sie Windows PowerShell 2,0 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 mit den bevorzugten Berechtigungen

So starten Sie eine Windows PowerShell-Sitzung

  1. Stellen Sie sicher, dass die folgenden Mindestanforderungen erfüllt sind: Sie sind Mitglied der Rolle SharePoint_Shell_Access für die Konfigurationsdatenbank. Außerdem sind Sie Mitglied der lokalen Gruppe WSS_ADMIN_WPG für den Computer, auf dem SharePoint Server 2010 installiert ist.

  2. Klicken Sie im Startmenü auf Alle Programme.

  3. Klicken Sie auf Microsoft SharePoint 2010-Produkte.

  4. Klicken Sie auf SharePoint 2010-Verwaltungsshell.

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

  1. Geben Sie an der Windows PowerShell 2,0-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 oder contoso\jane), der durch Ausführen des vorherigen Befehls abgerufen wurde. Die Variable $principal enthält den neuen Forderungsprinzipal.

So rufen Sie das Sicherheitsobjekt der Dienstanwendung ab

  1. Geben Sie die folgenden Befehle ein, um das Sicherheitsobjekt der Dienstanwendung abzurufen. Das Sicherheitsobjekt der Dienstanwendung wird in der Variablen $security 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 genau 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 mit den 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 sind <Rights> die Berechtigungen, die Sie erteilen möchten. In der Regel ist dies die Berechtigung Vollzugriff. Die verfügbaren Berechtigungen können zwischen den Dienstanwendungen variieren.

    Tipp

    Wenn Sie nicht die Berechtigung Vollzugriff erteilen möchten und nicht wissen, welche Berechtigungen der Dienstanwendung erteilt werden können, geben Sie durch Ausführen der folgenden Befehle die verfügbaren Berechtigungszeichenfolgen zurück:
    $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 Windows PowerShell 2,0-Befehle verwenden. Zum Abrufen der ID der lokalen Farm müssen Sie jedoch Windows PowerShell 2,0 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 Windows 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 Windows PowerShell 2,0 wiederherstellen möchten, geben Sie die folgenden zusätzlichen Befehle an der Windows PowerShell 2,0-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 den Vorgang zu beenden, ohne Änderungen vorzunehmen.

So stellen Sie den Zugriff auf eine Dienstanwendung für die gesamte lokale Farm mithilfe von Windows 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 $farmID -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 genau 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.

Windows 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 
$principal = 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 $farmaccount
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 
$principal = 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 $farmaccount -Rights "Full Control"
Set-SPServiceApplicationSecurity $spguid -ObjectSecurity $security
(Get-SPServiceApplicationSecurity $spguid).AccessRules

See Also

Reference

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

Concepts

Konfigurieren der Forderungsauthentifizierung (SharePoint Server 2010)
Hinzufügen oder entfernen einer Dienstanwendungsverbindung mit einer Webanwendung (SharePoint Server 2010)

Other Resources

Hinzufügen oder Löschen der Verbindung einer Dienstanwendung mit einer Webanwendung (SharePoint Foundation 2010)