App-Berechtigungen tragen zum Schutz der Privatsphäre von Nutzern bei, indem der Zugriff auf Folgendes geschützt wird:
- Eingeschränkte Daten wie der Systemstatus und die Kontaktdaten von Nutzern
- Eingeschränkte Aktionen, z. B. das Herstellen einer Verbindung zu einem gekoppelten Gerät und das Aufzeichnen von Audio
Diese Seite bietet einen Überblick über die Funktionsweise von Android-Berechtigungen, einschließlich eines allgemeinen Workflows zur Verwendung von Berechtigungen, Beschreibungen verschiedener Berechtigungstypen und einige Best Practices für die Verwendung von Berechtigungen in Ihrer App. Auf anderen Seiten wird erläutert, wie Sie Berechtigungen Ihrer App minimieren, Berechtigungen deklarieren, Laufzeitberechtigungen anfordern und die Interaktion anderer Apps mit den Komponenten Ihrer App einschränken.
Eine vollständige Liste der Berechtigungen für Android-Apps finden Sie auf der Referenzseite für die permissions API.
Im Repository für Android-Berechtigungsbeispiele auf GitHub finden Sie einige Beispielanwendungen, die den Berechtigungsworkflow veranschaulichen.
Workflow für die Verwendung von Berechtigungen
Wenn Ihre App Funktionen bietet, für die der Zugriff auf eingeschränkte Daten oder eingeschränkte Aktionen erforderlich sein könnte, prüfen Sie, ob Sie die Informationen abrufen oder die Aktionen ausführen können, ohne Berechtigungen deklarieren zu müssen. Sie können viele Anwendungsfälle in Ihrer App erfüllen, z. B. Fotos aufnehmen, die Medienwiedergabe pausieren und relevante Anzeigen schalten, ohne Berechtigungen angeben zu müssen.
Wenn Sie entscheiden, dass Ihre App für einen Anwendungsfall auf eingeschränkte Daten zugreifen oder eingeschränkte Aktionen ausführen muss, erklären Sie die entsprechenden Berechtigungen. Einige Berechtigungen, auch Berechtigungen bei der Installation genannt, werden bei der Installation der Anwendung automatisch gewährt. Bei anderen Berechtigungen, sogenannten Laufzeitberechtigungen, muss Ihre App einen Schritt weiter gehen und die Berechtigung zur Laufzeit anfordern.
Abbildung 1 veranschaulicht den Workflow für die Verwendung von App-Berechtigungen:
Berechtigungsarten
Android kategorisiert Berechtigungen in verschiedene Typen, darunter Berechtigungen zur Installationszeit, Laufzeitberechtigungen und spezielle Berechtigungen. Der Typ jeder Berechtigung gibt den Umfang der eingeschränkten Daten an, auf die Ihre App zugreifen kann, und den Umfang der eingeschränkten Aktionen, die Ihre App ausführen kann, wenn das System Ihrer App diese Berechtigung gewährt. Die Schutzstufe für jede Berechtigung basiert auf ihrem Typ und wird auf der Seite API-Referenz für Berechtigungen angezeigt.
Berechtigungen bei der Installation
Berechtigungen zur Installationszeit gewähren Ihrer App eingeschränkten Zugriff auf eingeschränkte Daten oder ermöglichen es Ihrer App, eingeschränkte Aktionen auszuführen, die sich nur minimal auf das System oder andere Apps auswirken. Wenn Sie Berechtigungen zur Installationszeit in Ihrer App deklarieren, wird Nutzern in einem App-Shop eine Berechtigungsmitteilung zur Installationszeit angezeigt, wenn sie die Detailseite einer App aufrufen, wie in Abbildung 2 dargestellt. Das System gewährt Ihrer App die Berechtigungen automatisch, wenn der Nutzer Ihre App installiert.
Android bietet mehrere Untertypen von Berechtigungen zur Installationszeit, darunter normale Berechtigungen und Signaturberechtigungen.
Normale Berechtigungen
Diese Berechtigungen ermöglichen den Zugriff auf Daten und Aktionen, die über die Sandbox Ihrer App hinausgehen, aber ein sehr geringes Risiko für die Privatsphäre des Nutzers und die Funktion anderer Apps darstellen.
Normalen Berechtigungen wird vom System die Schutzstufe normal
zugewiesen.
Unterschriftsberechtigungen
Das System gewährt einer App nur dann eine Signaturberechtigung, wenn die App mit demselben Zertifikat wie die App oder das Betriebssystem signiert ist, das die Berechtigung definiert.
Auch Anwendungen, die privilegierte Dienste wie Autofill- oder VPN-Dienste implementieren, nutzen Signaturberechtigungen. Für diese Apps sind Berechtigungen für die Dienstbindung erforderlich, damit nur das System eine Bindung an die Dienste vornehmen kann.
Das System weist Signaturen die Schutzstufe signature
zu.
Laufzeitberechtigungen
Laufzeitberechtigungen, auch als gefährliche Berechtigungen bezeichnet, geben Ihrer App zusätzlichen Zugriff auf eingeschränkte Daten oder lassen Ihre App eingeschränkte Aktionen ausführen, die das System und andere Apps wesentlich beeinträchtigen. Daher müssen Sie in Ihrer Anwendung Laufzeitberechtigungen anfordern, bevor Sie auf die eingeschränkten Daten zugreifen oder eingeschränkte Aktionen ausführen können. Gehen Sie nicht davon aus, dass diese Berechtigungen bereits gewährt wurden. Prüfen Sie sie und fordern Sie sie bei Bedarf vor jedem Zugriff an.
Wenn Ihre Anwendung eine Laufzeitberechtigung anfordert, zeigt das System eine Aufforderung zur Laufzeitberechtigung an, wie in Abbildung 3 dargestellt.
Viele Laufzeitberechtigungen greifen auf private Nutzerdaten zu, eine spezielle Art von eingeschränkten Daten, die potenziell vertrauliche Informationen enthalten. Beispiele für personenbezogene Nutzerdaten sind Standort- und Kontaktdaten.
Mikrofon und Kamera gewähren Zugriff auf besonders sensible Daten. Daher hilft Ihnen das System, zu erklären, warum Ihre App auf diese Informationen zugreift.
Das System weist Laufzeitberechtigungen die Schutzstufe dangerous
zu.
Besondere Berechtigungen
Besondere Berechtigungen entsprechen bestimmten App-Vorgängen. Nur die Plattform und OEMs können spezielle Berechtigungen definieren. Außerdem definieren die Plattform und die OEMs in der Regel spezielle Berechtigungen, wenn sie den Zugriff auf besonders leistungsstarke Aktionen schützen möchten, z. B. das Zeichnen über andere Apps.
Die Seite Spezielle App-Zugriffe in den Systemeinstellungen enthält eine Reihe von Aktionen, die vom Nutzer aktiviert werden können. Viele dieser Vorgänge werden als spezielle Berechtigungen implementiert.
Weitere Informationen zum Beantragen spezieller Berechtigungen
Das System weist das Schutzniveau appop
speziellen Berechtigungen zu.
Berechtigungsgruppen
Berechtigungen können zu Berechtigungsgruppen gehören. Berechtigungsgruppen bestehen aus einer Reihe logisch zusammengehöriger Berechtigungen. Beispielsweise können Berechtigungen zum Senden und Empfangen von SMS zur selben Gruppe gehören, da sie sich beide auf die Interaktion der Anwendung mit SMS beziehen.
Mit Berechtigungsgruppen kann das System die Anzahl der Systemdialogfelder minimieren, die dem Nutzer angezeigt werden, wenn eine App eng miteinander verbundene Berechtigungen anfordert. Wenn ein Nutzer aufgefordert wird, einer Anwendung Berechtigungen zu erteilen, werden die Berechtigungen, die zur selben Gruppe gehören, auf derselben Oberfläche angezeigt. Berechtigungen können Gruppen jedoch ohne vorherige Ankündigung ändern. Gehen Sie also nicht davon aus, dass eine bestimmte Berechtigung mit einer anderen Berechtigung gruppiert ist.
Best Practices
App-Berechtigungen basieren auf Systemsicherheitsfunktionen und tragen dazu bei, dass Android die folgenden Ziele im Hinblick auf den Datenschutz von Nutzern unterstützt:
- Kontrolle: Der Nutzer hat die Kontrolle darüber, welche Daten er mit Apps teilt.
- Transparenz: Der Nutzer versteht, welche Daten von einer App verwendet werden und warum die App auf diese Daten zugreift.
- Datenminimierung: Eine App greift nur auf die Daten zu und verwendet nur die Daten, die für eine bestimmte Aufgabe oder Aktion erforderlich sind, die der Nutzer ausführt.
In diesem Abschnitt werden einige wichtige Best Practices für die effektive Verwendung von Berechtigungen in Ihrer App vorgestellt. Weitere Informationen zur Verwendung von Berechtigungen unter Android finden Sie auf der Seite Best Practices für App-Berechtigungen.
Mindestanzahl an Berechtigungen anfordern
Wenn der Nutzer eine bestimmte Aktion in Ihrer App ausführt, sollte Ihre App nur die Berechtigungen anfordern, die für die Ausführung dieser Aktion erforderlich sind. Je nachdem, wie Sie die Berechtigungen verwenden, gibt es möglicherweise eine alternative Möglichkeit, den Anwendungsfall Ihrer App zu erfüllen, ohne auf den Zugriff auf vertrauliche Daten angewiesen zu sein.
Laufzeitberechtigungen mit bestimmten Aktionen verknüpfen
Fordern Sie Berechtigungen so spät wie möglich im Ablauf der Anwendungsfälle Ihrer App an. Wenn Nutzer in Ihrer App beispielsweise Audionachrichten an andere senden können, warten Sie, bis der Nutzer den Bildschirm für Nachrichten aufgerufen und auf die Schaltfläche Audionachricht senden geklickt hat. Nachdem der Nutzer auf die Schaltfläche geklickt hat, kann Ihre App den Zugriff auf das Mikrofon anfordern.
Abhängigkeiten Ihrer App berücksichtigen
Wenn Sie eine Bibliothek einbinden, übernehmen Sie auch die Berechtigungsanforderungen. Achten Sie darauf, welche Berechtigungen für die einzelnen Abhängigkeiten erforderlich sind und wofür diese Berechtigungen verwendet werden.
Transparent sein
Wenn Sie eine Berechtigungsanfrage stellen, machen Sie deutlich, worauf Sie zugreifen, warum und auf welche Funktionen die Verweigerung von Berechtigungen beeinträchtigt ist, damit Nutzer fundierte Entscheidungen treffen können.
Systemzugriffe explizit machen
Wenn Sie auf sensible Daten oder Hardware wie die Kamera oder das Mikrofon zugreifen, muss in Ihrer App eine kontinuierliche Anzeige eingeblendet werden, sofern das System diese Anzeige nicht bereits bietet. Diese Erinnerung hilft Nutzern zu verstehen, wann Ihre App auf eingeschränkte Daten zugreift oder eingeschränkte Aktionen ausführt.
Berechtigungen in Systemkomponenten
Berechtigungen dienen nicht nur dazu, Systemfunktionen anzufordern. Mit den Systemkomponenten Ihrer App können Sie einschränken, welche anderen Apps mit Ihrer App interagieren können. Weitere Informationen finden Sie auf der Seite Interaktionen mit anderen Apps einschränken.