Freigeben über


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

 

Gilt für: SharePoint Foundation 2010

Letztes Änderungsdatum des Themas: 2016-11-30

In Microsoft SharePoint Foundation 2010 können Sie den Zugriff auf eine Dienstanwendung einschränken, sodass diese nur für bestimmte Webanwendungen verfügbar ist.

Standardmäßig sind alle Dienstanwendungen in der lokalen Farm für alle Webanwendungen in der lokalen Farm verfügbar. Sie können jedoch den Zugriff auf eine Dienstanwendung einschränken, sodass sie nur für bestimmte Webanwendungen verfügbar ist. Dies kann eine hilfreiche Strategie sein, wenn Sie mehrere Kunden in derselben Farm hosten und die Dienstanwendungen eines Kunden von der Webanwendung eines anderen Kunden isolieren möchten.

Wenn Sie den Zugriff auf eine Dienstanwendung einschränken und sich später entschließen, diese wieder für die gesamte Farm verfügbar zu machen, können Sie die Einschränkung wieder aufheben.

Im vorliegenden Artikel wird beschrieben, wie der Zugriff auf eine Dienstanwendung eingeschränkt wird, indem Dienstkonten hinzugefügt und entfernt werden. Darüber hinaus wird erläutert, wie für die gesamte lokale Farm der Zugriff auf eine Dienstanwendung wieder festgelegt werden kann.

Wichtig

Es wird dringend empfohlen, die Sicherheits- und Dienstinfrastruktur zu planen, bevor Sie den Zugriff auf Dienstanwendungen einschränken.

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

Inhalt dieses Artikels:

  • Einschränken des Zugriffs auf eine Dienstanwendung

  • Wiederherstellen des Zugriffs auf eine Dienstanwendung auf der Farmebene

  • Windows PowerShell-Codebeispiele

Einschränken des Zugriffs auf eine Dienstanwendung

Sie können den Zugriff auf eine Dienstanwendung einschränken, indem Sie Dienstkonten aus der Dienstanwendung entfernen. Umgekehrt können Sie den Zugriff auf eine Dienstanwendung gewähren, indem Sie der Dienstanwendung Dienstkonten hinzufügen. Sie können diese Aufgaben mithilfe der Zentraladministration oder mit Windows PowerShell 2,0 ausführen.

Zum Einschränken des Zugriffs auf eine Dienstanwendung müssen Sie die folgenden Aufgaben ausführen:

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

  2. Entfernen Sie die lokale Farm-ID aus der Dienstanwendung.

Hinweis

Anhand der Verfahren in diesem Artikel wird das Einschränken bzw. das Wiederherstellen des Zugriffs auf eine Dienstanwendung beschrieben. Sie können jedoch die Schritte in diesen Verfahren auch ausführen, um einer Dienstanwendung ein Dienstkonto hinzuzufügen oder um ein Dienstkonto aus einer Dienstanwendung zu entfernen.
Im Verfahren So stellen Sie den Zugriff auf eine Dienstanwendung für die gesamte lokale Farm mit der Zentraladministration wieder her wird beispielsweise explizit beschrieben, wie einer Dienstanwendung die lokale Farm-ID hinzugefügt wird. Sie können anhand dieser Beschreibung jedoch einer Dienstanwendung auch ein beliebiges anderes Dienstkonto hinzufügen. Geben Sie hierzu das entsprechende Dienstkonto anstelle der ID der lokalen Farm an.

Da die lokale Farm-ID standardmäßig den Zugriff auf die Dienstanwendung für die gesamte Farm gewährt, müssen lokale Webanwendungsberechtigungen für eine Dienstanwendung nicht explizit gewährt werden, es sei denn, Sie entfernen auch die lokale Farm-ID.

Um einer Dienstanwendung Berechtigungen zu gewähren, müssen Sie das entsprechende Dienstkonto abrufen und angeben. Für eine Webanwendung wird dieses Konto auch als Konto der Anwendungspoolidentität bezeichnet.

Nachdem Sie einem Dienstkonto Berechtigungen gewährt und die lokale Farm-ID aus einer Dienstanwendung entfernt haben, können nur noch Webanwendungen, die vom zugewiesenen Dienstkonto verwaltet werden, auf die Dienstanwendung zugreifen. Sie können einer Dienstanwendung mehrere Webanwendungen (mit unterschiedlichen verwaltenden Dienstkonten) zuweisen, indem Sie diese Verfahren wiederholt ausführen und die verschiedenen Webanwendungs-Dienstkonten der Dienstanwendung hinzufügen.

Warnung

Wenn Sie die lokale Farm-ID von einer Dienstanwendung entfernen und der betreffenden Dienstanwendung kein anderes Dienstkonto zuweisen, ist sie für sämtliche 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 die folgenden Schritte aus, um den Zugriff auf eine Dienstanwendung mithilfe der Zentraladministration einzuschränken:

  1. Rufen Sie das Webanwendungs-Dienstkonto ab.

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

  3. Entfernen Sie die lokale Farm-ID von der Dienstanwendung.

