Autenticación de Azure en data API Builder
Data API Builder permite a los desarrolladores definir el mecanismo de autenticación (proveedor de identidades) que quieren que el generador de Data API use para autenticar quién realiza solicitudes.
La autenticación se delega en un proveedor de identidades compatible en el que se puede emitir el token de acceso. Un token de acceso adquirido debe incluirse con las solicitudes entrantes a Data API Builder. Después, data API Builder valida los tokens de acceso presentados, lo que garantiza que Data API Builder era la audiencia prevista del token.
Las opciones de configuración admitidas del proveedor de identidades son:
- StaticWebApps
- JSON Web Tokens (JWT)
En desarrollo (inicio de sesión de AZ)
El uso de Authentication='Active Directory Default'
en cadenas de conexión de Azure SQL Database significa que el cliente se autenticará mediante credenciales de Azure Active Directory (AAD). El entorno determina el método de autenticación exacto. Cuando un desarrollador ejecuta az login
, la CLI de Azure abre una ventana del explorador que pide al usuario que inicie sesión con una cuenta microsoft o credenciales corporativas. Una vez autenticado, la CLI de Azure recupera y almacena en caché el token vinculado a la identidad de Azure Active Directory. A continuación, este token se usa para autenticar las solicitudes a los servicios de Azure sin necesidad de credenciales en la cadena de conexión.
"data-source": {
"connection-string": "...;Authentication='Active Directory Default';"
}
Para configurar las credenciales locales, simplemente use az login
después de instalar la CLI de Azure .
az login
Autenticación de Azure Static Web Apps (EasyAuth)
Data API Builder espera que la autenticación de Azure Static Web Apps (EasyAuth) autentique la solicitud y proporcione metadatos sobre el usuario autenticado en el encabezado HTTP de X-MS-CLIENT-PRINCIPAL
al usar la opción StaticWebApps
. Se puede hacer referencia a los metadatos de usuario autenticados proporcionados por Static Web Apps en la siguiente documentación: acceso a la información de usuario.
Para usar el proveedor de StaticWebApps
, debe especificar la siguiente configuración en la sección runtime.host
del archivo de configuración:
"authentication": {
"provider": "StaticWebApps"
}
El uso del proveedor de StaticWebApps
es útil cuando planea ejecutar data API Builder en Azure, hospedarlo mediante App Service y ejecutarlo en un contenedor: Ejecutar un contenedor personalizado en Azure App Service.
JWT
Para usar el proveedor JWT, debe configurar la sección runtime.host.authentication
proporcionando la información necesaria para comprobar el token JWT recibido:
"authentication": {
"provider": "AzureAD",
"jwt": {
"audience": "<APP_ID>",
"issuer": "https://login.microsoftonline.com/<AZURE_AD_TENANT_ID>/v2.0"
}
}
Selección de roles
Una vez que una solicitud se autentica a través de cualquiera de las opciones disponibles, los roles definidos en el token se usan para ayudar a determinar cómo se evalúan las reglas de permisos para autorizar la solicitud. Cualquier solicitud autenticada se asigna automáticamente al rol de sistema de authenticated
, a menos que se solicite un rol de usuario para su uso. Para obtener más información, consulte autorización.
Solicitudes anónimas
También se pueden realizar solicitudes sin autenticarse. En tales casos, la solicitud se asigna automáticamente al rol de sistema de anonymous
para que se pueda autorizado correctamente.
X-MS-API-ROLE encabezado de solicitud
Data API Builder requiere el encabezado X-MS-API-ROLE
para autorizar solicitudes mediante roles personalizados. El valor de X-MS-API-ROLE
debe coincidir con un rol especificado en el token. Por ejemplo, si el token tiene el rol Sample.Role, X-MS-API-ROLE también debe ser Sample.Role. Para obtener más información, consulte roles de autorización de usuario.