Autenticazione e autorizzazione nel servizio app di Azure per app per dispositivi mobili

Questo articolo descrive le procedure di autenticazione e autorizzazione durante lo sviluppo di app per dispositivi mobili native con un back-end del servizio app. Il servizio app offre funzionalità integrate di autenticazione e autorizzazione, in modo che le app per dispositivi mobili possano consentire l'accesso agli utenti senza modificare il codice del servizio app. Fornisce un modo semplice per proteggere l'applicazione e utilizzare dati per-utente.

Avviso

Questo articolo illustra la versione 4.2.0 di Azure Mobile Apps Client SDK. La versione corrente usa un nuovo meccanismo di autenticazione e non supporta app Azure'autenticazione e autorizzazione del servizio nello stesso modo.

Per informazioni sul funzionamento delle procedure di autenticazione e autorizzazione nel servizio app, vedere Autenticazione e autorizzazione nel servizio app di Azure.

Autenticazione con SDK del provider

Dopo aver completato tutte le configurazioni nel servizio app, è possibile modificare i client per dispositivi mobili per l'accesso con il servizio app. Di seguito, sono disponibili due approcci:

  • Uso di un SDK pubblicato da un determinato provider di identità per stabilire l'identità e quindi accedere al servizio app.
  • Uso di una singola riga di codice per consentire all'SDK client delle app per dispositivi mobili di eseguire la procedura di accesso degli utenti.

Suggerimento

La maggior parte delle applicazioni deve usare un SDK del provider per offrire agli utenti un'esperienza di accesso più coerente e per usufruire del supporto dell'aggiornamento del token e di altri vantaggi specificati dal provider.

Quando si usa un SDK del provider, gli utenti possono accedere a un'esperienza più integrata con il sistema operativo in cui viene eseguita l'app. Questo metodo mette anche a disposizione un token del provider e alcune informazioni utente sul client, rendendo molto più semplice usare le API Graph e personalizzare l'esperienza utente. Questo metodo è noto come "flusso client" o "flusso diretto dal client" perché il codice sul client accede agli utenti.

Dopo che è stato ottenuto un token del provider, questo deve essere inviato al servizio app per la convalida. app Azure Servizio convalida il token. Il servizio crea quindi un nuovo token per il client. L'SDK client delle app per dispositivi mobili include metodi helper per la gestione di questo scambio e l'associazione automatica del token a tutte le richieste per il back-end dell'applicazione. È anche possibile mantenere un riferimento al token del provider.

Nota

Alcune piattaforme, ad esempio Windows (WPF), funzioneranno SOLO con un flusso diretto dal client. Altri funzionano ugualmente bene sia con il flusso server che con il flusso client. Se la piattaforma funziona solo con il flusso diretto dal client, verrà visualizzata la guida introduttiva.

Per altre informazioni sul flusso di autenticazione, vedere la sezione Flusso di autenticazione del servizio app.

Autenticazione senza SDK del provider

Se non si vuole configurare un SDK del provider, è possibile consentire al servizio app Azure di gestire automaticamente l'accesso. L'SDK client di App per dispositivi mobili di Azure aprirà una visualizzazione Web al provider scelto e accederà all'utente. Questo metodo viene chiamato "flusso server" o "flusso diretto dal server" perché il server gestisce il processo che consente agli utenti di accedere. L'SDK client non riceve mai il token del provider.

Invio di un token dal flusso diretto dal client

Quando si usa il flusso diretto dal client, ottenere prima di tutto le informazioni pertinenti necessarie app Azure Servizio per convalidare il token. Nella maggior parte dei casi, il token sarà un token di accesso. Per altre informazioni, vedere la documentazione del servizio app Azure.

È quindi possibile compilare l'oggetto JSON appropriato. Ad esempio, se si usa MSAL per eseguire un flusso diretto dal client in .NET in un'applicazione WPF, è possibile usare il codice seguente:

var requestBody = new JObject(new JProperty("access_token", authResult.AccessToken));
var userInfo = await mobileClient.login("aad", requestBody);

Il corpo della richiesta deve corrispondere alle aspettative, come descritto nella documentazione.