Uwierzytelnianie platformy Azure w narzędziu Data API Builder
Konstruktor interfejsu API danych umożliwia deweloperom zdefiniowanie mechanizmu uwierzytelniania (dostawcy tożsamości), który chce, aby konstruktor interfejsu API danych używał do uwierzytelniania, kto wysyła żądania.
Uwierzytelnianie jest delegowane do obsługiwanego dostawcy tożsamości, w którym można wystawiać token dostępu. Uzyskany token dostępu musi być dołączony do żądań przychodzących do konstruktora interfejsu API danych. Konstruktor interfejsu API danych weryfikuje wszystkie przedstawione tokeny dostępu, zapewniając, że konstruktor interfejsu API danych był zamierzonym odbiorcą tokenu.
Obsługiwane opcje konfiguracji dostawcy tożsamości to:
- StaticWebApps
- Tokeny internetowe JSON (JWT)
W trakcie rozwoju (AZ Login)
Użycie Authentication='Active Directory Default'
w parametrach połączenia usługi Azure SQL Database oznacza, że klient będzie uwierzytelniany przy użyciu poświadczeń usługi Azure Active Directory (AAD). Dokładna metoda uwierzytelniania jest określana przez środowisko. Gdy deweloper uruchamia az login
, interfejs wiersza polecenia platformy Azure otwiera okno przeglądarki z monitem użytkownika o zalogowanie się przy użyciu konta Microsoft lub poświadczeń firmowych. Po uwierzytelnieniu Azure CLI pobiera i buforuje token powiązany z tożsamością Azure Active Directory. Ten token jest następnie używany do uwierzytelniania żądań w usługach platformy Azure bez konieczności poświadczeń w parametrach połączenia.
"data-source": {
"connection-string": "...;Authentication='Active Directory Default';"
}
Aby skonfigurować poświadczenia lokalne, wystarczy użyć az login
po zainstalowaniu Azure CLI .
az login
Uwierzytelnianie usługi Azure Static Web Apps (EasyAuth)
Oczekuje się, że Data API builder wykorzystuje uwierzytelnienie w Azure Static Web Apps (EasyAuth) do uwierzytelnienia żądania i dostarczenia metadanych dotyczących uwierzytelnionego użytkownika w nagłówku HTTP X-MS-CLIENT-PRINCIPAL
podczas korzystania z opcji StaticWebApps
. Uwierzytelnione metadane użytkownika udostępniane przez usługę Static Web Apps można znaleźć w następującej dokumentacji: uzyskiwanie dostępu do informacji o użytkowniku.
Aby użyć dostawcy StaticWebApps
, należy określić następującą konfigurację w sekcji runtime.host
pliku konfiguracji:
"authentication": {
"provider": "StaticWebApps"
}
Użycie dostawcy StaticWebApps
jest przydatne podczas planowania uruchamiania konstruktora interfejsu API danych na platformie Azure, hostowania go przy użyciu usługi App Service i uruchamiania go w kontenerze: Uruchom kontener niestandardowy w usłudze Azure App Service.
JWT
Aby użyć dostawcy JWT, należy skonfigurować sekcję runtime.host.authentication
, podając wymagane informacje, aby zweryfikować odebrany token JWT:
"authentication": {
"provider": "AzureAD",
"jwt": {
"audience": "<APP_ID>",
"issuer": "https://login.microsoftonline.com/<AZURE_AD_TENANT_ID>/v2.0"
}
}
Wybór ról
Po uwierzytelnieniu żądania za pośrednictwem dowolnej z dostępnych opcji role zdefiniowane w tokenie są używane do określania sposobu oceniania reguł uprawnień w celu autoryzowania żądania. Każde uwierzytelnione żądanie jest automatycznie przypisywane do roli systemu authenticated
, chyba że do użycia zostanie zażądana rola użytkownika. Aby uzyskać więcej informacji, zobacz authorization.
Żądania anonimowe
Żądania można również wysyłać bez uwierzytelniania. W takich przypadkach żądanie jest automatycznie przypisywane do roli systemu anonymous
, dzięki czemu może być prawidłowo autoryzowane.
Nagłówek żądania X-MS-API-ROLE
Kreator interfejsu API danych wymaga nagłówka X-MS-API-ROLE
do autoryzowania żądań przy użyciu ról niestandardowych. Wartość X-MS-API-ROLE
musi być zgodna z rolą określoną w tokenie. Jeśli na przykład token ma rolę Sample.Role, to X-MS-API-ROLE powinien być również Sample.Role. Aby uzyskać więcej informacji, zobacz role autoryzacji użytkownika .