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

Nota

Questo prodotto viene ritirato. Per una sostituzione dei progetti che usano .NET 8 o versione successiva, vedere la libreria datasync di Community Toolkit.

Questo articolo descrive il funzionamento dell'autenticazione e dell'autorizzazione quando si sviluppano app per dispositivi mobili native con un back-end del servizio app. Il servizio app fornisce l'autenticazione e l'autorizzazione integrate, in modo che le app per dispositivi mobili possano consentire agli utenti di accedere senza modificare alcun codice nel servizio app. Offre un modo semplice per proteggere l'applicazione e usare i dati per utente.

Avvertimento

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 l'autenticazione del servizio app di Azure & l'autorizzazione nello stesso modo.

Per informazioni sul funzionamento dell'autenticazione e dell'autorizzazione nel servizio app, vedere autenticazione e autorizzazione nel servizio app di Azure.

Autenticazione con l'SDK del provider

Dopo aver configurato tutti gli elementi nel servizio app, è possibile modificare i client per dispositivi mobili per accedere con il servizio app. Ecco due approcci:

  • Usare un SDK pubblicato da un determinato provider di identità per stabilire l'identità e quindi ottenere l'accesso al servizio app.
  • Usare una singola riga di codice in modo che l'SDK client di App per dispositivi mobili possa accedere agli utenti.

Mancia

La maggior parte delle applicazioni deve usare un SDK del provider per ottenere un'esperienza più coerente quando gli utenti eseguono l'accesso, per usare il supporto dell'aggiornamento dei token e per ottenere altri vantaggi specificati dal provider.

Quando si usa un SDK del provider, gli utenti possono accedere a un'esperienza che si integra più strettamente con il sistema operativo in cui è in esecuzione l'app. Questo metodo offre anche un token del provider e alcune informazioni utente sul client, che semplificano notevolmente l'uso delle API graph e la personalizzazione dell'esperienza utente. Questo metodo è noto come "flusso client" o "flusso diretto dal client" perché il codice sul client accede agli utenti.

Dopo aver ottenuto un token del provider, deve essere inviato al servizio app per la convalida. Servizio app di Azure convalida il token. Il servizio crea quindi un nuovo token per il client. L'SDK client di App per dispositivi mobili include metodi helper per gestire questo scambio e collegare automaticamente il token a tutte le richieste al 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 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 di 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 al servizio app di Azure per convalidare il token. Nella maggior parte dei casi, il token sarà un token di accesso. Per altre informazioni, consultare la documentazione del Servizio app di 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 definite in la documentazione.