Autorizzazioni su Android

Le autorizzazioni app contribuiscono a supportare la privacy degli utenti proteggendo l'accesso a quanto segue:

  • Dati limitati, ad esempio lo stato del sistema e dati di contatto
  • Azioni limitate, ad esempio la connessione a un dispositivo accoppiato e la registrazione l'audio

Questa pagina fornisce una panoramica del funzionamento delle autorizzazioni Android, inclusa una un flusso di lavoro di alto livello per l'utilizzo di autorizzazioni, autorizzazioni e alcune best practice per usare le autorizzazioni nella tua app. Altro pagine spiegano come ridurre al minimo le richieste della tua app autorizzazioni, dichiarare autorizzazioni, richiedi il runtime autorizzazioni e limitare il modo in cui altre app interagire con componenti.

Per visualizzare un elenco completo delle autorizzazioni app per Android, visita l'API Authorization di riferimento.

Per visualizzare alcune app di esempio che dimostrano il flusso di lavoro delle autorizzazioni, visita la Esempi di autorizzazioni Android repository su GitHub.

Flusso di lavoro per l'utilizzo delle autorizzazioni

Se la tua app offre funzionalità che potrebbero richiedere l'accesso a dati con limitazioni o azioni limitate, puoi stabilire se puoi ottenere le informazioni o eseguire azioni senza dover dichiarare autorizzazioni. Puoi soddisfare molti casi d'uso nella tua app, ad esempio scattare foto, mettere in pausa la riproduzione dei contenuti multimediali e visualizzare pertinenti, senza dover dichiarare alcuna autorizzazione.

Se decidi che la tua app deve accedere a dati con limitazioni o eseguire limitazioni azioni necessarie per soddisfare un caso d'uso, dichiarare le autorizzazioni appropriate. Alcune di autorizzazioni, note come autorizzazioni al momento dell'installazione, sono e concesso automaticamente al momento dell'installazione dell'app. Altre autorizzazioni, note come autorizzazioni di runtime, richiedono che la tua app svolga un passo avanti richiedi l'autorizzazione in fase di runtime.

La Figura 1 illustra il flusso di lavoro per l'utilizzo delle autorizzazioni app:

Figura 1. Flusso di lavoro di alto livello per l'utilizzo delle autorizzazioni su su Android.

Tipi di autorizzazioni

Android classifica le autorizzazioni in diversi tipi, ad esempio al momento dell'installazione autorizzazioni, autorizzazioni di runtime e autorizzazioni speciali. Per ciascuna autorizzazione indica l'ambito dei dati con restrizioni a cui la tua app può accedere, ambito delle azioni limitate che la tua app può eseguire, quando il sistema concede la tua app. Il livello di protezione di ciascuna autorizzazione si basa su il suo tipo e viene mostrato pagina di riferimento dell'APIpermissions.

Autorizzazioni al momento dell'installazione

L'immagine a sinistra mostra un elenco di autorizzazioni al momento dell'installazione di un'app. La
    l'immagine a destra mostra una finestra di dialogo popup con due opzioni: consenti e nega.
Figura 2. L'elenco di autorizzazioni al momento dell'installazione di un'app che viene visualizzato in uno store.

Le autorizzazioni al momento dell'installazione concedono alla tua app un accesso limitato a dati limitati oppure Consentire alla tua app di eseguire azioni limitate che incidono minimamente di sistema o altre app. Quando dichiari le autorizzazioni al momento dell'installazione nella tua app, viene lo store presenta all'utente una notifica di autorizzazione al momento dell'installazione quando visualizza la pagina dei dettagli di un'app, come mostrato nella figura 2. La di sistema concede automaticamente alla tua app le autorizzazioni quando l'utente installa dell'app.

Android include diversi sottotipi di autorizzazioni al momento dell'installazione, tra cui: le normali autorizzazioni e le autorizzazioni di firma.

Autorizzazioni normali

Queste autorizzazioni consentono di accedere a dati e azioni che vanno oltre quelli dell'app ma presentino pochi rischi per l'utente la privacy e il funzionamento di altre app.

Il sistema assegna il livello di protezione normal alle autorizzazioni normali.

Autorizzazioni di firma

Il sistema concede un'autorizzazione di firma a un'app solo quando quest'ultima viene firmato dallo stesso certificato dell'app o del sistema operativo che definisce l'autorizzazione.

Applicazioni che implementano servizi con privilegi, come compilazione automatica o VPN utilizzano anche le autorizzazioni di firma. Queste app richiedono autorizzazioni di firma di service-binding in modo che solo il sistema possa ai servizi.

Il sistema assegna il livello di protezione signature alle autorizzazioni di firma.

Autorizzazioni runtime

Una finestra di dialogo popup che contiene due opzioni: consenti e nega.
Figura 3. La richiesta di autorizzazione di sistema l'app richiede un'autorizzazione di runtime.