Verfahren in diesem Abschnitt:

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

  • So gewähren und entfernen Sie Berechtigungen für den Zugriff auf eine Dienstanwendung für Dienstkonten mithilfe der Zentraladministration

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 in der ersten Dropdownliste den Namen der Webanwendung 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 ihn im nächsten Verfahren angeben müssen.

  4. Klicken Sie auf Abbrechen, um die Seite Dienstkonten zu schließen, ohne dass Änderungen vorgenommen werden.

So gewähren und entfernen Sie Berechtigungen für den Zugriff auf eine Dienstanwendung für Dienstkonten mithilfe der Zentraladministration

  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 auf Berechtigungen.

  5. Geben Sie im Dialogfeld Verbindungsberechtigungen den Namen des Dienstkontos ein, den Sie im vorherigen Verfahren abgerufen haben, und klicken Sie anschließend auf Hinzufügen.

  6. Vergewissern Sie sich, dass der Name des neu hinzugefügten Dienstkontos im mittleren Bereich ausgewählt ist, und aktivieren Sie im unteren Bereich das entsprechende Kontrollkästchen, um die entsprechende Berechtigungsebene festzulegen.

  7. Klicken Sie im mittleren Bereich auf Lokale Farm, und klicken Sie dann auf Entfernen.

  8. Vergewissern Sie sich, dass nun auf der Seite Verbindungsberechtigungen nur das Dienstkonto aufgeführt wird, das auf die Dienstanwendung zugreifen 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 abzubrechen und keine Änderungen vorzunehmen.

Durch Ausführen dieses Verfahrens können Sie Berechtigungen für beliebige Dienstkonten gewähren oder entfernen.

Hinweis

Das Wiederherstellen der lokalen Farm-ID für die Dienstanwendung mithilfe der Zentraladministration erfordert einen weiteren Schritt, der für andere Dienstkonten nicht ausgeführt werden muss. Weitere Informationen hierzu finden Sie unter Wiederherstellen des Zugriffs auf eine Dienstanwendung auf der Farmebene an späterer Stelle in diesem Artikel.

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

Für alle Verfahren in diesem Abschnitt wird vorausgesetzt, dass Sie über die entsprechenden Berechtigungen verfügen und das Eingabeaufforderungsfenster von Windows PowerShell 2,0 geöffnet haben. Dies wird im Verfahren So initiieren Sie eine Windows PowerShell-Sitzung später in diesem Abschnitt erläutert.

Das Einschränken des Zugriffs auf eine Dienstanwendung mithilfe von Windows PowerShell 2,0 ist komplexer als die Ausführung derselben Aufgabe mit der Zentraladministration. In Windows PowerShell 2,0 führen Sie einige Verfahren aus, in denen Informationen gesammelt und gespeichert werden, die als Eingabe für darauffolgende Verfahren verwendet werden.

Nach dem Starten von Windows PowerShell 2,0 sind die übrigen Schritte zum Einschränken des Zugriffs auf eine Dienstanwendung auszuführen:

  1. Rufen Sie die lokale Farm-ID 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 lokale Farm-ID aus dem Sicherheitsobjekt der Dienstanwendung.

  7. Weisen Sie das aktualisierte Sicherheitsobjekt der Dienstanwendung zu.

  8. Zeigen Sie die aktualisierten Berechtigungen an und bearbeiten Sie sie gegebenenfalls.

Inhalt dieses Abschnitts:

  • So initiieren Sie eine Windows PowerShell-Sitzung

  • So rufen Sie die lokale Farm-ID mithilfe von Windows Powershell ab

  • So können Sie mithilfe von Windows PowerShell ein Webanwendungs-Dienstkonto abrufen und einen neuen Forderungsprinzipal erstellen

  • So rufen Sie das Sicherheitsobjekt der Dienstanwendung ab

  • So aktualisieren Sie das Sicherheitsobjekt der Dienstanwendung mit den gewünschten Berechtigungen

So initiieren Sie eine Windows PowerShell-Sitzung

  1. Vergewissern Sie sich, 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 Foundation 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 können Sie mithilfe von Windows PowerShell ein Webanwendungs-Dienstkonto abrufen und einen neuen Forderungsprinzipal erstellen

  1. Geben Sie an der Windows PowerShell 2,0-Eingabeaufforderung den folgenden Befehl ein, um das Dienstkonto (d. h. das Konto der Anwendungspoolidentität) 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

    Der Anzeigename muss in Anführungszeichen eingeschlossen werden, und er muss mit dem Anzeigenamen der Dienstanwendung identisch sein. Dabei wird auch die Groß- und Kleinschreibung berücksichtigt. Wenn mehrere Dienstanwendungen mit demselben Anzeigenamen vorhanden sind (dies wird nicht empfohlen), können Sie das Cmdlet Get-SPServiceApplication ohne Argumente ausführen, um alle Dienstanwendungen anzuzeigen. Anschließend können Sie die Dienstanwendung anhand ihrer GUID bestimmen. Weitere Informationen finden Sie unter Get-SPServiceApplication. Beispiel:
    Get-SpServiceApplication
    Alle Dienstanwendungen sind aufgelistet.
    $spapp = Get-SpserviceApplication -Identity <GUID>
    $spguid = $spapp.id
    Dabei ist <GUID> die GUID der Dienstanwendung, für die Berechtigungen aktualisiert werden sollen.

