Aracılığıyla paylaş


Veri API'si oluşturucu çözümünüzün güvenliğini sağlama

Veri API oluşturucusu, REST ve GraphQL uç noktaları aracılığıyla verilerinizi kullanıma sunar. API'nizin güvenliğini sağlamak için üç temel alana dikkat etmek gerekir: kimlik doğrulaması (kim arıyor?), yetkilendirme (ne yapabilir?) ve aktarım güvenliği (bağlantı korunuyor mu?).

Kimlik doğrulaması, yetkilendirme ve veritabanı erişimini gösteren uçtan uca istek akışının çizimi.

Üç güvenlik sütunu

Sütun Cevapladığı soru Anahtar kavram
Kimlik Doğrulaması Arayan kim? Kimlik sağlayıcısından tokenları doğrulama
Authorization Ne yapabilir ki? Varlıklar üzerinde rol tabanlı izinler
Taşıma Bağlantı güvenli mi? Tüm trafik için TLS şifrelemesi

Kimlik doğrulama sağlayıcınızı seçin

Veri API'si oluşturucusu birden çok kimlik doğrulama sağlayıcısını destekler. Dağıtım senaryonuzla eşleşeni seçin:

Provider Kullanım örneği Guide
Microsoft Entra Id (EntraID/AzureAD) Microsoft kimliği kullanan üretim uygulamaları Entra kimlik doğrulamayı yapılandırma
Özel JWT Üçüncü taraf IdP'ler (Okta, Auth0, Keycloak) Özel JWT kimlik doğrulamayı yapılandırma
App Service Azure App Service EasyAuth'un arkasında çalışan uygulamalar (platform üst bilgileri) App Service kimlik doğrulamayı yapılandırma
Simülatör Yerel geliştirme ve test Simülatör kimlik doğrulamayı yapılandırma
Statik Web Uygulamaları SWA kimlik doğrulama üst bilgileriyle korunan uygulamalar App Service kimlik doğrulamayı yapılandırma

Tip

Kimlik sağlayıcısı yapılandırmadan izinleri test etmek için geliştirme sırasında Simülatör sağlayıcısıyla başlayın. Dağıtmadan önce bir üretim sağlayıcısına geçin.

Kimlik doğrulama

Kimlik doğrulaması, çağıranın kimliğini doğrular. Veri API'si oluşturucusu, JWT taşıyıcı belirteçlerini (EntraID/AzureAD, ) doğrulayarak veya platform tarafından sağlanan kimlik üst bilgilerine (Custom, AppServiceStaticWebApps) güvenerek isteklerin kimliğini doğrular. Simulator Geliştirme için dış doğrulamayı atlar.

İstemcilerin JWT belirteçleri kullanarak Veri API oluşturucusuna nasıl kimlik doğrulaması yaptığını gösteren çizim.

Nasıl çalışır?

  1. JWT sağlayıcıları için istemci kimlik sağlayıcısından bir jeton alır.
  2. İstemci, Authorization: Bearer <token> üst bilgisinde belirteci gönderir (JWT sağlayıcıları) veya platform kimlik üst bilgilerini (EasyAuth/SWA) enjekte eder.
  3. Veri API oluşturucusu belirteci veya platform üst bilgisini (veren, hedef kitle, JWT sağlayıcıları için imza) doğrular
  4. DAB, kullanıcının rollerini belirteçten veya kimlik başlığından ayıklar.

Hızlı referans

Setting Description
runtime.host.authentication.provider Kimlik doğrulama sağlayıcısı (EntraID/AzureAD, Custom, AppService, StaticWebApps, Simulator)
runtime.host.authentication.jwt.audience JWT sağlayıcıları için beklenen hedef kitle talebi (AppService/StaticWebApps/Simulator tarafından kullanılmaz)
runtime.host.authentication.jwt.issuer JWT sağlayıcıları için beklenen veren/yetkili (AppService/StaticWebApps/Simulator tarafından kullanılmaz)

Ayrıntılı yapılandırma için bkz. Microsoft Entra Id kimlik doğrulamasını yapılandırma.

İzin

