Berechtigungen auf Android-Geräten

App-Berechtigungen tragen zum Datenschutz für Nutzer bei, indem sie den Zugriff auf Folgendes schützen:

  • Eingeschränkte Daten wie Systemstatus und 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 Beispiel-Apps, die den Berechtigungsworkflow veranschaulichen.

Workflow zur Verwendung von Berechtigungen

Wenn Ihre Anwendung Funktionen bietet, die möglicherweise Zugriff auf eingeschränkte Daten oder eingeschränkte Aktionen erfordern, prüfen Sie, ob Sie die Informationen abrufen oder die Aktionen ausführen können, ohne Berechtigungen erklären zu müssen. Sie können viele Anwendungsfälle in Ihrer App ausführen, z. B. Fotos aufnehmen, die Medienwiedergabe pausieren und relevante Werbung einblenden, ohne Berechtigungen erklären 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, erklären Sie die entsprechenden Berechtigungen. Einige Berechtigungen, auch Berechtigungen zur Installationszeit genannt, werden bei der Installation der Anwendung automatisch gewährt. Bei anderen Berechtigungen, die als Laufzeitberechtigungen bezeichnet werden, muss Ihre Anwendung noch einen Schritt weiter gehen und die Berechtigung zur Laufzeit anfordern.

Abbildung 1 veranschaulicht den Workflow für die Verwendung von App-Berechtigungen:

Abbildung 1. Allgemeiner Workflow zur Verwendung von Berechtigungen unter Android.

Berechtigungsarten

Android kategorisiert Berechtigungen in verschiedene Typen, darunter Berechtigungen für die Installation, Laufzeitberechtigungen und spezielle Berechtigungen. Der Typ der einzelnen Berechtigungen gibt an, auf welchen Umfang die eingeschränkten Daten deine App zugreifen kann und auf welchen eingeschränkten Aktionen deine App zugreifen kann, wenn das System deiner App diese Berechtigung erteilt. Das Schutzniveau für jede Berechtigung basiert auf ihrem Typ und wird auf der Referenzseite der Permissions API angezeigt.

Berechtigungen zum Zeitpunkt der Installation

Das linke Bild zeigt eine Liste der Berechtigungen für die Installation einer App. Auf der rechten Seite ist ein Pop-up-Dialogfeld mit zwei Optionen zu sehen: „Zulassen“ und „Ablehnen“.
Abbildung 2: Die Liste der Berechtigungen bei der Installation einer App, die in einem App-Shop angezeigt wird.

Mit Berechtigungen bei der Installation erhält Ihre App eingeschränkten Zugriff auf eingeschränkte Daten oder lässt sie eingeschränkte Aktionen ausführen, die sich nur minimal auf das System oder andere Anwendungen auswirken. Wenn du Berechtigungen für die Installation in deiner App deklarierst, wird dem Nutzer in einem App-Shop ein Hinweis auf die Berechtigung zur Installation angezeigt, wenn er die Detailseite der App aufruft (siehe Abbildung 2). Das System erteilt Ihrer App automatisch die Berechtigungen, wenn der Nutzer Ihre 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 geringes Risiko für die Privatsphäre der Nutzer und den Betrieb anderer Apps darstellen.

Das System weist das Schutzniveau „normal“ normalen Berechtigungen zu.

Signaturberechtigungen

Das System erteilt einer App nur dann eine Signaturberechtigung, wenn sie von demselben Zertifikat wie die App oder das Betriebssystem signiert ist, das die Berechtigung definiert.

Anwendungen, die privilegierte Dienste wie Autofill- oder VPN-Dienste implementieren, nutzen ebenfalls Signaturberechtigungen. Diese Anwendungen benötigen Signaturberechtigungen für Dienstbindungen, damit sich nur das System an die Dienste binden kann.

Das System weist den Signaturberechtigungen das Schutzniveau signature zu.

Laufzeitberechtigungen

Ein Pop-up-Dialogfeld mit zwei Optionen: „Zulassen“ und „Ablehnen“.
Abbildung 3: Die Systemberechtigungsaufforderung, die angezeigt wird, wenn Ihre App eine Laufzeitberechtigung anfordert.

Laufzeitberechtigungen, auch als gefährliche Berechtigungen bezeichnet, geben Ihrer App zusätzlichen Zugriff auf eingeschränkte Daten oder lassen sie 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 zuvor 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. Dies ist eine spezielle Art von eingeschränkten Daten, die potenziell vertrauliche Informationen enthalten. Beispiele für private Nutzerdaten sind Standort- und Kontaktdaten.

Das Mikrofon und die Kamera bieten Zugriff auf besonders vertrauliche Daten. Daher hilft Ihnen das System, zu erklären, warum Ihre Anwendung auf diese Informationen zugreift.

Das System weist den Laufzeitberechtigungen das Schutzniveau dangerous zu.

Besondere Berechtigungen

Spezielle Berechtigungen entsprechen bestimmten Anwendungsvorgängen. Spezielle Berechtigungen können nur von der Plattform und den OEMs definiert werden. 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 Überlagern anderer 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 werden als spezielle Berechtigungen implementiert.

Weitere Informationen zum Anfordern spezieller Berechtigungen

Das System weist speziellen Berechtigungen das Schutzniveau „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 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 Anwendung eng verwandte 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 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 versteht, welche Daten eine Anwendung verwendet und warum sie auf diese Daten zugreift.
  • Datenminimierung: Eine Anwendung greift nur auf die Daten zu und verwendet diese für eine bestimmte Aufgabe oder Aktion, die der Nutzer aufruft.

In diesem Abschnitt werden einige grundlegende Best Practices für die effektive Nutzung von Berechtigungen in Ihrer App vorgestellt. Weitere Informationen zur Arbeit mit 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 Anwendung anfordert, sollte Ihre Anwendung 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 App zu erfüllen, ohne Zugriff auf vertrauliche Informationen zu benötigen.

Laufzeitberechtigungen mit bestimmten Aktionen verknüpfen

Fordere Berechtigungen so spät wie möglich beim Ablauf der Anwendungsfälle deiner App an. Wenn Ihre Anwendung beispielsweise Nutzern ermöglicht, Audionachrichten an andere zu senden, warten Sie, bis der Nutzer zum Nachrichtenbildschirm navigiert 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 Ihrer App berücksichtigen

Wenn Sie eine Bibliothek hinzufügen, ü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, 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, sollten Sie in Ihrer App durchgehend darauf hinweisen, falls das System diese Indikatoren noch nicht bereitstellt. Durch diese Erinnerung können Nutzer genau nachvollziehen, 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 deiner App können einschränken, welche anderen Apps mit deiner App interagieren können, wie auf der Seite zum Einschränken der Interaktion mit anderen Apps beschrieben.