Compartir a través de


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.