App-Berechtigungen tragen zum Datenschutz für Nutzer bei, da sie den Zugriff auf Folgendes schützen:
- Eingeschränkte Daten wie Systemstatus und Kontaktdaten von Nutzern
- Eingeschränkte Aktionen wie das Herstellen einer Verbindung zu einem gekoppelten Gerät und das Aufzeichnen von Audio
Auf dieser Seite erhalten Sie einen Überblick über die Funktionsweise von Android-Berechtigungen. Dazu gehören ein allgemeiner Workflow zur Verwendung von Berechtigungen, Beschreibungen verschiedener Berechtigungsarten und einige Best Practices für die Verwendung von Berechtigungen in Ihrer App. Auf anderen Seiten wird erläutert, wie Sie die Berechtigungsanfragen Ihrer App minimieren, Berechtigungen deklarieren, Laufzeitberechtigungen anfordern und einschränken, wie andere Apps mit den Komponenten Ihrer App interagieren können.
Eine vollständige Liste der Berechtigungen für Android-Apps finden Sie auf der Referenzseite der Entitlements API.
Im Repository mit Beispielen für Android-Berechtigungen auf GitHub finden Sie einige Beispiel-Apps, die den Berechtigungsworkflow zeigen.
Workflow zur Verwendung von Berechtigungen
Wenn Ihre Anwendung Funktionen bietet, für die möglicherweise Zugriff auf eingeschränkte Daten oder eingeschränkte Aktionen erforderlich ist, prüfen Sie, ob Sie die Informationen abrufen oder die Aktionen ausführen können, ohne Berechtigungen deklarieren zu müssen. Sie können Ihre App für viele Anwendungsfälle nutzen, z. B. Fotos aufnehmen, die Medienwiedergabe pausieren oder relevante Werbung einblenden, ohne Berechtigungen angeben 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 als Berechtigungen zum Zeitpunkt der Installation bezeichnet werden, werden bei der Installation Ihrer Anwendung automatisch gewährt. Bei anderen Berechtigungen, die als Laufzeitberechtigungen bezeichnet werden, muss Ihre App noch 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 bei der Installation, Laufzeitberechtigungen und spezielle Berechtigungen. Jeder Berechtigungstyp gibt den Umfang der eingeschränkten Daten an, auf die Ihre App zugreifen kann, sowie den Umfang der eingeschränkten Aktionen, die Ihre App ausführen kann, wenn das System Ihrer App diese Berechtigung gewährt. Das Schutzniveau jeder Berechtigung basiert auf ihrem Typ und wird auf der Seite Berechtigungs-API-Referenz angezeigt.
Berechtigungen bei der Installation
Berechtigungen während der Installation geben Ihrer Anwendung eingeschränkten Zugriff auf eingeschränkte Daten oder erlauben ihr, eingeschränkte Aktionen auszuführen, die sich nur minimal auf das System oder andere Anwendungen auswirken. Wenn Sie in Ihrer App Berechtigungen für die Installation angeben, wird dem Nutzer in einem App-Shop ein Hinweis zur Berechtigung für die Installation angezeigt, wenn er die Detailseite einer App aufruft (siehe Abbildung 2). Das System erteilt Ihrer App die Berechtigungen automatisch, wenn der Nutzer die App installiert.
Android umfasst mehrere Untertypen von Berechtigungen bei der Installation, 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 nur ein sehr geringes Risiko für die Privatsphäre des Nutzers und den Betrieb anderer Apps darstellen.
Das System weist den normalen Berechtigungen das normal
-Schutzniveau zu.
Signaturberechtigungen
Das System erteilt einer App nur dann eine Signaturberechtigung, wenn sie mit demselben Zertifikat signiert ist wie die App oder das Betriebssystem, das die Berechtigung definiert.
Anwendungen, die privilegierte Dienste implementieren, wie Autofill- oder VPN-Dienste, verwenden ebenfalls Signaturberechtigungen. Diese Anwendungen erfordern Signaturberechtigungen für die Dienstbindung, sodass nur das System an die Dienste gebunden werden kann.
Das System weist Signaturberechtigungen die Schutzstufe signature
zu.
Laufzeitberechtigungen
Laufzeitberechtigungen, auch als gefährliche Berechtigungen bezeichnet, gewähren Ihrer Anwendung zusätzlichen Zugriff auf eingeschränkte Daten oder ermöglichen es Ihrer Anwendung, eingeschränkte Aktionen auszuführen, die erhebliche Auswirkungen auf das System und andere Anwendungen haben. 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 zuvor gewährt 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 Aufforderung für die Laufzeitberechtigung an (siehe Abbildung 3).
Viele Laufzeitberechtigungen greifen auf private Nutzerdaten zu. Dies sind eine spezielle Art eingeschränkter Daten, die potenziell vertrauliche Informationen enthalten. Beispiele für private Nutzerdaten sind Standort- und Kontaktdaten.
Über das Mikrofon und die Kamera haben Sie Zugriff auf besonders vertrauliche Informationen. Daher können Sie mithilfe des Systems erklären, warum Ihre Anwendung auf diese Informationen zugreift.
Das System weist Laufzeitberechtigungen das Schutzniveau dangerous
zu.
Besondere Berechtigungen
Spezielle Berechtigungen gelten für bestimmte App-Vorgänge. Nur die Plattform und die OEMs können spezielle Berechtigungen definieren. Darüber hinaus 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 Einblenden von anderen Apps.
Die Seite Spezieller App-Zugriff in den Systemeinstellungen enthält eine Reihe von Vorgängen, die vom Nutzer aktiviert und deaktiviert werden können. Viele dieser Vorgänge werden als spezielle Berechtigungen implementiert.
Weitere Informationen zum Anfordern 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.
Berechtigungsgruppen helfen dem System, die Anzahl der Systemdialoge 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 erteilen, werden die Berechtigungen derselben Gruppe auf derselben Benutzeroberfläche angezeigt. Gruppen mit Berechtigungen können jedoch ohne vorherige Ankündigung geändert werden. Gehen Sie also nicht davon aus, dass eine bestimmte Berechtigung mit einer anderen Berechtigung gruppiert ist.
Best Practices
App-Berechtigungen bauen auf Systemsicherheitsfunktionen auf und helfen Android dabei, die folgenden Ziele in Bezug auf den Datenschutz für Nutzer zu unterstützen:
- Kontrolle:Der Nutzer hat die Kontrolle über die Daten, die er mit Apps teilt.
- Transparenz: Der Nutzer kann nachvollziehen, welche Daten eine App verwendet und warum die App auf diese Daten zugreift.
- Datenminimierung: Eine Anwendung greift nur auf die Daten zu und verwendet diese, die für eine bestimmte vom Nutzer aufgerufene Aufgabe oder Aktion erforderlich sind.
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.
Minimale Anzahl von Berechtigungen anfordern
Wenn der Nutzer eine bestimmte Aktion in Ihrer App anfordert, sollte Ihre App nur die Berechtigungen anfordern, die zum Ausführen dieser Aktion erforderlich sind. Je nachdem, wie Sie die Berechtigungen verwenden, gibt es möglicherweise eine alternative Möglichkeit, den Anwendungsfall Ihrer Anwendung zu erfüllen, ohne den Zugriff auf vertrauliche Informationen zu benötigen.
Laufzeitberechtigungen mit bestimmten Aktionen verknüpfen
Fordere Berechtigungen so früh wie möglich beim Ablauf der Anwendungsfälle deiner App an. Wenn Ihre Anwendung beispielsweise zulässt, dass Nutzer Sprachnachrichten an andere senden, warten Sie, bis der Nutzer den Nachrichtenbildschirm aufgerufen und auf die Schaltfläche Audionachricht senden geklickt hat. Nachdem der Nutzer auf die Schaltfläche geklickt hat, kann Ihre App Zugriff auf das Mikrofon anfordern.
Abhängigkeiten der Anwendung berücksichtigen
Wenn Sie eine Bibliothek einschließen, übernehmen Sie auch deren Berechtigungsanforderungen. Seien Sie sich der Berechtigungen bewusst, die die einzelnen Abhängigkeiten erfordern, und der Verwendung dieser Berechtigungen.
Transparent sein
Wenn Sie eine Berechtigungsanfrage stellen, geben Sie an, worauf Sie zugreifen, warum und welche Funktionen davon betroffen sind, wenn Berechtigungen verweigert werden, damit Nutzer fundierte Entscheidungen treffen können.
Systemzugriffe explizit machen
Wenn Sie auf sensible Daten oder Hardware wie die Kamera oder das Mikrofon zugreifen, geben Sie in Ihrer App eine durchgehende Meldung an, falls das System diese Indikatoren nicht bereits bereitstellt. 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 zum Anfordern von Systemfunktionen. Die Systemkomponenten Ihrer App können einschränken, welche anderen Apps mit Ihrer App interagieren können. Eine Beschreibung hierzu finden Sie auf der Seite zum Einschränken von Interaktionen mit anderen Apps.