Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Der Unauthenticated Anbieter gibt dem Data-API-Builder an, kein JSON-Webtoken (JWT) zu prüfen oder zu validieren. Jede Anforderung wird als die anonymous Rolle ausgeführt. Es gibt keine Ausnahmen innerhalb von DAB.
Hinweis
Die in diesem Abschnitt beschriebene Funktionalität des Daten-API-Generators 2.0 befindet sich derzeit in der Vorschau und kann sich vor der allgemeinen Verfügbarkeit ändern. Weitere Informationen finden Sie unter Neuigkeiten in Version 2.0.
Verwenden Sie diesen Anbieter, wenn DAB jede Anforderung als anonymous behandeln soll, auch wenn ein anderer Dienst vor DAB die Authentifizierung durchführt oder Zugriffsrichtlinien anwendet.
Von Bedeutung
Der Unauthenticated Anbieter wandelt die Upstreamidentität niemals in DAB-Identität um. Wenn Sie DAB zum Überprüfen von Token benötigen, aktivieren Sie die authenticated Rollen, verwenden Sie benutzerdefinierte Rollen oder übergeben Sie Benutzeransprüche an nachgeschaltete Richtlinien, verwenden Sie einen validierenden Anbieter wie EntraId oder Custom, AppService.
Authentifizierungsfluss
Mit dem Unauthenticated Anbieter überspringt DAB die Tokenüberprüfung vollständig und wertet Berechtigungen als anonymous:
| Phase | Was ist los |
|---|---|
| Clientanforderung | Der Client sendet eine Anforderung an DAB, entweder direkt oder über einen anderen Dienst. |
| Vorgelagerte Steuerelemente | Ein Front-End,-Gateway oder -Proxy kann den Anrufer authentifizieren oder grobkörnigen Zugriff erzwingen, bevor die Anforderung weitergeleitet wird. |
| Anforderung weiterleiten | Die Anforderung erreicht DAB |
| DAB-Verarbeitung | DAB überprüft keine JWTs und behandelt die Anforderung immer als anonymous |
| Autorisierung | DAB wertet Entitätsberechtigungen für die anonymous Rolle aus. |
Wann dieser Anbieter verwendet werden soll
Verwenden Sie Unauthenticated in diesen Szenarien:
| Szenario | Passt gut? | Warum? |
|---|---|---|
| API-Verwaltung oder Gateway authentifiziert Benutzer zuerst | Ja | Das Front-End kann den Zugriff steuern, während DAB weiterhin Anforderungen nur für die anonymous-Rolle autorisiert. |
| Nur interner Dienst hinter einer privaten Netzwerkgrenze | Ja | Der Netzwerkzugriff wird außerhalb von DAB gesteuert, und DAB kann anonymous-nur bleiben. |
| Schnelles lokales Setup ohne Konfiguration der JWT-Validierung | Ja | Einfachste Methode für die ersten Schritte |
| DAB direkt zugänglich für Browser und öffentliche Clients | No | DAB überprüft keine Identitätstoken |
Sie benötigen authenticated oder eine benutzerdefinierte Rollenaktivierung innerhalb von DAB |
No | Nur anonymous ist bei diesem Anbieter aktiv. |
Kurzreferenz
| Setting | Wert |
|---|---|
| Provider | Unauthenticated |
| Token erforderlich | No |
| Aktive DAB-Rolle | anonymous |
| Unterstützt JWT-Validierung | No |
Unterstützt authenticated Rolle |
No |
| Unterstützt benutzerdefinierte Rollen | No |
Schritt 1: Konfigurieren des Anbieters
Legen Sie den Authentifizierungsanbieter auf Unauthenticated.
CLI
dab configure \
--runtime.host.authentication.provider Unauthenticated
Resultierende Konfiguration
{
"runtime": {
"host": {
"authentication": {
"provider": "Unauthenticated"
}
}
}
}
Hinweis
Der Unauthenticated Anbieter ist die Standardeinstellung für neue Konfigurationen in DAB 2.0. Beim Ausführen dab init wird eine funktionierende Konfiguration ohne JWT-Einstellungen erstellt.
Schritt 2: Konfigurieren von Entitätsberechtigungen für anonymous
Da DAB alle Anforderungen als anonymous behandelt, müssen Ihre Entitäten Zugriff auf die Rolle für alle Vorgänge gewähren, die Sie zulassen möchten, anonymous.
Beispielkonfiguration
{
"entities": {
"Book": {
"source": "dbo.Books",
"permissions": [
{
"role": "anonymous",
"actions": ["read"]
}
]
}
}
}
Wenn eine Entität nur auf authenticated oder eine benutzerdefinierte Rolle zugreift, schlagen Anforderungen fehl, da diese Rollen nie aktiviert werden, wenn Unauthenticated konfiguriert ist.
Von Bedeutung
Wenn Unauthenticated aktiv ist, werden authenticated und benutzerdefinierte Rollen, die in Entitätsberechtigungen definiert sind, nie aktiviert. Wenn Ihre Konfiguration diese Rollen enthält, gibt DAB beim Start eine Warnung aus.
Schritt 3: Optional einen anderen Dienst vor DAB platzieren
Ein anderer Dienst kann weiterhin Anrufer authentifizieren oder grobkörnige Zugriffsregeln anwenden, bevor die Anforderung DAB erreicht. Das ändert das Verhalten von DAB nicht:
- Authentifizieren Sie den Anrufer im Front-End, Gateway oder Proxy.
- Wenden Sie dort eine grob abgestufte Zugriffsrichtlinien an.
- Weiterleiten genehmigter Anforderungen an DAB.
- Verwenden Sie DAB-Entitätsberechtigungen, um zu steuern, was die
anonymousRolle tun kann.
Dieses Muster eignet sich gut, wenn eine umgebende Plattform steuert, wer DAB erreichen kann, während DAB absichtlich nur anonymous bleibt.
Was dieser Anbieter nicht tut
Der Anbieter Unauthenticated erfüllt folgendes nicht:
- Validieren von Bearer-Token
- Aktivieren der
authenticatedRolle - Aktivieren von benutzerdefinierten Rollen aus Claims
- Bereitstellung von Ansprüchen für Datenbankrichtlinien
- Durchführen einer benutzerspezifischen Autorisierung innerhalb von DAB
Wenn Sie diese Funktionen benötigen, verwenden Sie einen Anbieter, der Identität für DAB bereitstellt.
Vollständiges Konfigurationsbeispiel
{
"$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"]
}
]
}
}
}