Le autorizzazioni di runtime, note anche come autorizzazioni pericolose, autorizzano la tua app accesso aggiuntivo ai dati limitati o consentire l'esecuzione dell'app Azioni limitate che influiscono in modo più significativo sul sistema e su altre app. Pertanto, dovrai richiedere autorizzazioni nell'app prima di poter accedere eseguire azioni limitate. Non dare per scontato che queste autorizzazioni siano state concesse in precedenza. Controllale e se necessario, richiedili prima di ogni accesso.

Quando la tua app richiede un autorizzazione di runtime, il sistema presenta una richiesta di autorizzazione di runtime, come illustrato figura 3.

Molte autorizzazioni di runtime accedono ai dati utente privati, un tipo speciale di Dati soggetti a limitazioni che includono informazioni potenzialmente sensibili. Esempi di I dati privati degli utenti includono località e dati di contatto.

Il microfono e la videocamera consentono di accedere a informazioni particolarmente sensibili. Di conseguenza, il sistema ti aiuta a spiegare il motivo per cui la tua app accede a questi dati. informazioni.

Il sistema assegna il livello di protezione dangerous alle autorizzazioni di runtime.

Autorizzazioni speciali

Le autorizzazioni speciali corrispondono a particolari operazioni dell'app. Solo la piattaforma e gli OEM possono definire autorizzazioni speciali. Inoltre, la piattaforma e gli OEM di solito definiscono autorizzazioni speciali per proteggere l'accesso azioni particolarmente potenti, come il passaggio ad altre app.

La pagina Accesso speciale per le app nelle impostazioni di sistema contiene un insieme di che possono essere attivate dall'utente. Molte di queste operazioni vengono implementate autorizzazioni aggiuntive.

Scopri di più su come richiedere un'offerta speciale autorizzazioni.

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. Per Ad esempio, le autorizzazioni per l'invio e la ricezione di SMS potrebbero appartenere allo stesso poiché entrambi sono correlati all'interazione dell'applicazione con gli SMS.

I gruppi di autorizzazioni aiutano il sistema a ridurre al minimo il numero di finestre di dialogo presentate all'utente quando un'app richiede autorizzazioni strettamente correlate. Quando viene chiesto all'utente di concedere autorizzazioni per un'applicazione le autorizzazioni appartenenti allo stesso gruppo vengano presentate nella stessa interfaccia. Tuttavia, le autorizzazioni possono cambiare i gruppi senza preavviso, quindi non dare per scontato che una determinata autorizzazione viene raggruppata con qualsiasi altra autorizzazione.

Best practice

Le autorizzazioni app si basano sulla sicurezza del sistema funzionalità e guida il supporto Android i seguenti obiettivi relativi alla privacy dell'utente:

  • 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é viene utilizzata. accede a questi dati.
  • Minimizzazione dei dati:un'app accede e utilizza solo i dati necessari per un'attività o un'azione specifica richiamata dall'utente.

Questa sezione presenta una serie di best practice principali per l'utilizzo delle autorizzazioni in modo efficace nella tua app. Per ulteriori dettagli su come utilizzare le autorizzazioni su Android, visita la guida relativa alle autorizzazioni app alla pagina di best practice.

Richiedi un numero minimo di autorizzazioni

Quando l'utente richiede una determinata azione nella tua app, quest'ultima deve richiedere solo le autorizzazioni necessarie per completare l'azione. In base a come usi le autorizzazioni, potrebbe esserci un modo alternativo per soddisfare il caso d'uso dell'app senza dover fare affidamento sull'accesso informazioni sensibili.

Associa le autorizzazioni di runtime ad azioni specifiche

Richiedi le autorizzazioni il più tardi possibile durante il flusso dei casi d'uso della tua app. Ad esempio, se la tua app consente agli utenti di inviare messaggi audio ad altre persone, attendi finché l'utente non è giunto alla schermata dei messaggi e ha premuto il pulsante Invia pulsante messaggio audio. Dopo che l'utente preme il pulsante, l'app può richiedi l'accesso al microfono.

Valuta le dipendenze dell'app

Quando includi una libreria, ne erediti anche i requisiti di autorizzazione. Essere e a conoscenza delle autorizzazioni richieste da ogni dipendenza e di ciò autorizzazioni utilizzate.

Sii trasparente

Quando presenti una richiesta di autorizzazione, indica chiaramente a ciò a cui accedi, il motivo e le funzionalità interessate se le autorizzazioni vengono negate. in modo che gli utenti possano prendere decisioni consapevoli.

Rendi espliciti gli accessi al sistema

Quando accedi a dati o hardware sensibili, come la videocamera o il microfono, forniscono un'indicazione continua nella tua app, se il sistema non lo fornisci questi indicatori. Questo promemoria aiuta gli utenti a capire esattamente quando l'accesso alla tua app è limitato o eseguire azioni limitate.

Autorizzazioni nei componenti di sistema

Le autorizzazioni non servono solo per richiedere funzionalità di sistema. Il sistema dell'app possono limitare le altre app che possono interagire con la tua app, descritto nella pagina su come limitare le interazioni con altri Google Cloud.