Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Las aplicaciones hospedadas fuera de Azure, como las locales o en un centro de datos de terceros, deben usar un principal de servicio de la aplicación a través de Microsoft Entra ID para autenticarse con los servicios de Azure. En las secciones siguientes, obtendrá información sobre lo siguiente:
- Cómo registrar una aplicación con Microsoft Entra para crear una entidad de servicio
- Cómo asignar roles a permisos de ámbito
- Autenticar usando un principal de servicio desde el código de tu aplicación
El uso de entidades de servicio de aplicaciones dedicadas permite cumplir el principio de privilegios mínimos al acceder a los recursos de Azure. Los permisos se limitan a los requisitos específicos de la aplicación durante el desarrollo, lo que impide el acceso accidental a Azure recursos destinados a otras aplicaciones o servicios. Este enfoque también ayuda a evitar problemas cuando la aplicación se mueve a producción asegurándose de que no tiene privilegios excesivos en el entorno de desarrollo.
Debe crear un registro de aplicación diferente para cada entorno en el que se hospeda la aplicación. Esto permite configurar permisos de recursos específicos del entorno para cada entidad de servicio y asegurarse de que una aplicación implementada en un entorno no habla con Azure recursos que forman parte de otro entorno.
Registro de la aplicación en Azure
Los objetos de entidad de servicio de aplicación se crean a través de un registro de aplicación en Azure mediante el portal de Azure o CLI de Azure.
En el portal de Azure, use la barra de búsqueda para ir a la página Registros de aplicaciones.
En la página Registros de aplicaciones, seleccione + Nuevo registro.
En la página Registrar una aplicación :
- En el campo Nombre , escriba un valor descriptivo que incluya el nombre de la aplicación y el entorno de destino.
- Para los tipos de cuenta admitidos, seleccione Solo cuentas en este directorio organizativo (Solo cliente de Microsoft dirigido - locatario único) o la opción que mejor se adapte a sus requisitos.
Seleccione Registrar para registrar la aplicación y crear la entidad de servicio.
Una captura de pantalla que muestra cómo registrar una aplicación en el portal de Azure.
En la página Registro de aplicaciones de la aplicación, copie el identificador de aplicación (cliente) y el identificador de directorio (inquilino) y péguelos en una ubicación temporal para usarlos posteriormente en las configuraciones de código de la aplicación.
Seleccione Agregar un certificado o un secreto para configurar las credenciales de la aplicación.
En la página Certificados y secretos , seleccione + Nuevo secreto de cliente.
En el panel flotante Agregar un secreto de cliente que aparece:
- En Descripción, escriba un valor de Current.
- Para el valor Expira, deje el valor recomendado predeterminado de 180 días.
- Seleccione Agregar para agregar el secreto.
En la página Certificados y secretos , copie la propiedad Value del secreto de cliente para su uso en un paso futuro.
Nota:
El valor del secreto de cliente solo se muestra una vez después de crear el registro de la aplicación. Puede agregar más secretos de cliente sin invalidar este secreto de cliente, pero no hay ninguna manera de volver a mostrar este valor.
Asignar roles al principal de servicio de la aplicación
A continuación, determine qué roles (permisos) necesita la aplicación en qué recursos y asigne esos roles a la entidad de servicio que creó. Los roles se pueden asignar en el ámbito de recurso, grupo de recursos o suscripción. En este ejemplo se muestra cómo asignar roles en el ámbito del grupo de recursos, ya que la mayoría de las aplicaciones agrupan todos sus recursos de Azure en un único grupo de recursos.
En el portal de Azure, vaya a la página Overview del grupo de recursos que contiene la aplicación.
Seleccione Control de acceso (IAM) en el panel de navegación izquierdo.
En la página Control de acceso (IAM), seleccione + Agregar y, a continuación, elija Agregar asignación de roles en el menú desplegable. La página Agregar asignación de roles proporciona varias pestañas para configurar y asignar roles.
En la pestaña Rol , use el cuadro de búsqueda para buscar el rol que desea asignar. Seleccione el rol y, a continuación, elija Siguiente.
En la pestaña Miembros :
- En Asignar acceso al valor, seleccione Usuario, grupo o entidad de servicio .
- Para el valor Miembros , elija + Seleccionar miembros para abrir el panel flotante Seleccionar miembros .
- Busque el principal de servicio que creó anteriormente y selecciónelo en los resultados filtrados. Elija Seleccionar para seleccionar el grupo y cerrar el panel flotante.
- Seleccione Revisar y asignar en la parte inferior de la pestaña Miembros .
Captura de pantalla que muestra cómo asignar un rol a la entidad de servicio.
En la pestaña Revisar y asignar , seleccione Revisar y asignar en la parte inferior de la página.
Establecimiento de las variables de entorno de la aplicación
En tiempo de ejecución, ciertas credenciales de la biblioteca Azure Identity, como DefaultAzureCredential, EnvironmentCredential y ClientSecretCredential, buscan información del principal de servicio por convención en las variables de entorno. Hay varias maneras de configurar variables de entorno al trabajar con Python, en función de las herramientas y el entorno.
Independientemente del método que elija, configure las siguientes variables de entorno para el principal del servicio:
-
AZURE_CLIENT_ID: se usa para identificar la aplicación registrada en Azure. -
AZURE_TENANT_ID: el identificador del inquilino de Microsoft Entra. - : credencial secreta que se generó para la aplicación.
- Visual Studio Code
- Windows
- Gunicorn
En Visual Studio Code, las variables de entorno se pueden establecer en el archivo />
{
"configurations": [
{
"env": {
"AZURE_CLIENT_ID": "<your-client-id>",
"AZURE_TENANT_ID": "<your-tenant-id>",
"AZURE_CLIENT_SECRET": "<your-client-secret>"
}
}
]
}
Autentica a servicios de Azure desde tu aplicación
La biblioteca azure-identity proporciona varias credenciales, implementaciones de TokenCredential adaptadas para admitir diferentes escenarios y flujos de autenticación de Microsoft Entra. Los pasos que se indican a continuación muestran cómo usar ClientSecretCredential al trabajar con entidades de servicio localmente y en producción.
Implementación del código
Empiece agregando el paquete a la aplicación.
pip install azure-identity
A continuación, para cualquier código de Python que cree un objeto cliente del SDK de Azure en tu aplicación, debes:
- Importar la clase desde el módulo .
- Importe el módulo para leer las variables de entorno.
- Lea las variables de entorno para obtener el identificador de cliente, el identificador de inquilino y el secreto de cliente.
- Cree un objeto pasando el ID de inquilino, el ID de cliente, y la clave secreta de cliente.
- Pase el objeto
ClientSecretCredentialal constructor de objetos de cliente de SDK de Azure.
En el siguiente segmento de código se muestra un ejemplo de este enfoque.
import os
from azure.identity import ClientSecretCredential
from azure.storage.blob import BlobServiceClient
tenant_id = os.environ.get("AZURE_TENANT_ID")
client_id = os.environ.get("AZURE_CLIENT_ID")
client_secret = os.environ.get("AZURE_CLIENT_SECRET")
credential = ClientSecretCredential(tenant_id, client_id, client_secret)
blob_service_client = BlobServiceClient(
account_url="https://<my_account_name>.blob.core.windows.net",
credential=credential)