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 alle app solo agli utenti autenticati, impostare l'impostazioneLimita accesso su Richiedi autenticazione.
- Per eseguire l'autenticazione ma non limitare l'accesso, impostare l'impostazione Limita accesso su Consenti l'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:
| Fornitore | Endpoint di accesso | Guida alle procedure |
|---|---|---|
| Piattaforma di identità Microsoft | /.auth/login/aad |
Microsoft Identity Platform |
/.auth/login/facebook |
||
| GitHub | /.auth/login/github |
GitHub |
/.auth/login/google |
||
| X | /.auth/login/twitter |
X |
| Qualsiasi provider OpenID Connect | /.auth/login/<providerName> |
Connessione OpenID |
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 provider SDK (flusso diretto dal server o flusso del server): L'applicazione delega l'accesso federato a Container Apps. La delega avviene in genere con le app del browser, che visualizzano la pagina di accesso del provider.
Con provider SDK (flusso diretto dal client o flusso 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.