Freigeben über


Erhöhte Berechtigungen

Verwenden Sie die reine App-Richtlinie oder Dienstkonten, um Berechtigungen in SharePoint-Add-Ins oder anderen remote gehosteten Lösungen zu erhöhen.

Gilt für: Apps für SharePoint | SharePoint 2013 | SharePoint-Add-Ins | SharePoint Online

In SharePoint-Add-Ins und Farmlösungen werden verschiedene Methoden zum Erhöhen von Rechten verwendet. Farmlösungen erhöhen Berechtigungen mithilfe von RunWithElevatedPrivileges(SPSecurity.CodeToRunElevated), das zum serverseitigen SharePoint-Objektmodell gehört. SharePoint-Add-Ins verwenden entweder die Nur-App-Richtlinie oder Dienstkonten.

Sie können erhöhte Berechtigungen in Ihrem Add-In verwenden, wenn:

  • Ihr Add-In führt Aktionen für Benutzer aus, für die die Benutzer nicht über ausreichende individuelle Berechtigungen verfügen. Administratoren weisen Benutzern möglicherweise keine bestimmten Berechtigungen zu, da die Berechtigungsstufe zu hoch ist.

    Ihr organization kann beispielsweise eine benutzerdefinierte Lösung für die Bereitstellung von Websitesammlungen implementieren, die Benutzer zum Erstellen von Websitesammlungen verwenden müssen. Ihre organization gibt möglicherweise an, dass allen neuen Websitesammlungen bestimmte Listen, Inhaltstypen oder Felder zugeordnet sein müssen. Wenn Benutzer selbst Websitesammlungen erstellen, erinnern sie sich möglicherweise daran, diese Objekte in ihrer neuen Websitesammlung zu erstellen. In diesem Szenario erstellen Benutzer Websitesammlungen mithilfe des Add-Ins, benutzern werden jedoch keine berechtigungen zum Erstellen von Websitesammlungen einzeln zugewiesen.

  • Ihr Add-In handelt nicht im Namen eines Benutzers. z. B. ein Governance- oder Verwaltungsprozess.

Nur-App-Richtlinienautorisierung

Nur-App-Richtlinie verwendet OAuth, um Ihr Add-In zu authentifizieren. Wenn Ihr Add-In die Nur-App-Richtlinie verwendet, überprüft SharePoint nur die Berechtigungen des Add-In-Prinzipals. Dies sind die Berechtigungen, die dem Add-In erteilt wurden. Die Autorisierung ist erfolgreich, wenn das Add-In über ausreichende Berechtigungen zum Ausführen der Aufgabe verfügt, unabhängig von den Berechtigungen, die dem aktuellen Benutzer zugeordnet sind. Wenn die Autorisierung erfolgreich ist, wird ein Zugriffstoken an Ihr Add-In zurückgegeben. Ihr Add-In verwendet dieses Zugriffstoken, um alle Vorgänge auszuführen, die für Ihren Code erforderlich sind.

Weitere Informationen finden Sie unter App-Autorisierungsrichtlinientypen in SharePoint 2013.

Hinweis

Die Nur-App-Richtlinie ist nur für vom Anbieter gehostete Add-Ins verfügbar. Von SharePoint gehostete Add-Ins, die auf das Hostweb zugreifen, müssen die Benutzer-App-Richtlinie verwenden.

Die Verwendung der Nur-App-Richtlinie in Ihrem Add-In bietet folgende Vorteile:

  • Sie müssen keine separate Benutzerlizenz erteilen. Dienstkonten erfordern eine separate Benutzerlizenz.

  • Sie erhalten eine präzisere Kontrolle über Berechtigungen als bei Dienstkonten. Beispielsweise können Sie FullControl-Berechtigungen auf Ihr Web anwenden, was bei Verwendung von Dienstkonten nicht möglich ist.

Sie können die reine App-Richtlinie nicht mit den folgenden APIs verwenden:

  • Benutzerprofil

  • Suche

Um die Reine App-Richtlinie verwenden zu können, müssen Sie dem Add-In zunächst Mithilfe von appinv.aspx Berechtigungen erteilen. Der folgende Code aus AppManifest.xml-Datei zeigt, wie Sie die Nur-App-Richtlinie und die Berechtigungen für Ihr Add-In festlegen.

 <AppPermissionRequests AllowAppOnlyPolicy="true">
   <AppPermissionRequest Scope="http://sharepoint/content/sitecollection/web" Right="FullControl" />
 </AppPermissionRequests>

Die Verwendung der Nur-App-Richtlinie erfordert, dass Ihr Add-In entweder eine Autorisierung mit niedriger oder hoher Vertrauenswürdigstellung verwendet. Die Richtlinie ist nicht für die domänenübergreifende JavaScript-Bibliothek von SharePoint verfügbar, die eine dritte Möglichkeit ist, autorisierten Zugriff auf SharePoint-Ressourcen zu erhalten.

app@sharepoint-Berechtigung funktioniert in der modernen Benutzeroberfläche des Terminologiespeichers nicht mehr. Das liegt daran, dass app@sharepoint-Berechtigung für eine App nicht mehr erforderlich ist, um Taxonomieschreibvorgänge auszuführen, solange die App in Azure AD mit den erforderlichen Ressourceneinwilligungen für den Rein-App-Taxonomiezugriff registriert ist.

Autorisierung mit niedriger Vertrauenswürdigstellung

