A hitelesítés nélküli szolgáltató konfigurálása

A Unauthenticated szolgáltató arra utasítja a Data API Buildert (DAB), hogy ne vizsgálja meg vagy ellenőrizze a JSON-webjogkivonatokat (JWT). Minden kérés anonymous szerepkörként fut. A DAB-n belül nincsenek kivételek.

Megjegyzés:

Az ebben a szakaszban ismertetett Data API builder funkció a 2.0-s és újabb verziókban érhető el. További információ: A 2.0-s verzió újdonságai.

Ezt a szolgáltatót akkor használja, ha azt szeretné, hogy a DAB minden kérést anonymous-ként kezeljen, még akkor is, ha a DAB előtt egy másik szolgáltatás hitelesítést végez, vagy hozzáférési szabályzatot alkalmaz.

Fontos

A Unauthenticated szolgáltató soha nem alakítja át a forrás identitását DAB-identitássá. Ha a jogkivonatok érvényesítéséhez DAB-ra van szüksége, aktiválja a authenticated szerepkört, egyéni szerepköröket használ, vagy felhasználói jogcímeket ad át az alsóbb rétegbeli szabályzatoknak, használjon érvényesítő szolgáltatót, például EntraId, Customvagy AppService.

Hitelesítési folyamat

A Unauthenticated szolgáltatónál a DAB teljesen kihagyja a token érvényesítését, és a következő módon értékeli az anonymous engedélyeket.

Phase Mi történik?
Ügyfélkérés Az ügyfél közvetlenül vagy egy másik szolgáltatáson keresztül küld kérelmet a DAB-nak
Felsőbb rétegbeli vezérlők Az előoldali, átjáró vagy proxy hitelesítheti a hívót, vagy durva szemcsés hozzáférést érvényesíthet, mielőtt továbbítja a kérést.
Kérelem továbbítása A kérés eléri a DAB-t
DAB-feldolgozás A DAB nem ellenőrzi a JWT-ket, és mindig úgy kezeli a kérést, mint anonymous
Authorization A DAB kiértékeli a szerepkör entitásengedélyeit anonymous

Mikor érdemes használni ezt a szolgáltatót?

Használja Unauthenticated az alábbi esetekben:

Scenario Jó illeszkedés? Miért
Az API Management vagy az átjáró először hitelesíti a felhasználókat Igen Az előtér korlátozhatja a hozzáférést, miközben a DAB továbbra is csak a anonymous szerepkör kéréseit engedélyezi.
Csak belső szolgáltatás magánhálózati határ mögött Igen A hálózati hozzáférés szabályozása a DAB-n kívül történik, így a DAB anonymous módú maradhat.
Gyors helyi beállítás JWT-ellenőrzés konfigurálása nélkül Igen Az első lépések legegyszerűbb módja
Közvetlenül böngészőknek vagy nyilvános ügyfeleknek kitett DAB No A DAB nem érvényesíti az identitásjogkivonatokat
Szükség van authenticated vagy egyéni szerepkör-aktiválásra a DAB-on No Csak anonymous ezzel a szolgáltatóval aktív

Rövid összefoglalás

Setting Érték
Szolgáltató Unauthenticated
Hozzáférési token szükséges No
Aktív DAB-szerepkör anonymous
Támogatja a JWT érvényesítését No
Támogatja a authenticated szerepkört No
Egyéni szerepkörök támogatása No

1. lépés: A szolgáltató konfigurálása

Állítsa be a hitelesítési szolgáltatót a következőre Unauthenticated: .

parancssori felület

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

Az eredményként kapott konfiguráció

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

Megjegyzés:

A Unauthenticated szolgáltató az alapértelmezett az új konfigurációkhoz a DAB 2.0-ban. A futtatás dab init JWT-beállítások nélkül hoz létre működő konfigurációt.

2. lépés: Entitásengedélyek konfigurálása anonymous

Mivel a DAB az összes kérést a anonymouskövetkezőképpen kezeli, az entitásoknak hozzáférést kell adniuk a anonymous szerepkörhöz minden engedélyezni kívánt művelethez.

Konfigurációs példa

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

Ha egy entitás csak a authenticated vagy egy egyéni szerepkör számára ad hozzáférést, a kérések meghiúsulnak, mert ezek a szerepkörök nem aktiválódnak, amikor a Unauthenticated van konfigurálva.

Fontos

Ha Unauthenticated aktív, authenticated és az entitásengedélyekben definiált egyéni szerepkörök soha nem aktiválódnak. Ha a konfiguráció tartalmazza ezeket a szerepköröket, a DAB figyelmeztetést ad ki indításkor.

3. lépés: Másik szolgáltatás elhelyezése a DAB elé

Egy másik szolgáltatás továbbra is hitelesítheti a hívókat, vagy durva hozzáférési szabályokat alkalmazhat, mielőtt a kérés eléri a DAB-t. Ez nem változtatja meg a DAB viselkedését:

  1. Hitelesítse a hívót az előtérben, az átjáróban vagy a proxyban.
  2. Durva szemcsés hozzáférési szabályzatot alkalmazhat ott.
  3. A jóváhagyott kérések továbbítása a DAB-nak.
  4. DAB-entitásengedélyek használatával szabályozhatja, hogy a anonymous szerepkör mire képes.

Ez a minta akkor működik jól, ha egy környező platform szabályozza, hogy ki érheti el a DAB-t, miközben a DAB szándékosan csak anonymous marad.

Mit nem tesz ez a szolgáltató?

A Unauthenticated szolgáltató nem:

  • bearer tokenok érvényesítése
  • aktiválja a authenticated szerepkört
  • egyéni szerepkörök aktiválása jogcímekből
  • igények elérhetővé tétele adatbázis-politikák számára
  • felhasználóspecifikus hitelesítés végrehajtása a DAB-ben

Ha szüksége van ezekre a képességekre, használjon egy olyan szolgáltatót, amely identitást biztosít a DAB-nak.

Teljes konfigurációs példa

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