Erklärung von Berechtigungen

Wenn Sie die meisten Erweiterungs-APIs und ‐Funktionen verwenden möchten, müssen Sie den Intent Ihrer Erweiterung in den Berechtigungsfeldern des Manifests deklarieren. Erweiterungen können die folgenden Berechtigungskategorien anfordern, die mit den jeweiligen Manifestschlüsseln festgelegt werden:

"permissions"
Enthält Elemente aus einer Liste bekannter Strings. Änderungen können eine Warnung auslösen.
"optional_permissions"
Wird vom Nutzer zur Laufzeit und nicht bei der Installation gewährt.
"content_scripts.matches"
Enthält ein oder mehrere Übereinstimmungsmuster, die das Einfügen von Inhaltsskripts in einen oder mehrere Hosts ermöglichen. Änderungen können eine Warnung auslösen.
"host_permissions"
Enthält ein oder mehrere Übereinstimmungsmuster, die Zugriff auf einen oder mehrere Hosts gewähren. Änderungen können eine Warnung auslösen.
"optional_host_permissions"
Wird vom Nutzer zur Laufzeit und nicht bei der Installation gewährt.

Berechtigungen helfen, den Schaden zu begrenzen, wenn Ihre Erweiterung von Malware manipuliert wird. Einige Berechtigungswarnungen werden Nutzern vor der Installation oder während der Laufzeit zur Einwilligung angezeigt, wie unter Berechtigung mit Warnungen beschrieben.

Erwägen Sie die Verwendung optionaler Berechtigungen, wenn es die Funktion Ihrer Erweiterung zulässt, um Nutzern eine fundierte Kontrolle über den Zugriff auf Ressourcen und Daten zu geben.

Wenn für eine API eine Berechtigung erforderlich ist, wird in der zugehörigen Dokumentation erläutert, wie sie deklariert wird. Ein Beispiel finden Sie unter Storage API.

Manifest

Hier ein Beispiel für den Abschnitt „Berechtigungen“ einer Manifestdatei:

manifest.json:

{
  "name": "Permissions Extension",
  ...
  "permissions": [
    "activeTab",
    "contextMenus",
    "storage"
  ],
  "optional_permissions": [
    "topSites",
  ],
  "host_permissions": [
    "https://www.developer.chrome.com/*"
  ],
  "optional_host_permissions":[
    "https://*/*",
    "http://*/*"
  ],
  ...
  "manifest_version": 3
}

Hostberechtigungen

Mithilfe von Hostberechtigungen können Erweiterungen mit den Übereinstimmungsmustern der URL interagieren. Für einige Chrome APIs sind neben den eigenen API-Berechtigungen, die auf der jeweiligen Referenzseite dokumentiert sind, auch Hostberechtigungen erforderlich. Hier sind einige Beispiele:

Berechtigungen mit Warnungen

Wenn eine Erweiterung mehrere Berechtigungen anfordert und bei vielen davon bei der Installation eine Warnung angezeigt wird, sieht der Nutzer eine Liste mit Warnungen, wie im folgenden Beispiel:

Warnungen zu Erweiterungsberechtigungen bei der Installation

Nutzer sind eher bereit, Erweiterungen mit eingeschränkten Warnungen oder Berechtigungen zu vertrauen. Implementieren Sie gegebenenfalls optionale Berechtigungen oder eine weniger leistungsfähige API, um beunruhigende Warnungen zu vermeiden. Best Practices für Warnungen finden Sie in den Richtlinien zu Berechtigungswarnungen. Spezifische Warnungen sind mit den jeweiligen Berechtigungen in der Referenzliste für Berechtigungen aufgeführt.

Wenn Sie Übereinstimmungsmuster in den Feldern "host_permissions" und "content_scripts.matches" der Manifestdatei hinzufügen oder ändern, wird auch eine Warnung ausgelöst. Weitere Informationen finden Sie unter Berechtigungen aktualisieren.

Zugriff zulassen

Wenn die Erweiterung unter file://-URLs ausgeführt werden muss oder im Inkognitomodus ausgeführt werden muss, müssen Nutzer der Erweiterung auf der Detailseite Zugriff gewähren. Eine Anleitung zum Öffnen der Detailseite finden Sie unter Erweiterungen verwalten.

Zugriff auf Datei-URLs und Inkognitoseiten zulassen

  1. Klicken Sie mit der rechten Maustaste auf das Erweiterungssymbol in Chrome.
  2. Wählen Sie Erweiterung verwalten aus.

    Kontextmenü für Erweiterungen
    Menü „Erweiterung“
  3. Scrollen Sie nach unten, um den Zugriff auf Datei-URLs oder den Inkognitomodus zu aktivieren.

    Datei-URLs und den Inkognitomodus auf der Detailseite der Erweiterung zulassen
    Zugriff auf Datei-URLs und Inkognitomodus aktiviert.

Um zu ermitteln, ob der Nutzer den Zugriff erlaubt hat, können Sie extension.isAllowedIncognitoAccess() oder extension.isAllowedFileSchemeAccess() aufrufen.