Kimliği Doğrulanmamış sağlayıcıyı yapılandırma

Sağlayıcı, Unauthenticated Veri API'sinin oluşturucusunun (DAB) herhangi bir JSON Web Belirtecini (JWT) incelememesi veya doğrulamaması gerektiğini söyler. Her bir istek anonymous rolü olarak çalışır. DAB içinde özel durum yoktur.

Uyarı

Bu bölümde açıklanan Veri API oluşturucusu 2.0 işlevselliği şu anda önizleme aşamasındadır ve genel kullanılabilirlik öncesinde değişebilir. Daha fazla bilgi için bkz. Sürüm 2.0'daki yenilikler.

DAB'nin önündeki başka bir hizmet kimlik doğrulaması gerçekleştirse veya erişim ilkesi uygulasa bile, DAB'nin her isteği olarak anonymouskabul etmelerini istediğinizde bu sağlayıcıyı kullanın.

Önemli

Sağlayıcı Unauthenticated hiçbir zaman yukarı akış kimliğini DAB kimliğine dönüştürmez. Belirteçleri doğrulamak, rolü etkinleştirmekauthenticated, özel roller kullanmak veya kullanıcı taleplerini aşağı akış ilkelerine geçirmek için DAB'ye ihtiyacınız varsa, , EntraIdveya Customgibi AppServicebir doğrulama sağlayıcısı kullanın.

Kimlik doğrulama akışı

Sağlayıcı ile DAB, belirteç doğrulamasını Unauthenticated tamamen atlar ve izinleri olarak anonymousdeğerlendirir:

Phase Ne olur?
İstemci isteği İstemci doğrudan veya başka bir hizmet aracılığıyla DAB'ye bir istek gönderir
Yukarı akış denetimleri Ön uç, ağ geçidi veya ara sunucu, isteği iletmeden önce çağıranın kimliğini doğrulayabilir veya kaba ayrıntılı erişim uygulayabilir
İstek iletme İstek DAB'ye ulaşır
DAB işleme DAB JWT'leri doğrulamaz ve isteği her zaman anonymous olarak ele alır.
Authorization DAB, anonymous rolü için varlık izinlerini değerlendirir.

Bu sağlayıcı ne zaman kullanılır?

Şu senaryolarda kullanın Unauthenticated :

Scenario Uygun mu? Neden?
API Management veya ağ geçidi önce kullanıcıların kimliğini doğrular Evet Ön uç erişimi kontrol edebilirken, DAB yalnızca anonymous rolü için istekleri yetkilendirmeye devam eder.
Yalnızca dahili hizmet, özel ağ sınırının arkasında Evet Ağ erişimi DAB dışında kontrol edilir ve DAB yalnızca anonymous kalabilir.
JWT doğrulamasını yapılandırmadan hızlı yerel kurulum Evet Kullanmaya başlamanın en basit yolu
Doğrudan tarayıcılara veya genel istemcilere sunulan DAB Hayır DAB kimlik belirteçlerini doğrulamaz
DAB içinde authenticated veya özel rol etkinleştirmeye ihtiyacınız var. Hayır Yalnızca anonymous bu sağlayıcıda etkindir

Hızlı referans

Setting Değer
Provider Unauthenticated
Belirteç gerekli Hayır
Etkin DAB rolü anonymous
JWT doğrulamayı destekler Hayır
authenticated rolünü destekler Hayır
Özel rolleri destekler Hayır

1. Adım: Sağlayıcıyı yapılandırma

Kimlik doğrulama sağlayıcısını olarak Unauthenticatedayarlayın.

CLI

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

Sonuçta elde edilen yapılandırma

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

Uyarı

Sağlayıcı Unauthenticated , DAB 2.0'daki yeni yapılandırmalar için varsayılandır. Çalıştırma dab init , herhangi bir JWT ayarı olmadan çalışan bir yapılandırma oluşturur.

2. Adım: Varlık izinlerini yapılandırma anonymous

DAB tüm istekleri anonymous gibi kabul ettiğinden, varlıklarınız izin vermek istediğiniz herhangi bir işlem için anonymous rolüne erişim sağlamalıdır.

Örnek yapılandırma

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

Bir varlık yalnızca authenticated veya özel bir role erişim verirse, bu roller yapılandırıldığında Unauthenticated hiçbir zaman etkinleştirilmediğinden istekler başarısız olur.

Önemli

Etkin olduğunda Unauthenticated, authenticated ve varlık izinlerinde tanımlanan özel roller hiçbir zaman etkinleştirilmez. Yapılandırmanız bu rolleri içeriyorsa, DAB başlangıçta bir uyarı gösterir.

3. Adım: İsteğe bağlı olarak DAB'nin önüne başka bir hizmet yerleştirme

Başka bir hizmet, istek DAB'ye ulaşmadan önce arayanların kimliğini yine de doğrulayabilir veya daha ayrıntılı erişim kuralları uygulayabilir. Bu da DAB'nin davranışını değiştirmez:

  1. Ön uçta, ağ geçidinde veya ara sunucudaki çağıranın kimliğini doğrular.
  2. Burada genel çapta erişim politikası uygulayın.
  3. Onaylanan istekleri DAB'ye iletin.
  4. Rolün anonymous neler yapabileceğini denetlemek için DAB varlık izinlerini kullanın.

Bu düzen, çevresindeki bir platform DAB'ye kimlerin ulaşabileceğini denetlerken, DAB kasıtlı olarak anonymous-yalnızca- kaldığında iyi çalışır.

Bu sağlayıcının gerçekleştirmediği işlem

Sağlayıcı Unauthenticated aşağıdakileri yapmaz:

  • taşıyıcı belirteçleri doğrulama
  • authenticated rolü etkinleştirme
  • taleplerden özel rolleri etkinleştirme
  • Taleplerin veritabanı politikalarıyla uyumlu hale getirilmesi
  • DAB içinde kullanıcıya özgü yetkilendirme gerçekleştirme

Bu özelliklere ihtiyacınız varsa DAB'ye kimlik sağlayan bir sağlayıcı kullanın.

Yapılandırmayı tamamlama örneği

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