Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
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?).
Üç güvenlik sütunu
| Ana Direk | 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 Aktarım Katmanı Güvenliği (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 |
|---|---|---|
| Kimliği_doğrulanmamış | DAB, kimlik doğrulamasını işleyen güvenilir bir ön yüzün arkasında durur (varsayılan) | Kimliği Doğrulanmamış sağlayıcıyı yapılandırma |
Microsoft Entra Id (EntraID/AzureAD) |
Microsoft kimliği kullanan üretim uygulamaları | Microsoft Entra kimlik doğrulamayı yapılandırma |
| Özel JSON Web Belirteci (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 |
| OBO (kullanıcı temsilcisi) | Gerçek kullanıcı kimliği gerektiren SQL veritabanları (satır düzeyi güvenlik, denetim) | OBO kimlik doğrulamayı yapılandırma |
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.
Kimlik Doğrulaması
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.
Nasıl çalışır?
- JWT sağlayıcıları için istemci kimlik sağlayıcısından bir jeton alır.
- İstemci,
Authorization: Bearer <token>üst bilgisinde belirteci gönderir (JWT sağlayıcıları) veya platform kimlik üst bilgilerini (EasyAuth/SWA) enjekte eder. - Veri API oluşturucusu belirteci veya platform üst bilgisini (veren, hedef kitle, JWT sağlayıcıları için imza) doğrular
- DAB, kullanıcının rollerini belirteçten veya kimlik başlığından ayıklar.
Hızlı referans
| Setting | Açıklama |
|---|---|
runtime.host.authentication.provider |
Kimlik doğrulama sağlayıcısı (Unauthenticated, 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/Unauthenticated tarafından kullanılmaz) |
runtime.host.authentication.jwt.issuer |
JWT sağlayıcıları için beklenen veren/yetkili (AppService/StaticWebApps/Simulator/Unauthenticated tarafından kullanılmaz) |
Sağlayıcıya özgü yapılandırma için bu bölümdeki kimlik doğrulama kılavuzları bölümüne bakın.
Yetkilendirme
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.
Nasıl çalışır?
- DAB, belirteci ve üst bilgileri temel alarak isteğe bir rol atar
- DAB, bu rol için varlığın izinlerini kontrol eder.
- Rolün istenen eylem için izni varsa DAB sorguyu yürütür
- Aksi takdirde DAB bir
403 Forbiddenyanıt verir
Sistem rolleri ile kullanıcı rolleri karşılaştırması
| Rol türü | Açıklama |
|---|---|
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. Yetkilendirmeye genel bakış.
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 | Açıklama | 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 |
| Adına (OBO) | Veritabanının gerçek çağıran kullanıcı olarak kimlik doğrulaması gerçekleştirmesi için gelen kullanıcı belirtecini aşağı akış SQL belirteci ile değiştirme (yalnızca mssql) | Kullanıcı tarafından atanan kimlik doğrulaması |
Rol devralma
DAB 2.0, varlık izinlerinde rol devralmayı başlatır. Devralma zinciri şeklindedir named-role → authenticated → anonymous. Bir rol bir varlık için açıkça yapılandırılmamışsa, sonraki daha geniş rolden devralır. İzinleri bir kez anonymous tanımlar ve daha geniş olan her rol aynı erişimi alır. Ayrıntılar için bkz . Rol devralma.
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 |
|---|---|
| DAB'de JWT doğrulaması olmadan güvenilir bir ön uç kullanma | Kimliği Doğrulanmamış sağlayıcıyı yapılandırma |
| Microsoft Entra ID kimlik doğrulamayı ayarlama | Microsoft 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 | Yetkilendirmeye genel bakış |