Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Konstruktor interfejsu API danych uwidacznia dane za pośrednictwem punktów końcowych REST i GraphQL. Zabezpieczanie interfejsu API wymaga uwagi na trzy podstawowe obszary: uwierzytelnianie (kto wywołuje?), autoryzację (co mogą zrobić?) i zabezpieczenia transportu (czy połączenie jest chronione?).
Trzy filary zabezpieczeń
| Filar | Pytanie, na które odpowiedziano | Kluczowa koncepcja |
|---|---|---|
| Uwierzytelnianie | Kto jest rozmówcą? | Walidacja tokenów dostawcy tożsamości |
| Authorization | Co mogą zrobić? | Uprawnienia oparte na rolach dla jednostek |
| Transport | Czy połączenie jest bezpieczne? | Szyfrowanie TLS dla całego ruchu |
Wybierz dostawcę uwierzytelniania
Konstruktor interfejsu API danych obsługuje wielu dostawców uwierzytelniania. Wybierz ten, który jest zgodny ze scenariuszem wdrażania:
| Provider | Przypadek użycia | Guide |
|---|---|---|
Microsoft Entra ID (EntraID/AzureAD) |
Aplikacje produkcyjne korzystające z tożsamości firmy Microsoft | Konfigurowanie uwierzytelniania entra |
| Niestandardowy JWT | Dostawcy tożsamości innych firm (Okta, Auth0, Keycloak) | Konfigurowanie niestandardowego uwierzytelniania JWT |
| App Service | Aplikacje uruchomione za usługą Azure App Service EasyAuth (nagłówki platformy) | Konfigurowanie uwierzytelniania usługi App Service |
| Symulator | Lokalne programowanie i testowanie | Konfigurowanie uwierzytelniania symulatora |
| Static Web Apps | Aplikacje zabezpieczone przez nagłówki uwierzytelniania SWA | Konfigurowanie uwierzytelniania usługi App Service |
Wskazówka
Rozpocznij od dostawcy Symulatora w trakcie opracowywania, aby przetestować uprawnienia bez konfigurowania usługodawcy tożsamości. Przejdź do dostawcy produkcyjnego przed wdrożeniem.
Uwierzytelnianie
Uwierzytelnianie weryfikuje tożsamość wywołującego. Konstruktor interfejsu API danych uwierzytelnia żądania, sprawdzając tokeny elementu nośnego JWT (EntraID/AzureAD, Custom) lub ufając nagłówkom tożsamości udostępnianym przez platformę (AppService, StaticWebApps).
Simulator Pomija zewnętrzną walidację na potrzeby programowania.
Jak to działa
- W przypadku dostawców JWT klient uzyskuje token od dostawcy tożsamości
- Klient wysyła token w nagłówku
Authorization: Bearer <token>(dostawcy JWT) lub platforma dodaje nagłówki tożsamości (EasyAuth/SWA) - Konstruktor interfejsu API danych weryfikuje token lub nagłówek platformy (wystawca, odbiorcy, podpis dla dostawców JWT)
- DaB wyodrębnia role użytkownika z nagłówka tokenu lub tożsamości
Krótki przewodnik
| Setting | Description |
|---|---|
runtime.host.authentication.provider |
Dostawca uwierzytelniania (EntraID/AzureAD, Custom, AppService, StaticWebApps, ) Simulator |
runtime.host.authentication.jwt.audience |
Oczekiwany atrybut odbiorcy dla dostawców JWT (nieużywany przez usługę AppService/StaticWebApps/Simulator) |
runtime.host.authentication.jwt.issuer |
Oczekiwany wystawca/autorytet dla dostawców JWT (nie używane przez AppService/StaticWebApps/Simulator) |
Aby uzyskać szczegółową konfigurację, zobacz Konfigurowanie uwierzytelniania Microsoft Entra ID.
Autoryzacja
Autoryzacja określa, co może zrobić uwierzytelniony (lub anonimowy) użytkownik. Konstruktor interfejsu API danych używa kontroli dostępu opartej na rolach (RBAC), aby ograniczyć dostęp do jednostek i akcji.
Jak to działa
- DAB przypisuje rolę do żądania na podstawie tokenu i nagłówków
- DAB sprawdza uprawnienia podmiotu dla tej roli
- Jeśli rola ma uprawnienia do żądanej akcji, daB wykonuje zapytanie
- Jeśli tak nie jest, DAB zwraca odpowiedź
403 Forbidden
Role systemowe a role użytkowników
| Typ roli | Description |
|---|---|
Anonymous |
Przypisano, gdy nie ma tożsamości uwierzytelnionej |
Authenticated |
Przypisano, gdy żądanie jest uwierzytelnione (zaakceptowano JWT lub zaufany nagłówek platformy) i nie wybrano żadnej określonej roli użytkownika |
| Role użytkownika | Role niestandardowe z oświadczenia tokenu roles lub role platformy, wybrane za pośrednictwem nagłówka X-MS-API-ROLE. |
Domyślnie zabezpieczone
Jednostki domyślnie nie mają uprawnień. Musisz jawnie udzielić dostępu:
{
"entities": {
"Book": {
"permissions": [
{ "role": "authenticated", "actions": ["read"] }
]
}
}
}
Aby uzyskać szczegółową konfigurację, zobacz Autoryzacja i role.
Zabezpieczenia na poziomie wiersza i na poziomie pola
Wykraczanie poza uprawnienia na poziomie jednostki za pomocą szczegółowej kontroli dostępu:
| Funkcja | Description | Guide |
|---|---|---|
| Zasady bazy danych (zabezpieczenia na poziomie wiersza) | Tłumaczenie wyrażeń zasad na predykaty zapytań, które filtrują wiersze na podstawie oświadczeń lub kontekstu sesji | Implementowanie zabezpieczeń na poziomie wiersza |
| Zabezpieczenia na poziomie pola | Dołączanie lub wykluczanie określonych kolumn na rolę | Dostęp do pola |
Zabezpieczenia transportu i konfiguracji
Zabezpieczenia transportu
- Użyj protokołu TLS dla wszystkich połączeń: szyfruj ruch między klientami i daB
- Wyłącz starsze wersje protokołu TLS: polegaj tylko na protokole TLS 1.2 lub nowszym
- Używanie punktów końcowych HTTPS: nigdy nie uwidaczniaj języka DAB za pośrednictwem niezaszyfrowanego protokołu HTTP w środowisku produkcyjnym
Aby uzyskać szczegółowe informacje, zobacz Najlepsze rozwiązania dotyczące zabezpieczeń.
Zabezpieczenia konfiguracji
-
Przechowywanie tajnych danych w zmiennych środowiskowych: użyj
@env('SECRET_NAME')w konfiguracji -
Korzystanie z usługi Azure Key Vault: odwołania do tajemnic za pomocą
@azure('key-vault-uri') -
Nigdy nie zatwierdzaj sekretów: zachowaj
dab-config.jsonwolne od haseł i parametrów połączenia
{
"data-source": {
"connection-string": "@env('SQL_CONNECTION_STRING')"
}
}
Monitorowanie i aktualizacje
- Monitorowanie dostępu: śledzenie żądań i wykrywanie anomalii za pomocą usługi Application Insights
- Przejrzyj dzienniki: Sprawdź, czy nie było nieudanych prób uwierzytelnienia i odmów dostępu
- Utrzymuj DAB w aktualności: Stosuj poprawki zabezpieczeń poprzez uaktualnienie do najnowszej wersji
Przewodniki Szybki start
| Zadanie | Guide |
|---|---|
| Konfigurowanie uwierzytelniania tożsamością Microsoft Entra | Konfigurowanie uwierzytelniania entra |
| Korzystanie z usługi Okta lub Auth0 | Konfigurowanie niestandardowego uwierzytelniania JWT |
| Uruchamianie w środowisku Azure App Service | Konfigurowanie uwierzytelniania usługi App Service |
| Lokalne testowanie uprawnień | Konfigurowanie uwierzytelniania symulatora |
| Ograniczanie wierszy według użytkownika | Implementowanie zabezpieczeń na poziomie wiersza |
| Zrozum przypisanie roli | Uprawnienia i role |
Treści powiązane
- Konfigurowanie uwierzytelniania Microsoft Entra ID
- Uprawnienia i role
- najlepsze rozwiązania dotyczące zabezpieczeń
- Dokumentacja konfiguracji środowiska uruchomieniowego