Konfigurace neověřeného zprostředkovatele

Poskytovatel Unauthenticated říká Tvůrci rozhraní DATA API (DAB), aby neprověřil ani neověřil žádný webový token JSON (JWT). Každý požadavek běží jako role anonymous. V jazyce DAB nejsou žádné výjimky.

Poznámka:

Funkce Tvůrce rozhraní Data API popsaná v této části je k dispozici ve verzi 2.0 a novější. Další informace najdete v tématu Co je nového ve verzi 2.0.

Tento zprostředkovatel použijte, pokud chcete, aby DAB zpracovával všechny požadavky jako anonymous, i když jiná služba před DAB provádí ověřování nebo používá zásady přístupu.

Důležité

Unauthenticated Zprostředkovatel nikdy nezměňuje vstupní identitu na identitu DAB. Pokud potřebujete DAB k ověření tokenů, aktivovat roli authenticated, použít vlastní role nebo předat uživatelská oprávnění do podřízených zásad, použijte ověřovacího zprostředkovatele, jako je EntraId, Custom nebo AppService.

Průběh ověřování

Unauthenticated U zprostředkovatele DAB přeskočí ověření tokenu úplně a vyhodnotí oprávnění taktoanonymous:

Fáze Co se stane
Požadavek klienta Klient odešle žádost daB přímo nebo prostřednictvím jiné služby.
Vstupní ovládací prvky Front-end, brána nebo proxy server můžou volajícího ověřit nebo před přesměrováním požadavku vynutit hrubě odstupňovaný přístup.
Přeposlání požadavku Požadavek dorazí k DAB.
Zpracování DAB DAB neověřuje JWT a vždy považuje požadavek za anonymous
Authorization DAB vyhodnotí oprávnění entit pro anonymous roli.

Kdy použít tohoto poskytovatele

Používá se Unauthenticated v těchto scénářích:

Scénář Dobrý fit? Proč
Služba API Management nebo brána nejprve ověřuje uživatele. Ano Front-end může řídit přístup, zatímco DAB stále autorizuje požadavky pouze pro anonymous roli.
Služba pouze interní za hranicí soukromé sítě Ano Přístup k síti se řídí mimo DAB a DAB může zůstat anonymouspouze
Rychlé místní nastavení bez konfigurace ověřování JWT Ano Nejjednodušší způsob, jak začít
DAB vystavený přímo prohlížečům nebo veřejným klientům Ne DAB neověřuje tokeny identit
Potřebujete authenticated nebo vlastní aktivaci role v jazyce DAB Ne Pouze anonymous je aktivní s tímto poskytovatelem.

Stručná referenční dokumentace

Setting Hodnota
Poskytovatel Unauthenticated
Požadovaný token Ne
Aktivní role DAB anonymous
Podporuje ověřování JWT. Ne
Podporuje authenticated roli Ne
Podporuje vlastní role. Ne

Krok 1: Konfigurace zprostředkovatele

Nastavte zprostředkovatele ověřování na Unauthenticated.

CLI

dab configure \
  --runtime.host.authentication.provider Unauthenticated

Výsledná konfigurace

{
  "runtime": {
    "host": {
      "authentication": {
        "provider": "Unauthenticated"
      }
    }
  }
}

Poznámka:

Unauthenticated Zprostředkovatel je výchozí pro nové konfigurace v DAB 2.0. Spuštění dab init vytvoří funkční konfiguraci bez nastavení JWT.

Krok 2: Konfigurace oprávnění entity pro anonymous

Vzhledem k tomu, že DAB zpracovává všechny požadavky jako anonymous, musí vaše entity udělit přístup roli anonymous pro jakoukoliv operaci, kterou chcete povolit.

Příklad konfigurace

{
  "entities": {
    "Book": {
      "source": "dbo.Books",
      "permissions": [
        {
          "role": "anonymous",
          "actions": ["read"]
        }
      ]
    }
  }
}

Pokud entita udělí přístup pouze k authenticated nebo vlastní roli, požadavky selžou, protože tyto role nejsou nikdy aktivovány při konfiguraci Unauthenticated.

Důležité

Pokud je Unauthenticated aktivní, authenticated a vlastní role definované v oprávněních entity se nikdy neaktivují. Pokud vaše konfigurace obsahuje tyto role, DAB při spuštění vygeneruje upozornění.

Krok 3: Volitelně umístěte jinou službu před DAB

Jiná služba může stále ověřovat volající nebo používat hrubě odstupňovaná pravidla přístupu, než požadavek dosáhne DAB. To nemění chování DAB:

  1. Ověřte volajícího na front-endu, bráně nebo proxy serveru.
  2. Tady použijte hrubě odstupňované zásady přístupu.
  3. Přeposlání schválených žádostí do DAB
  4. Pomocí oprávnění entity DAB můžete řídit, co anonymous může role dělat.

Tento model funguje dobře, když okolní platforma řídí, kdo může dosáhnout DAB, zatímco DAB zůstává záměrně anonymous-only.

Co tento poskytovatel nedělá

Poskytovatel Unauthenticated ne:

  • ověření nosných tokenů
  • aktivovat roli authenticated
  • aktivace vlastních rolí z nároků
  • zpřístupnit nároky pro zásady databáze
  • provádění autorizace specifické pro uživatele uvnitř DAB

Pokud tyto funkce potřebujete, použijte zprostředkovatele, který poskytuje identitu pro DAB.

Příklad dokončení konfigurace

{
  "$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"]
        }
      ]
    }
  }
}