Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Il Unauthenticated provider indica al generatore di API dati (DAB) di non esaminare o convalidare qualsiasi token Web JSON (JWT). Ogni richiesta viene eseguita con il ruolo di anonymous. Non esistono eccezioni all'interno di DAB.
Annotazioni
La funzionalità Generatore API dati 2.0 descritta in questa sezione è attualmente in anteprima e potrebbe cambiare prima della disponibilità generale. Per altre informazioni, vedere Novità della versione 2.0.
Usare questo provider quando si vuole che DAB consideri ogni richiesta come anonymous, anche se un altro servizio davanti a DAB esegue l'autenticazione o applica i criteri di accesso.
Importante
Il Unauthenticated provider non trasforma mai l'identità upstream in un'identità DAB. Se è necessario che DAB convalidi i token, attiva il ruolo authenticated, utilizza ruoli personalizzati o trasferisci attestazioni utente ai criteri a valle, utilizza un provider di convalida, ad esempioEntraId, Custom o AppService.
Flusso di autenticazione
Con il Unauthenticated provider, DAB ignora completamente la convalida dei token e valuta le autorizzazioni come anonymous:
| Fase | Che succede |
|---|---|
| Richiesta client | Il client invia una richiesta a DAB, direttamente o tramite un altro servizio |
| Controlli upstream | Un front-end, un gateway o un proxy può autenticare il chiamante o applicare l'accesso con granularità grossolana prima di inoltrare la richiesta |
| Inoltra richiesta | La richiesta raggiunge DAB |
| Elaborazione DAB | DAB non convalida i token JWT e considera sempre la richiesta come anonymous |
| Autorizzazione | DAB valuta le autorizzazioni di entità per il ruolo anonymous |
Quando usare questo provider
Usare Unauthenticated in questi scenari:
| Scenario | Buona forma? | Perché |
|---|---|---|
| La gestione delle API o il gateway autenticano prima gli utenti. | Sì | Il front-end può controllare l'accesso, mentre DAB ancora autorizza le richieste solo per il ruolo anonymous |
| Servizio solo interno dietro un limite di rete privata | Sì | L'accesso alla rete è controllato all'esterno di DAB e DAB può rimanere anonymoussolo |
| Configurazione locale rapida senza configurare la convalida JWT | Sì | Modo più semplice per iniziare |
| DAB esposto direttamente a browser o clienti pubblici | No | DAB non convalida i token di identità |
È necessaria l'attivazione di authenticated o di ruoli personalizzati all'interno di DAB. |
No | Solo anonymous è attivo con questo provider |
Riferimento rapido
| Impostazione | Valore |
|---|---|
| Provider | Unauthenticated |
| Token obbligatorio | No |
| Ruolo DAB attivo | anonymous |
| Supporta la convalida JWT | No |
Supporta il ruolo di authenticated |
No |
| Supportano i ruoli personalizzati | No |
Passaggio 1: Configurare il provider
Impostare il provider di autenticazione su Unauthenticated.
CLI
dab configure \
--runtime.host.authentication.provider Unauthenticated
Configurazione risultante
{
"runtime": {
"host": {
"authentication": {
"provider": "Unauthenticated"
}
}
}
}
Annotazioni
Il Unauthenticated provider è l'impostazione predefinita per le nuove configurazioni in DAB 2.0. L'esecuzione dab init crea una configurazione funzionante senza impostazioni JWT.
Passaggio 2: Configurare le autorizzazioni per le entità per anonymous
Poiché DAB considera tutte le richieste come anonymous, le entità devono concedere l'accesso al ruolo anonymous per qualsiasi operazione che si desidera consentire.
Configurazione di esempio
{
"entities": {
"Book": {
"source": "dbo.Books",
"permissions": [
{
"role": "anonymous",
"actions": ["read"]
}
]
}
}
}
Se un'entità concede l'accesso solo a authenticated o a un ruolo personalizzato, le richieste hanno esito negativo perché tali ruoli non vengono mai attivati quando Unauthenticated viene configurato.
Importante
Quando Unauthenticated è attivo, authenticated e i ruoli personalizzati definiti nelle autorizzazioni di entità non vengono mai attivati. Se la configurazione contiene tali ruoli, DAB genera un avviso all'avvio.
Passaggio 3: Inserire facoltativamente un altro servizio davanti a DAB
Un altro servizio può comunque autenticare i chiamanti o applicare regole di accesso con granularità grossolana prima che la richiesta raggiunga DAB. Ciò non modifica il comportamento di DAB:
- Autenticare il chiamante nel front-end, nel gateway o nel proxy.
- Applicare i criteri di accesso con granularità grossolana qui.
- Inoltrare le richieste approvate a DAB.
- Usare le autorizzazioni dell'entità DAB per controllare le operazioni che il
anonymousruolo può eseguire.
Questo modello funziona bene quando una piattaforma circostante gestisce chi può accedere a DAB, mentre DAB rimane intenzionalmente solo anonymous.
Cosa non fa questo provider
Il Unauthenticated fornitore non:
- convalidare i token di portatore
- attivare il ruolo
authenticated - attivare ruoli personalizzati da claims
- rendere disponibili dichiarazioni nei criteri di database
- eseguire l'autorizzazione specifica dell'utente all'interno di DAB
Se sono necessarie queste funzionalità, usare un provider che fornisce l'identità a DAB.
Esempio di configurazione completo
{
"$schema": "https://github.com/Azure/data-api-builder/releases/latest/download/dab.draft.schema.json",
"data-source": {
"database-type": "mssql",
"connection-string": "@env('SQL_CONNECTION_STRING')"
},
"runtime": {
"host": {
"authentication": {
"provider": "Unauthenticated"
}
}
},
"entities": {
"Book": {
"source": "dbo.Books",
"permissions": [
{
"role": "anonymous",
"actions": ["read"]
}
]
}
}
}