Le autorizzazioni app contribuiscono a supportare la privacy degli utenti proteggendo l'accesso ai seguenti elementi:
- Dati limitati, ad esempio lo stato del sistema e le informazioni di contatto degli utenti.
- Azioni limitate, ad esempio la connessione a un dispositivo accoppiato e la registrazione di audio
Questa pagina fornisce una panoramica sul funzionamento delle autorizzazioni Android, incluso un flusso di lavoro generale per l'utilizzo delle autorizzazioni, descrizioni dei diversi tipi di autorizzazioni e alcune best practice per l'utilizzo delle autorizzazioni nella tua app. Altre pagine spiegano come ridurre al minimo le richieste di autorizzazioni della tua app, dichiarare le autorizzazioni, richiedere autorizzazioni di runtime e limitare il modo in cui altre app possono interagire con i componenti della tua app.
Per visualizzare un elenco completo delle autorizzazioni app per Android, visita la pagina di riferimento dell'API delle autorizzazioni.
Per visualizzare alcune app di esempio che dimostrano il flusso di lavoro delle autorizzazioni, visita il repository degli esempi di autorizzazioni Android su GitHub.
Flusso di lavoro per l'utilizzo delle autorizzazioni
Se la tua app offre funzionalità che potrebbero richiedere l'accesso a dati o azioni limitate, stabilisci se puoi ottenere le informazioni o eseguire azioni senza dover dichiarare le autorizzazioni. Nella tua app puoi soddisfare molti casi d'uso, ad esempio scattare foto, mettere in pausa la riproduzione di contenuti multimediali e mostrare annunci pertinenti, senza dover dichiarare alcuna autorizzazione.
Se decidi che la tua app deve accedere a dati con restrizioni o eseguire azioni limitate per soddisfare un caso d'uso, dichiara le autorizzazioni appropriate. Alcune autorizzazioni, note come autorizzazioni al momento dell'installazione, vengono concesse automaticamente al momento dell'installazione dell'app. Le altre autorizzazioni, note come autorizzazioni di runtime, richiedono alla tua app di andare oltre e richiedere l'autorizzazione in fase di runtime.
La figura 1 illustra il flusso di lavoro per l'utilizzo delle autorizzazioni app:
Tipi di autorizzazioni
Android classifica le autorizzazioni in diversi tipi, tra cui autorizzazioni al momento dell'installazione, autorizzazioni di runtime e autorizzazioni speciali. Il tipo di ogni autorizzazione indica l'ambito dei dati con restrizioni a cui può accedere la tua app e l'ambito delle azioni limitate che l'app può eseguire, quando il sistema concede all'app questa autorizzazione. Il livello di protezione di ogni autorizzazione si basa sul tipo ed è riportato nella pagina di riferimento dell'API per le autorizzazioni.
Autorizzazioni al momento dell'installazione
Le autorizzazioni al momento dell'installazione offrono alla tua app un accesso limitato a dati limitati o consentono alla tua app di eseguire azioni limitate che incidono in modo minimo sul sistema o su altre app. Quando dichiari le autorizzazioni al momento dell'installazione nella tua app, uno store presenta all'utente una notifica di autorizzazione al momento dell'installazione quando l'utente visualizza la pagina dei dettagli dell'app, come mostrato nella Figura 2. Il sistema concede automaticamente le autorizzazioni all'app quando l'utente installa la tua app.
Android include diversi sottotipi di autorizzazioni al momento dell'installazione, incluse quelle normali e quelle per la firma.
Autorizzazioni normali
Queste autorizzazioni consentono l'accesso a dati e azioni che si estendono oltre la sandbox dell'app, ma presentano un rischio minimo per la privacy dell'utente e il funzionamento di altre app.
Il sistema assegna il livello di protezione normal
alle autorizzazioni normali.
Autorizzazioni firma
Il sistema concede un'autorizzazione di firma a un'app solo se quest'ultima è firmata dallo stesso certificato dell'app o del sistema operativo che definisce l'autorizzazione.
Anche le applicazioni che implementano servizi con privilegi, come la compilazione automatica o i servizi VPN, utilizzano le autorizzazioni per la firma. Queste app richiedono autorizzazioni per la firma di associazione dei servizi, in modo che solo il sistema possa associarsi ai servizi.
Il sistema assegna il livello di protezione signature
alle autorizzazioni per la firma.
Autorizzazioni runtime
Le autorizzazioni di runtime, note anche come autorizzazioni pericolose, offrono alla tua app un ulteriore accesso a dati limitati o consentono alla tua app di eseguire azioni limitate che incidono in modo più significativo sul sistema e su altre app. Pertanto, devi richiedere le autorizzazioni di runtime nella tua app prima di poter accedere ai dati con restrizioni o eseguire azioni limitate. Non dare per scontato che queste autorizzazioni siano state concesse in precedenza. Controllale e, se necessario, richiedile prima di ogni accesso.
Quando la tua app richiede un'autorizzazione di runtime, il sistema presenta una richiesta di autorizzazione di runtime, come mostrato nella Figura 3.
Molte autorizzazioni di runtime accedono ai dati privati dell'utente, un tipo speciale di dati soggetti a restrizioni che include informazioni potenzialmente sensibili. Esempi di dati utente privati includono la posizione e le informazioni di contatto.
Il microfono e la fotocamera forniscono l'accesso a informazioni particolarmente sensibili. Pertanto, il sistema ti aiuta a spiegare perché la tua app accede a queste informazioni.
Il sistema assegna il livello di protezione dangerous
alle autorizzazioni di runtime.
Autorizzazioni speciali
Le autorizzazioni speciali corrispondono a determinate operazioni dell'app. Solo la piattaforma e gli OEM possono definire autorizzazioni speciali. Inoltre, la piattaforma e gli OEM di solito definiscono autorizzazioni speciali quando vogliono proteggere l'accesso ad azioni particolarmente potenti, ad esempio il disegno su altre app.
La pagina Accesso speciale per le app nelle impostazioni di sistema contiene un insieme di operazioni commutabili dall'utente. Molte di queste operazioni sono implementate come autorizzazioni speciali.
Scopri di più su come richiedere autorizzazioni speciali.
Il sistema assegna il livello di protezione appop
ad autorizzazioni speciali.
Gruppi di autorizzazioni
Le autorizzazioni possono appartenere a gruppi di autorizzazioni. I gruppi di autorizzazioni sono costituiti da un insieme di autorizzazioni correlate logicamente. Ad esempio, le autorizzazioni per l'invio e la ricezione di messaggi SMS potrebbero appartenere allo stesso gruppo, in quanto entrambe riguardano l'interazione dell'applicazione con gli SMS.
I gruppi di autorizzazioni consentono al sistema di ridurre al minimo il numero di finestre di dialogo di sistema presentate all'utente quando un'app richiede autorizzazioni strettamente correlate. Quando a un utente viene presentata la richiesta di concedere le autorizzazioni per un'applicazione, le autorizzazioni appartenenti allo stesso gruppo vengono presentate nella stessa interfaccia. Tuttavia, le autorizzazioni possono modificare i gruppi senza preavviso, quindi non dare per scontato che una determinata autorizzazione sia raggruppata con qualsiasi altra autorizzazione.
Best practice
Le autorizzazioni app si basano sulle funzionalità di sicurezza del sistema e consentono ad Android di supportare i seguenti obiettivi relativi alla privacy degli utenti:
- Controllo:l'utente ha il controllo sui dati che condivide con le app.
- Trasparenza: l'utente comprende quali dati vengono utilizzati da un'app e perché l'app accede a tali dati.
- Minimizzazione dei dati: un'app accede e utilizza solo i dati necessari per un'attività o un'azione specifica richiamati dall'utente.
Questa sezione presenta un insieme di best practice fondamentali per utilizzare in modo efficace le autorizzazioni nella tua app. Per ulteriori dettagli su come utilizzare le autorizzazioni su Android, visita la pagina Best practice per le autorizzazioni app.
Richiedi un numero minimo di autorizzazioni
Quando un utente richiede una determinata azione nella tua app, quest'ultima deve richiedere solo le autorizzazioni necessarie per completare l'azione. A seconda di come utilizzi le autorizzazioni, potrebbe esistere un modo alternativo per soddisfare il caso d'uso della tua app senza fare affidamento sull'accesso a informazioni sensibili.
Associa le autorizzazioni di runtime ad azioni specifiche
Richiedi le autorizzazioni il più tardi possibile nel flusso dei casi d'uso della tua app. Ad esempio, se l'app consente agli utenti di inviare messaggi audio ad altre persone, attendi che l'utente sia passato alla schermata dei messaggi e abbia premuto il pulsante Invia messaggio audio. Dopo che l'utente ha premuto il pulsante, l'app può richiedere l'accesso al microfono.
Valuta le dipendenze della tua app
Quando includi una libreria, ne erediti anche i requisiti di autorizzazione. Tieni presente le autorizzazioni richieste da ogni dipendenza e lo scopo per cui vengono utilizzate.
Sii trasparente
Quando effettui una richiesta di autorizzazione, indica chiaramente a cosa stai accedendo, perché e quali funzionalità sono interessate se le autorizzazioni vengono negate, in modo che gli utenti possano prendere decisioni consapevoli.
Rendi espliciti gli accessi al sistema
Quando accedi a hardware o dati sensibili, come la fotocamera o il microfono, fornisci un'indicazione continua nella tua app se il sistema non fornisce già questi indicatori. Questo promemoria aiuta gli utenti a capire esattamente quando la tua app accede a dati soggetti a restrizioni o esegue azioni limitate.
Autorizzazioni nei componenti di sistema
Le autorizzazioni non servono solo per richiedere funzionalità del sistema. I componenti di sistema dell'app possono limitare le altre app che possono interagire con l'app, come descritto nella pagina su come limitare le interazioni con altre app.