Abilitare l'autenticazione token per le richieste Dapr
Articolo
Quando Dapr è abilitato per l'applicazione in App Azure Container, inserisce la variabile APP_API_TOKEN di ambiente nel contenitore dell'app. Dapr include lo stesso token in tutte le richieste inviate all'app, come segue:
Intestazione HTTP (dapr-api-token)
Opzione di metadati gRPC (dapr-api-token[0])
Il token viene generato in modo casuale e univoco per ogni app e revisione dell'app. Può anche cambiare in qualsiasi momento. L'applicazione deve leggere il token dalla APP_API_TOKEN variabile di ambiente all'avvio per assicurarsi che usi il token corretto.
È possibile usare questo token per autenticare che le chiamate in arrivo nell'applicazione provengono effettivamente dal sidecar Dapr, anche quando si è in ascolto su endpoint pubblici.
Il daprd contenitore legge e lo inserisce in ogni chiamata effettuata da Dapr all'applicazione.
L'applicazione può quindi usare tale token per verificare che la richiesta proveni da Dapr.
Se si usa un SDK dapr, è possibile usare i metodi di autenticazione Dapr forniti nei repository dell'SDK open source.
Dopo l'aggiunta al progetto, gli SDK dapr convalidano il token in tutte le richieste in ingresso da Dapr, rifiutando le chiamate che non includono il token corretto. Non è necessario eseguire altre azioni.
Le richieste in ingresso che non includono il token o includono un token non corretto vengono rifiutate automaticamente.
Se non si usa un SDK dapr, è necessario controllare la proprietà dei metadati dell'intestazione HTTP o gRPC in tutte le richieste in ingresso per verificare che vengano create dal sidecar Dapr.
HTTP
Nel codice cercare l'intestazione dapr-api-token HTTP nelle richieste in ingresso:
dapr-api-token: <token>
gRPC
Quando si usa il protocollo gRPC, esaminare le chiamate in ingresso per il token API nei metadati gRPC:
Pubblicare un'app JavaScript basata su Angular, React, Svelte o Vue con API e autenticazione usando App Web statiche di Azure e Funzioni di Azure. Distribuire il codice da GitHub in un sito di gestione temporanea usando gli URL di anteprima.
Progettare soluzioni end-to-end in Microsoft Azure per creare Funzioni di Azure, implementare e gestire app Web, sviluppare soluzioni che usano Archiviazione di Azure e altro ancora.