So aktualisieren Sie das Sicherheitsobjekt der Dienstanwendung mit den gewünschten Berechtigungen

  1. Der erste Schritt des Aktualisierens des Sicherheitsobjekts der Dienstanwendung besteht darin, den neuen Forderungsprinzipal ($principal) dem Sicherheitsobjekt der Dienstanwendung ($security) hinzuzufügen. Geben Sie hierzu den 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 lokale Farm-ID (die in der $farmID-Variablen gespeichert ist) aus dem Sicherheitsobjekt der Dienstanwendung, $security, zu löschen:

    Revoke-SPObjectSecurity $security $farmID 
    
  3. Geben Sie die folgenden Befehle ein, um das aktualisierte $security-Sicherheitsobjekt der Dienstanwendung zuzuweisen und zu überprüfen, ob das Sicherheitsobjekt für die Dienstanwendung ordnungsgemäß aktualisiert wurde:

    Set-SPServiceApplicationSecurity $spapp -ObjectSecurity $security
    (Get-SPServiceApplicationSecurity $spapp).AccessRules
    

Durch Ausführen dieser Verfahren können Sie einer Dienstanwendung beliebige Dienstkonten hinzufügen bzw. beliebige Dienstkonten von der Dienstanwendung entfernen.

Wiederherstellen des Zugriffs auf eine Dienstanwendung auf der Farmebene

Sie können den Zugriff auf eine Dienstanwendung auf der Farmebene wiederherstellen, indem Sie der Dienstanwendung die lokale Farm-ID hinzufügen. Sie können diesen Vorgang mithilfe der Zentraladministration oder mit Windows PowerShell 2,0-Befehlen ausführen. Sie müssen die lokale Farm-ID jedoch mit Windows PowerShell 2,0 abrufen.

Inhalt dieses Abschnitts:

  • So rufen Sie die lokale Farm-ID mithilfe von Windows Powershell ab

  • So stellen Sie den Zugriff auf eine Dienstanwendung für die gesamte lokale Farm mit 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 lokale Farm-ID mithilfe von Windows Powershell ab

  1. Dieses Verfahren beginnt nach der Ausführung von Schritt 4 des Verfahrens So initiieren Sie eine Windows PowerShell-Sitzung.

  2. Der folgende Befehl ruft die lokale Farm-ID ab, speichert sie in der $farmID-Variablen und zeigt die ID an der Eingabeaufforderung an:

    $farmID = Get-SPFarm | select id
    

    Wenn Sie den Zugriff für die gesamte Farm mithilfe der Zentraladministration wiederherstellen möchten, kopieren Sie diesen Wert für die Verwendung im nächsten Verfahren in die Zwischenablage.

    Wenn Sie den Zugriff auf die Dienstanwendung für die gesamte Farm mithilfe von Windows PowerShell 2,0 wiederherstellen möchten, geben Sie an der Windows PowerShell 2,0-Eingabeaufforderung die folgenden zusätzlichen Befehle ein. Die abgerufenen Informationen müssen im folgenden Verfahren angegeben werden.

    $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 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 anschließend auf Hinzufügen.

  3. Vergewissern Sie sich, dass die lokale Farm-ID im mittleren Bereich ausgewählt ist. Klicken Sie auf das Kontrollkästchen Vollzugriff im unteren Bereich.

  4. Klicken Sie auf OK, um den Zugriff auf die Dienstanwendung für die gesamte Farm wiederherzustellen, oder klicken Sie auf Abbrechen, um den Vorgang abzubrechen und keine Ä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 der Ausführung von Schritt 2 des Verfahrens So rufen Sie die lokale Farm-ID mithilfe von Windows Powershell ab.

  2. Geben Sie die folgenden Befehle ein, um die abgerufene lokale Farm-ID im Sicherheitsobjekt der Dienstanwendung $security 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

    Der Anzeigename muss in Anführungszeichen eingeschlossen werden, und er muss mit dem Anzeigenamen der Dienstanwendung identisch sein. Dabei wird auch die Groß- und Kleinschreibung berücksichtigt. Wenn mehrere Dienstanwendungen mit demselben Anzeigenamen vorhanden sind (dies wird nicht empfohlen), können Sie das Cmdlet Get-SPServiceApplication ohne Argumente ausführen, um alle Dienstanwendungen anzuzeigen. Anschließend können Sie die Dienstanwendung anhand ihrer GUID bestimmen. Weitere Informationen finden Sie unter Get-SPServiceApplication.

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 der lokalen Farm aus der Dienstanwendung wird "Contoso BDC" auf die Webanwendung 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 
$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 Foundation 2010)
Hinzufügen oder Löschen der Verbindung einer Dienstanwendung mit einer Webanwendung (SharePoint Foundation 2010)