Implementare l'autenticazione e l'autorizzazione in App contenitore di Azure
App contenitore di Azure offre funzionalità di autenticazione e autorizzazione predefinite per proteggere l'app contenitore abilitata per l'ingresso esterno con codice minimo o senza codice. La funzionalità di autenticazione predefinita per App contenitore consente di risparmiare tempo e fatica fornendo l'autenticazione immediata con provider di identità federati, consentendo di concentrarsi sul resto dell'applicazione.
- App contenitore di Azure offre l'accesso a vari provider di autenticazione predefiniti.
- Le funzionalità di autenticazione predefinite non richiedono un linguaggio particolare, un SDK, competenze in materia di sicurezza o addirittura codice da scrivere.
Questa funzionalità deve essere usata solo con HTTPS. Assicurarsi che allowInsecure
sia disabilitato nella configurazione in ingresso dell'app contenitore. È possibile configurare l'app contenitore per l'autenticazione con o senza limitare l'accesso al contenuto del sito e alle API.
- Per limitare l'accesso all'app solo agli utenti autenticati, impostare l'impostazione Limita l'accesso su Richiedi autenticazione.
- Per eseguire l'autenticazione ma non limitare l'accesso, impostare l'impostazione Limita l'accesso su Consenti accesso non autenticato.
Provider di identità
App contenitore usa l'identità federata, in cui un provider di identità di terze parti gestisce le identità utente e il flusso di autenticazione. Per impostazione predefinita, sono disponibili i provider di identità seguenti:
Provider | Endpoint di accesso | Guida alle procedure |
---|---|---|
Piattaforma di identità Microsoft | /.auth/login/aad |
Piattaforma di identità Microsoft |
/.auth/login/facebook |
||
GitHub | /.auth/login/github |
GitHub |
/.auth/login/google |
||
X | /.auth/login/twitter |
X |
Qualsiasi provider OpenID Connect | /.auth/login/<providerName> |
OpenID Connect |
Quando si usa uno di questi provider, l'endpoint di accesso è disponibile per l'autenticazione utente e per la convalida dei token di autenticazione da parte del provider. È possibile fornire agli utenti un numero qualsiasi di queste opzioni di provider.
Architettura delle funzionalità
Il componente middleware di autenticazione e autorizzazione è una funzionalità della piattaforma che viene eseguita come contenitore sidecar in ogni replica dell'applicazione. Se è abilitato, ogni richiesta HTTP in ingresso passa attraverso il livello di sicurezza prima di essere gestita dall'applicazione.
Il middleware della piattaforma gestisce diversi aspetti per l'app:
- Autentica utenti e client con i provider di identità specificati
- Gestisce la sessione autenticata
- Inserisce le informazioni relative all'identità nelle intestazioni delle richieste HTTP
Il modulo di autenticazione e autorizzazione viene eseguito in un contenitore separato, isolato dal codice dell'applicazione. Poiché il contenitore di sicurezza non viene eseguito in-process, non è possibile eseguire l'integrazione diretta con framework di linguaggio specifici. Tuttavia, le informazioni pertinenti necessarie per l'app vengono fornite nelle intestazioni delle richieste.
Flusso di autenticazione
Il flusso di autenticazione è uguale per tutti i provider, ma varia a in base al fatto che si desideri o meno accedere con l'SDK del provider:
Senza l'SDK del provider (flusso diretto dal server o flusso del server): l'applicazione delega l'accesso federato ad App contenitore. La delega avviene in genere con le app del browser, che visualizzano la pagina di accesso del provider.
Con l'SDK del provider (flusso diretto dal client o flusso del client): l'applicazione consente agli utenti di accedere manualmente al provider e quindi invia il token di autenticazione ad App contenitore per la convalida. Questo approccio è tipico per le app senza browser che non visualizzano la pagina di accesso del provider. Un esempio è un'app per dispositivi mobili nativa che consente agli utenti di usare l'SDK del provider.