Yetkilendirme, kimliği doğrulanmış (veya anonim) bir kullanıcının neler yapabileceğini belirler. Veri API oluşturucusu, varlıklara ve eylemlere erişimi kısıtlamak için rol tabanlı erişim denetimi (RBAC) kullanır.

Veri API'sinin oluşturucusunun bir rolü seçme ve istek izinlerini değerlendirme şeklini gösteren çizim.

Nasıl çalışır?

  1. DAB, belirteci ve üst bilgileri temel alarak isteğe bir rol atar
  2. DAB, bu rol için varlığın izinlerini kontrol eder.
  3. Rolün istenen eylem için izni varsa DAB sorguyu yürütür
  4. Aksi takdirde DAB bir 403 Forbidden yanıt verir

Sistem rolleri ile kullanıcı rolleri karşılaştırması

Rol türü Description
Anonymous Kimliği doğrulanmış bir birey olmadığında atanır
Authenticated bir istek kimliği doğrulandığında (JWT'nin kabulü veya güvenilir platform başlığı) ve belirli bir kullanıcı rolü seçilmediğinde atanır
Kullanıcı rolleri Belirtecin roles talebinden (veya platform rollerinden) X-MS-API-ROLE başlığı aracılığıyla seçilen özel roller.

Varsayılan olarak güvenli

Varlıkların varsayılan olarak hiçbir izni yoktur. Açıkça erişim vermelisiniz:

{
  "entities": {
    "Book": {
      "permissions": [
        { "role": "authenticated", "actions": ["read"] }
      ]
    }
  }
}

Ayrıntılı yapılandırma için bkz. Yetkilendirme ve roller.

Satır düzeyi ve alan düzeyi güvenlik

Ayrıntılı erişim denetimiyle varlık düzeyi izinlerinin ötesine geçin:

Özellik Description Guide
Veritabanı ilkeleri (satır düzeyi güvenlik) İlke ifadelerini taleplere veya oturum bağlamlarına göre satırları filtreleyen sorgu koşuluna çevirin Satır düzeyi güvenlik uygulama
Alan düzeyinde güvenlik Rol başına belirli sütunları dahil et veya hariç tut Alan erişimi

Aktarım ve yapılandırma güvenliği

Taşıma güvenliği

  • Tüm bağlantılar için TLS kullanma: İstemciler ile DAB arasındaki trafiği şifreleme
  • Eski TLS sürümlerini devre dışı bırakma: Yalnızca TLS 1.2+ sürümünü kullan
  • HTTPS uç noktalarını kullanma: DaB'i asla üretimde şifrelenmemiş HTTP üzerinden kullanıma sunma

Ayrıntılar için bkz . En iyi güvenlik yöntemleri.

Yapılandırma güvenliği

  • Ortam değişkenlerinde gizlilik bilgilerini depolayın: Yapılandırmanızda @env('SECRET_NAME') kullanın
  • Azure Key Vault'u kullanma: Gizli anahtarları referans alarak başvurma @azure('key-vault-uri')
  • Gizli bilgileri hiçbir zaman kaydetme: Parolalar ve bağlantı dizelerini dab-config.json'ten uzak tutun
{
  "data-source": {
    "connection-string": "@env('SQL_CONNECTION_STRING')"
  }
}

İzleme ve güncelleştirmeler

  • Erişimi izleme: İstekleri izlemek ve anomalileri algılamak için Application Insights'ı kullanma
  • Günlükleri gözden geçirme: Başarısız kimlik doğrulama girişimlerini ve izin reddini denetleyin
  • DAB'yi güncel tutma: En son sürüme yükselterek güvenlik düzeltme eklerini uygulama

Hızlı başlangıç kılavuzları

Görev Guide
Microsoft Entra ID kimlik doğrulaması kurulumu Entra kimlik doğrulamayı yapılandırma
Okta veya Auth0 kullanma Özel JWT kimlik doğrulamayı yapılandırma
Azure App Service'in arkasında çalıştırma App Service kimlik doğrulamayı yapılandırma
İzinleri yerel olarak test edin Simülatör kimlik doğrulamayı yapılandırma
Satırları kullanıcıya göre kısıtlama Satır düzeyi güvenlik uygulama
Rol atamayı anlama Yetkilendirme ve roller