Ihr Add-In kann eine Autorisierung mit niedriger Vertrauensebene verwenden, wenn Sie microsoft Azure Access Control Service (ACS) verwenden, um eine Vertrauensstellung zwischen Ihrem vom Anbieter gehosteten Add-In und Ihrer Office 365-Website oder Ihrer lokalen SharePoint-Farm herzustellen. Weitere Informationen finden Sie unter Drei Autorisierungssysteme für SharePoint-Add-Ins 2013.

Wichtig

Die Verwendung von Azure ACS (Access Control Services) für SharePoint Online wurde am 27. November 2023 eingestellt. Weitere Informationen finden Sie in der Ankündigung zur vollständigen Einstellung. Die Verwendung von Azure ACS außerhalb des SharePoint-Kontexts wurde bereits am 7. November 2018 eingestellt und endet jetzt.

Die Einstellung bedeutet, dass das Feature keine neuen Investitionen erhält, aber weiterhin unterstützt wird. Ende der Lebensdauer bedeutet, dass das Feature nicht mehr zur Verfügung steht.

Um einen Verweis auf das ClientContext-Objekt abzurufen, sollte Ihr Add-In folgendes ausführen:

  1. Rufen Sie das Zugriffstoken mithilfe von TokenHelper.GetAppOnlyAccessToken ab.

  2. Verwenden Sie TokenHelper.GetClientContextWithAccessToken, um das ClientContext-Objekt abzurufen.

Hinweis

Die TokenHelper-Datei ist Quellcode, der von den Microsoft Office Developer Tools für Visual Studio generiert wird. Es gibt keine Referenzdokumentation dafür, aber es gibt umfangreiche Kommentare in der TokenHelper-Klasse. Um die Codekommentare anzuzeigen, erstellen Sie ein vom Anbieter gehostetes Add-In in Visual Studio.

Hinweis

Der Code in diesem Artikel wird ohne jegliche ausdrückliche oder konkludente Gewährleistung bereitgestellt, einschließlich aller impliziten Gewährleistungen der Eignung für einen bestimmten Zweck, der Marktgängigkeit oder der Nichtverletzung von Rechten.

Uri siteUrl = new Uri(ConfigurationManager.AppSettings["MySiteUrl"]);
try
{
    // Connect to a site using an app-only token.
    string realm = TokenHelper.GetRealmFromTargetUrl(siteUrl);
    var token = TokenHelper.GetAppOnlyAccessToken(TokenHelper.SharePointPrincipal, siteUrl.Authority, realm).AccessToken;

    using (var ctx = TokenHelper.GetClientContextWithAccessToken(siteUrl.ToString(), token))
    {
        // Perform operations on the ClientContext object, which uses the app-only token. 
    }
}
catch (Exception ex)
{
    Console.WriteLine("Error in execution: " + ex.Message);
}

Besonders vertrauenswürdige Autorisierung

Wenn Ihr Add-In das besonders vertrauenswürdige Autorisierungssystem (auch als S2S-Protokoll bezeichnet) verwendet, ruft es eine andere TokenHelper-Methode auf: TokenHelper.GetS2SAccessTokenWithWindowsIdentity.

Wichtig:TokenHelper.GetS2SAccessTokenWithWindowsIdentity wird sowohl für App-Only- als auch für Benutzer-/App-Aufrufe verwendet. Der zweite Parameter der -Methode, der die Benutzeridentität enthält, bestimmt, welche Richtlinie verwendet wird. Übergeben Sie NULL , um die Nur-App-Richtlinie zu verwenden.

Dienstkonten

Verwenden Sie Dienstkonten, um Berechtigungen für Ihr Add-In nur dann zu erhöhen, wenn die Reine App-Richtlinie keine ausreichenden Berechtigungen zum Abschließen Ihrer Aufgabe bereitstellt. Außerdem ist in bestimmten Szenarien ein Benutzerkonto erforderlich. Beispielsweise müssen Sie Dienstkonten verwenden, wenn Ihr Code mit einer der folgenden SharePoint-Dienstanwendungen funktioniert:

  • Benutzerprofildienst mit dem clientseitigen Objektmodell (CSOM)

  • Verwalteter Metadatendienst

  • Suche

Wenn Sie die Verwendung von Dienstkonten in Ihrem Add-In planen, sollten Sie Folgendes berücksichtigen:

  • Dienstkonten erfordern eine separate Benutzerlizenz.

  • Erstellen Sie entweder ein Dienstkonto pro Add-In, oder verwenden Sie ein Dienstkonto für alle Add-Ins in Ihrer SharePoint-Umgebung.

  • Sie müssen den Benutzernamen und das Kennwort während der Autorisierung angeben. Stellen Sie sicher, dass Die Anmeldeinformationen des Dienstkontos sicher gespeichert oder abgerufen werden.

  • Bevor Ihr Add-In eine Aktion auf einer Website ausführen kann, muss Dienstkonten zunächst die Berechtigung für den Zugriff auf die Website erteilt werden.

Hinweis

Im Office Store erworbene Add-Ins können keine Dienstkonten verwenden.

Der folgende Code zeigt, wie Sie sich mithilfe von SharePointOnlineCredentials mit einem Dienstkonto authentifizieren.

using (ClientContext context = new ClientContext("https://contoso.sharepoint.com"))
{

    // Use default authentication mode.
    context.AuthenticationMode = ClientAuthenticationMode.Default;  

    // Specify the credentials for the service account.
    context.Credentials = new SharePointOnlineCredentials("User Name", "Password");
}

Siehe auch