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:
Fügen Sie der Dienstanwendung ein bestimmtes Dienstkonto hinzu.
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:
Rufen Sie das Webanwendungs-Dienstkonto ab.
Fügen Sie das Webanwendungs-Dienstkonto der Dienstanwendung hinzu.
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
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 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.
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
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 auf Berechtigungen.
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.
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.
Klicken Sie im mittleren Bereich auf Lokale Farm, und klicken Sie dann auf Entfernen.
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:
Rufen Sie die lokale Farm-ID 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 lokale Farm-ID aus dem Sicherheitsobjekt der Dienstanwendung.
Weisen Sie das aktualisierte Sicherheitsobjekt der Dienstanwendung zu.
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
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.
Klicken Sie im Startmenü auf Alle Programme.
Klicken Sie auf Microsoft SharePoint 2010-Produkte.
Klicken Sie auf SharePoint 2010-Verwaltungsshell.
So können Sie mithilfe von Windows PowerShell ein Webanwendungs-Dienstkonto abrufen und einen neuen Forderungsprinzipal erstellen
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.
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
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
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
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
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
Dieses Verfahren beginnt nach der Ausführung von Schritt 4 des Verfahrens So initiieren Sie eine Windows PowerShell-Sitzung.
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
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 anschließend auf Hinzufügen.
Vergewissern Sie sich, dass die lokale Farm-ID im mittleren Bereich ausgewählt ist. Klicken Sie auf das Kontrollkästchen Vollzugriff im unteren Bereich.
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
Dieses Verfahren beginnt nach der Ausführung von Schritt 2 des Verfahrens So rufen Sie die lokale Farm-ID mithilfe von Windows Powershell ab.
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)