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
| 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.
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 | 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.
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ü | 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 |