Azure-autentisering i Data API-byggare
Med Data API Builder kan utvecklare definiera den autentiseringsmekanism (identitetsprovider) som de vill att Data API-byggare ska använda för att autentisera vem som gör begäranden.
Autentisering delegeras till en identitetsprovider som stöds där åtkomsttoken kan utfärdas. En förvärvad åtkomsttoken måste ingå i inkommande begäranden till Data API Builder. Data API Builder verifierar sedan alla presenterade åtkomsttoken, vilket säkerställer att Data API Builder var den avsedda målgruppen för token.
Konfigurationsalternativen för identitetsprovidern som stöds är:
- StaticWebApps
- JSON-webbtoken (JWT)
Under utveckling (AZ-inloggning)
Att använda Authentication='Active Directory Default'
i Azure SQL Database-anslutningssträngar innebär att klienten autentiserar med autentiseringsuppgifter för Azure Active Directory (AAD). Den exakta autentiseringsmetoden bestäms av miljön. När en utvecklare kör az login
öppnar Azure CLI ett webbläsarfönster där användaren uppmanas att logga in med ett Microsoft-konto eller företagsautentiseringsuppgifter. När azure CLI har autentiserats hämtar och cachelagrar det token som är länkat till Azure Active Directory-identiteten. Den här token används sedan för att autentisera begäranden till Azure-tjänster utan att kräva autentiseringsuppgifter i anslutningssträngen.
"data-source": {
"connection-string": "...;Authentication='Active Directory Default';"
}
Om du vill konfigurera lokala autentiseringsuppgifter använder du bara az login
när du har installerat Azure CLI-.
az login
Azure Static Web Apps-autentisering (EasyAuth)
Data API Builder förväntar sig att Azure Static Web Apps-autentisering (EasyAuth) autentiserar begäran och tillhandahåller metadata om den autentiserade användaren i X-MS-CLIENT-PRINCIPAL
HTTP-huvudet när du använder alternativet StaticWebApps
. Autentiserade användarmetadata från Static Web Apps kan refereras i följande dokumentation: Åtkomst till användarinformation.
Om du vill använda StaticWebApps
-providern måste du ange följande konfiguration i avsnittet runtime.host
i konfigurationsfilen:
"authentication": {
"provider": "StaticWebApps"
}
Det är användbart att använda StaticWebApps
-providern när du planerar att köra Data API Builder i Azure, hantera den med App Service och köra den i en container: Kör en anpassad container i Azure App Service.
JWT
Om du vill använda JWT-providern måste du konfigurera avsnittet runtime.host.authentication
genom att ange nödvändig information för att verifiera den mottagna JWT-token:
"authentication": {
"provider": "AzureAD",
"jwt": {
"audience": "<APP_ID>",
"issuer": "https://login.microsoftonline.com/<AZURE_AD_TENANT_ID>/v2.0"
}
}
Val av roller
När en begäran har autentiserats via något av de tillgängliga alternativen används rollerna som definieras i token för att avgöra hur behörighetsregler utvärderas för att auktorisera begäran. Alla autentiserade begäranden tilldelas automatiskt till authenticated
systemroll, såvida inte en användarroll begärs för användning. För mer information, se auktorisering.
Anonyma begäranden
Begäranden kan också göras utan att autentiseras. I sådana fall tilldelas begäran automatiskt till anonymous
-systemrollen så att den kan auktoriseras.
X-MS-API-ROLE begärandehuvud
Data API Builder kräver rubriken X-MS-API-ROLE
för att auktorisera begäranden med hjälp av anpassade roller. Värdet för X-MS-API-ROLE
måste matcha en roll som anges i token. Om token till exempel har rollen Sample.Rolebör X-MS-API-ROLE också vara Sample.Role. För mer information, se användarroller för auktorisering.