Les autorisations des applications contribuent à respecter la confidentialité des utilisateurs en protégeant l'accès aux éléments suivants :
- Données restreintes, telles que l'état du système et les coordonnées des utilisateurs
- Actions limitées, telles que la connexion à un appareil associé et les enregistrements audio
Cette page présente le fonctionnement des autorisations Android, y compris un workflow de haut niveau concernant l'utilisation des autorisations, des descriptions des différents types d'autorisations et quelques bonnes pratiques concernant l'utilisation des autorisations dans votre application. D'autres pages expliquent comment diminuer les demandes d'autorisation de votre application, déclarer des autorisations, demander des autorisations d'exécution et limiter les interactions des autres applications avec les composants de votre application.
Pour afficher la liste complète des autorisations d'application Android, consultez la page de référence des API d'autorisation.
Pour consulter des exemples d'applications illustrant le workflow d'autorisation, consultez le dépôt d'exemples d'autorisations Android sur GitHub.
Workflow d'utilisation des autorisations
Si votre application propose une fonctionnalité qui peut nécessiter un accès à des données ou des actions restreintes, déterminez s'il vous est possible d'obtenir les informations ou d'effectuer les actions sans avoir à déclarer d'autorisations. Vous pouvez répondre à de nombreux cas d'utilisation dans votre application, tels que la prise de photos, la mise en pause de la lecture de contenus multimédias et l'affichage d'annonces pertinentes, sans avoir à déclarer d'autorisations.
Si vous décidez que votre application doit accéder à des données restreintes ou effectuer des actions restreintes pour remplir un cas d'utilisation, déclarez les autorisations appropriées. Certaines autorisations, appelées autorisations d'installation, sont automatiquement accordées lors de l'installation de votre application. Pour d'autres autorisations, appelées autorisations d'exécution, votre application doit demander l'autorisation au moment de l'exécution.
La figure 1 illustre le workflow lié à l'utilisation des autorisations d'application :
Types d'autorisations
Android classe les autorisations en différents types, y compris les autorisations au moment de l'installation, les autorisations d'exécution et les autorisations spéciales. Le type de chaque autorisation indique l'étendue des données restreintes auxquelles votre application peut accéder, ainsi que l'étendue des actions limitées qu'elle peut effectuer lorsque le système lui accorde cette autorisation. Le niveau de protection de chaque autorisation est basé sur son type et figure sur la page de référence des API d'autorisation.
Autorisations d'installation
Les autorisations d'installation donnent à votre application un accès limité aux données restreintes ou lui permettent d'effectuer des actions limitées qui affectent le moins possible le système ou les autres applications. Lorsque vous déclarez des autorisations d'installation dans votre application, une plate-forme de téléchargement d'applications présente à l'utilisateur un avis relatif aux autorisations d'installation lorsqu'il consulte la page d'informations d'une application, comme illustré dans la figure 2. Le système accorde automatiquement les autorisations à votre application lorsque l'utilisateur l'installe.
Android inclut plusieurs sous-types d'autorisations d'installation, y compris des autorisations normales et des autorisations de signature.
Autorisations normales
Ces autorisations permettent d'accéder à des données et à des actions qui s'étendent au-delà du bac à sable de votre application, mais présentent très peu de risques pour la confidentialité de l'utilisateur et le fonctionnement d'autres applications.
Le système attribue le niveau de protection normal
aux autorisations normales.
Autorisations de signature
Le système n'accorde une autorisation de signature à une application que lorsque celle-ci est signée par le même certificat que l'application ou le système d'exploitation qui définit l'autorisation.
Les applications qui mettent en œuvre des services privilégiés, tels que la saisie automatique ou les services VPN, utilisent également des autorisations de signature. Ces applications nécessitent des autorisations de signature de liaison de service pour que seul le système puisse être lié aux services.
Le système attribue le niveau de protection signature
aux autorisations de signature.
Autorisations d'exécution
Les autorisations d'exécution, également connues sous le nom d'autorisations dangereuses, donnent à votre application un accès supplémentaire aux données restreintes ou lui permettent d'effectuer des actions limitées qui affectent plus particulièrement le système et les autres applications. Par conséquent, vous devez demander des autorisations d'exécution dans votre application avant de pouvoir accéder aux données restreintes ou effectuer des actions limitées. Ne supposez pas que ces autorisations ont déjà été accordées. Vérifiez et, si nécessaire, demandez-les avant chaque accès.
Lorsque votre application demande une autorisation d'exécution, le système présente une invite d'autorisation d'exécution, comme illustré dans la figure 3.
De nombreuses autorisations d'exécution accèdent aux données utilisateur privées, un type spécial de données restreintes qui inclut des informations potentiellement sensibles. Les coordonnées et les données de localisation sont des exemples de données utilisateur privées.
Le micro et la caméra permettent d'accéder à des informations particulièrement sensibles. Par conséquent, le système vous aide à expliquer pourquoi votre application accède à ces informations.
Le système attribue le niveau de protection dangerous
aux autorisations d'exécution.
Autorisations spéciales
Les autorisations spéciales correspondent à des opérations d'application particulières. Seuls la plate-forme et les OEM peuvent définir des autorisations spéciales. De plus, la plate-forme et les OEM définissent généralement des autorisations spéciales lorsqu'ils souhaitent protéger l'accès à des actions particulièrement performantes, comme la superposition sur d'autres applications.
La page Accès spéciaux des applis dans les paramètres système contient un ensemble d'opérations à activer par l'utilisateur. Un grand nombre de ces opérations sont implémentées en tant qu'autorisations spéciales.
Découvrez comment demander des autorisations spéciales.
Le système attribue le niveau de protection appop
aux autorisations spéciales.
Groupes d'autorisations
Les autorisations peuvent appartenir à des groupes d'autorisations. Les groupes d'autorisations sont constitués d'un ensemble d'autorisations au lien logique. Par exemple, les autorisations d'envoi et de réception de SMS peuvent appartenir au même groupe, car elles sont toutes les deux liées à l'interaction de l'application avec les SMS.
Les groupes d'autorisations permettent au système de réduire le nombre de boîtes de dialogue présentées à l'utilisateur lorsqu'une application demande des autorisations étroitement liées. Lorsqu'un utilisateur est invité à accorder des autorisations pour une application, les autorisations appartenant au même groupe sont présentées dans la même interface. Toutefois, les autorisations peuvent changer de groupe sans préavis. Par conséquent, ne supposez pas qu'une autorisation particulière est regroupée avec toute autre autorisation.
Bonnes pratiques
Les autorisations des applications s'appuient sur les fonctionnalités de sécurité du système et aident Android à atteindre les objectifs suivants liés à la confidentialité des utilisateurs :
- Contrôle : l'utilisateur contrôle les données qu'il partage avec les applications.
- Transparence : l'utilisateur comprend quelles données une application utilise et pourquoi elle y accède.
- Minimisation des données : une application accède et n'utilise que les données requises pour une tâche ou une action spécifique invoquée par l'utilisateur.
Cette section présente un ensemble de bonnes pratiques essentielles pour utiliser efficacement les autorisations dans votre application. Pour en savoir plus sur l'utilisation des autorisations sur Android, consultez la page Bonnes pratiques pour les autorisations des applications.
Demander un nombre minimal d'autorisations
Lorsque l'utilisateur demande une action particulière dans votre application, celle-ci ne doit demander que les autorisations nécessaires pour effectuer cette action. Selon la façon dont vous utilisez les autorisations, il existe une autre manière de traiter le cas d'utilisation de votre application sans dépendre de l'accès à des informations sensibles.
Associer des autorisations d'exécution à des actions spécifiques
Demandez les autorisations le plus tard possible dans le flux des cas d'utilisation de votre application. Par exemple, si votre application permet aux utilisateurs d'envoyer des messages audio à d'autres personnes, attendez qu'ils aient accédé à l'écran de messagerie et qu'ils aient appuyé sur le bouton Envoyer un message audio. Une fois que l'utilisateur a appuyé sur le bouton, votre application peut demander l'accès au micro.
Examiner les dépendances de votre application
Lorsque vous incluez une bibliothèque, vous héritez également de ses exigences d'autorisation. Tenez compte des autorisations requises par chaque dépendance et de leur utilisation.
Assurer la transparence
Lorsque vous demandez des autorisations, indiquez clairement à quoi vous accédez, pourquoi et quelles fonctionnalités sont affectées par un refus d'autorisation, afin que les utilisateurs puissent prendre des décisions éclairées.
Rendre explicites les accès au système
Lorsque vous accédez à des données ou à du matériel sensibles, tels que la caméra ou le micro, fournissez une indication continue dans votre application si le système ne fournit pas déjà ces indicateurs. Ce rappel aide les utilisateurs à comprendre exactement quand votre application accède à des données restreintes ou effectue des actions limitées.
Autorisations au niveau des composants système
Les autorisations ne concernent pas uniquement la demande de fonctionnalité système. Les composants système de votre application peuvent limiter les autres applications susceptibles d'interagir avec elle, comme décrit sur la page expliquant comment restreindre les interactions avec d'autres applications.