(Legacy) Autenticazione di Adobe Pass e il nuovo modello di autorizzazioni "Marshmallow" di Android 6 adobe-primetime-authentication-and-the-android-6-marshmallow-new-permissions-model
La nuova versione Marshmallow di Android 6 introduce alcuni aggiornamenti al modello di autorizzazioni, che possono influenzare il comportamento delle app che utilizzano l’autenticazione SDK di Adobe Pass versione 1.8 e precedenti.
Il nuovo sistema operativo Android offre un controllo granulare di sulle autorizzazioni necessarie per le app al momento dell'installazione e in fase di esecuzione.
In particolare, per le app sviluppate in Android Studio che utilizzano il livello API 23 e che utilizzano Adobe Pass Authentication SDK, lo sviluppatore dovrà scrivere un codice personalizzato (vedi frammento di codice di seguito) per attivare la finestra di dialogo per l'autorizzazione.
Di seguito è riportato un estratto di codice utilizzato per richiedere l’accesso in scrittura allo storage esterno del dispositivo:
// Here, thisActivity is the current activity
if (ContextCompat.checkSelfPermission(thisActivity,
Manifest.permission.WRITE_EXTERNAL_STORAGE)
!= PackageManager.WRITE_EXTERNAL_STORAGE) {
// Should we show an explanation?
if (ActivityCompat.shouldShowRequestPermissionRationale(thisActivity,
Manifest.permission.WRITE_EXTERNAL_STORAGE)) {
// Show an expanation to the user *asynchronously* -- don't block
// this thread waiting for the user's response! After the user
// sees the explanation, try again to request the permission.
} else {
// No explanation needed, we can request the permission.
ActivityCompat.requestPermissions(thisActivity,
new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE},
MY_PERMISSIONS_REQUEST_WRITE_EXTERNAL_STORAGE);
// MY_PERMISSIONS_REQUEST_WRITE_EXTERNAL_STORAGE is an
// app-defined int constant. The callback method gets the
// result of the request.
}
}
Dal punto di vista degli utenti, al momento dell'installazione gli utenti vengono accolti da una finestra in cui viene richiesto di confermare le autorizzazioni di lettura/scrittura per i file (vedere la figura 2 seguente). Questo porta a uno dei due risultati seguenti:
- Se l'utente conferma le autorizzazioni, il normale flusso di autenticazione verrà mantenuto e i token verranno archiviati nell'archiviazione globale. Gli utenti rimarranno autenticati nell’app e tra le app utilizzando l’autenticazione di Adobe Pass per tutto il tempo in cui i token sono validi.
- Se l'utente nega le autorizzazioni, le azioni di scrittura nell'archivio non riusciranno e gli utenti verranno autenticati solo fino a quando non usciranno dall'app. Tieni presente che alcune applicazioni vengono reinizializzate quando si passa dal primo piano al background, in modo che gli utenti vengano disconnessi quando si esegue questa azione. I token NON sono memorizzati e gli utenti dovranno autenticarsi ogni volta che utilizzano l’app.
Figura: finestra di dialogo della richiesta di autorizzazione per le app scritte nel targeting API livello 23