App-Berechtigungen tragen zum Schutz des Datenschutzes (für Nutzer) bei, indem sie den Zugriff auf Folgendes schützen:
- Eingeschränkte Daten, z. B. Systemstatus und Kontaktdaten von Nutzern
- Eingeschränkte Aktionen, z. B. das Verbinden mit einem gekoppelten Gerät und das Aufnehmen von Audio
Diese Seite bietet einen Überblick über die Funktionsweise von Android-Berechtigungen, einschließlich eines allgemeinen Workflows für die Verwendung von Berechtigungen, Beschreibungen verschiedener Arten von Berechtigungen und einiger Best Practices für die Verwendung von Berechtigungen in Ihrer App. Auf anderen Seiten wird erläutert, wie Sie Berechtigungsanfragen Ihrer App minimieren, Berechtigungen deklarieren, Laufzeitberechtigungen anfordern und die Interaktion anderer Apps mit den Komponenten Ihrer App einschränken.
Eine vollständige Liste der Android-App-Berechtigungen finden Sie auf der Referenzseite zur Berechtigungs-API.
Beispiel-Apps, die den Berechtigungs-Workflow veranschaulichen, finden Sie im Repository für Android-Berechtigungsbeispiele auf GitHub.
Workflow für die Verwendung von Berechtigungen
Wenn deine App Funktionen bietet, für die möglicherweise Zugriff auf eingeschränkte Daten oder eingeschränkte Aktionen erforderlich ist, solltest du prüfen, ob du die Informationen abrufen oder die Aktionen ausführen kannst, ohne Berechtigungen deklarieren zu müssen. Sie können viele Anwendungsfälle in Ihrer App abdecken, z. B. das Aufnehmen von Fotos, das Pausieren der Medienwiedergabe und das Einblenden relevanter Anzeigen, ohne Berechtigungen deklarieren zu müssen.
Wenn Sie entscheiden, dass Ihre App auf eingeschränkte Daten zugreifen oder eingeschränkte Aktionen ausführen muss, um einen Anwendungsfall zu erfüllen, deklarieren Sie die entsprechenden Berechtigungen. Einige Berechtigungen, die sogenannten Berechtigungen zur Installationszeit, werden automatisch gewährt, wenn Ihre App installiert wird. Bei anderen Berechtigungen, den sogenannten Laufzeitberechtigungen, muss Ihre App einen Schritt weiter gehen und die Berechtigung zur Laufzeit anfordern.
Abbildung 1 zeigt den Workflow für die Verwendung von App-Berechtigungen:
Berechtigungsarten
Android unterteilt 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 deine App zugreifen kann, und den Umfang der eingeschränkten Aktionen, die deine App ausführen kann, wenn das System deiner App diese Berechtigung gewährt. Die Schutzstufe für jede Berechtigung basiert auf ihrem Typ und wird auf der Referenzseite zur Berechtigungs-API 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 in Ihrer App Berechtigungen deklarieren, die bei der Installation erteilt werden, wird dem Nutzer im App Store ein Hinweis zu Berechtigungen angezeigt, wenn er die Detailseite einer App aufruft (siehe Abbildung 2). Das System gewährt deiner App die Berechtigungen automatisch, wenn der Nutzer deine App installiert.
Android umfasst 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 deiner App hinausgehen, aber nur ein sehr geringes Risiko für die Privatsphäre des Nutzers und den Betrieb anderer Apps darstellen.
Das System weist normalen Berechtigungen die Schutzstufe normal zu.
Signaturberechtigungen
Das System gewährt einer App nur dann eine Signaturberechtigung, wenn die App mit demselben Zertifikat signiert ist wie die App oder das Betriebssystem, das die Berechtigung definiert.
Anwendungen, die privilegierte Dienste wie Autofill- oder VPN-Dienste implementieren, verwenden ebenfalls Signaturberechtigungen. Diese Apps erfordern Signaturberechtigungen für die Dienstbindung, damit nur das System eine Bindung an die Dienste vornehmen kann.
Das System weist Signaturberechtigungen die Schutzstufe signature zu.
Laufzeitberechtigungen
Laufzeitberechtigungen, auch als gefährliche Berechtigungen bezeichnet, gewähren Ihrer App zusätzlichen Zugriff auf eingeschränkte Daten oder ermöglichen es ihr, eingeschränkte Aktionen auszuführen, die sich stärker auf das System und andere Apps auswirken. Daher müssen Sie in Ihrer App 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 erteilt wurden. Prüfen Sie sie und fordern Sie sie bei Bedarf vor jedem Zugriff an.
Wenn Ihre App eine Laufzeitberechtigung anfordert, zeigt das System eine entsprechende Aufforderung 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 private Nutzerdaten sind Standort- und Kontaktdaten.
Über das Mikrofon und die Kamera kann auf besonders sensible Informationen zugegriffen werden. Daher hilft Ihnen das System dabei, zu erklären, warum Ihre App auf diese Informationen zugreift.
Das System weist Laufzeitberechtigungen das Schutzniveau dangerous zu.
Besondere Berechtigungen
Spezielle Berechtigungen entsprechen bestimmten App-Vorgängen. Nur die Plattform und OEMs können spezielle Berechtigungen definieren. Darüber hinaus definieren die Plattform und OEMs in der Regel spezielle Berechtigungen, wenn sie den Zugriff auf besonders leistungsstarke Aktionen schützen möchten, z. B. das Zeichnen über anderen Apps.
Die Seite Spezieller App-Zugriff in den Systemeinstellungen enthält eine Reihe von Vorgängen, die vom Nutzer aktiviert oder deaktiviert werden können. Viele dieser Vorgänge sind als spezielle Berechtigungen implementiert.
Weitere Informationen zum Beantragen von Sonderberechtigungen
Das System weist speziellen Berechtigungen die Schutzstufe appop zu.
Berechtigungsgruppen
Berechtigungen können zu Berechtigungsgruppen gehören. Berechtigungsgruppen bestehen aus einer Reihe logisch zusammenhängender Berechtigungen. Beispielsweise können Berechtigungen zum Senden und Empfangen von SMS zur selben Gruppe gehören, da sich beide auf die Interaktion der Anwendung mit SMS beziehen.
Berechtigungsgruppen helfen dem System, die Anzahl der Systemdialogfelder zu minimieren, die dem Nutzer angezeigt werden, wenn eine App eng verwandte Berechtigungen anfordert. Wenn ein Nutzer aufgefordert wird, Berechtigungen für eine Anwendung zu gewähren, werden Berechtigungen, die zur selben Gruppe gehören, auf derselben Oberfläche angezeigt. Berechtigungen können jedoch ohne Vorankündigung in andere Gruppen verschoben werden. Gehen Sie also nicht davon aus, dass eine bestimmte Berechtigung mit einer anderen Berechtigung gruppiert ist.
Best Practices
App-Berechtigungen basieren auf Systemsicherheitsfunktionen und helfen Android, die folgenden Ziele im Zusammenhang mit dem Datenschutz zu erreichen:
- Kontrolle:Nutzer haben die Kontrolle über die Daten, die sie mit Apps teilen.
- Transparenz:Der Nutzer versteht, welche Daten eine App verwendet 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 aufruft.
In diesem Abschnitt werden einige grundlegende 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.
Anzahl der Berechtigungen auf ein Minimum beschränken
Wenn der Nutzer eine bestimmte Aktion in Ihrer App anfordert, sollte Ihre App nur die Berechtigungen anfordern, die für diese 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 vertrauliche Informationen zugreifen zu müssen.
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 Sprachnachrichten an andere senden können, warten Sie, bis der Nutzer den Messaging-Bildschirm aufgerufen und auf die Schaltfläche Sprachnachricht senden getippt hat. Nachdem der Nutzer die Schaltfläche gedrückt hat, kann Ihre App den Zugriff auf das Mikrofon anfordern.
Abhängigkeiten Ihrer App berücksichtigen
Wenn Sie eine Bibliothek einbinden, übernehmen Sie auch deren 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, müssen Sie klar angeben, worauf Sie zugreifen, warum und welche Funktionen betroffen sind, wenn die Berechtigungen verweigert werden. So können Nutzer fundierte Entscheidungen treffen.
Systemzugriffe explizit machen
Wenn du auf vertrauliche Daten oder Hardware wie die Kamera oder das Mikrofon zugreifst, solltest du in deiner App eine kontinuierliche Anzeige bereitstellen, falls das System diese Anzeigen nicht bereits bereitstellt. Diese Erinnerung hilft Nutzern, genau zu verstehen, wann deine App auf eingeschränkte Daten zugreift oder eingeschränkte Aktionen ausführt.
Berechtigungen in Systemkomponenten
Berechtigungen sind nicht nur für die Anforderung von Systemfunktionen gedacht. Die Systemkomponenten Ihrer App können einschränken, welche anderen Apps mit Ihrer App interagieren können, wie auf der Seite Interaktionen mit anderen Apps einschränken beschrieben.