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.
En este inicio rápido se muestra cómo configurar una aplicación de Durable Functions mediante el proveedor predeterminado Azure Storage para usar conexiones basadas en identidades, de modo que la aplicación pueda acceder a su cuenta de almacenamiento sin administrar secretos. La plataforma Azure administra una identidad administrada de Microsoft Entra ID; no necesitas aprovisionar ni rotar ningún secreto.
En este artículo:
- Configuración de desarrollo local : use Azurite o sus credenciales de desarrollador para las pruebas locales.
- Conexiones basadas en identidades para la aplicación implementada en Azure: habilite una identidad administrada y configure la aplicación de funciones.
Nota:
La identidad administrada se admite en la extensión Durable Functions a partir de la versión 2.7.0 y posteriores.
Si no tiene una cuenta de Azure, cree una cuenta gratuita antes de comenzar.
Prerrequisitos
Para completar este inicio rápido necesita instalar:
- Un proyecto de Durable Functions existente creado en el portal de Azure o en un proyecto de Durable Functions local implementado en Azure.
- Familiaridad con la ejecución de una aplicación de Durable Functions en Azure.
Si no tiene un proyecto de Durable Functions existente implementado en Azure, se recomienda empezar con uno de los siguientes inicios rápidos:
- Creación de la primera función duradera en C#
- Creación de la primera función duradera en JavaScript
- Crear la primera función durable: Python
- Creación de la primera función duradera en PowerShell
- Crear la primera función durable: Java
Configuración del desarrollo local
Tiene dos opciones para el desarrollo local. Use Azurite para realizar pruebas locales rápidas sin credenciales de Azure. Si necesita probar las conexiones basadas en identidades en una cuenta de Azure Storage real, use sus credenciales de desarrollador en su lugar.
Opción 1: Uso del emulador de Azure Storage
Al desarrollar localmente, se recomienda usar Azurite, que es Azure Storage emulador local. Configure la aplicación en el emulador especificando "AzureWebJobsStorage": "UseDevelopmentStorage=true" en el local.settings.json.
Opción 2: Conexiones basadas en identidades para el desarrollo local
En términos estrictos, una identidad administrada solo está disponible para las aplicaciones al ejecutarse en Azure. Sin embargo, todavía puede configurar una aplicación en ejecución local para usar la conexión basada en identidades mediante las credenciales de desarrollador para autenticarse en recursos de Azure. A continuación, cuando se implementa en Azure, la aplicación usará la configuración de identidad administrada en su lugar.
Al usar credenciales de desarrollador, la conexión intenta obtener un token de las siguientes ubicaciones, en este orden:
- Una caché local compartida entre las aplicaciones de Microsoft
- Contexto de usuario actual en Visual Studio
- Contexto de usuario actual en Visual Studio Code
- Contexto de usuario actual en el CLI de Azure
Si ninguna de estas opciones se realiza correctamente, recibirá un error que indica que la aplicación no puede recuperar un token de autenticación. Compruebe que ha iniciado sesión en una de las herramientas enumeradas con una cuenta que tenga acceso a su cuenta de Azure Storage.
Configuración del entorno de ejecución para usar la identidad del desarrollador local
Especifique el nombre de la cuenta de Azure Storage en local.settings.json, por ejemplo:
{ "IsEncrypted": false, "Values": { "AzureWebJobsStorage__accountName": "<<your Azure Storage account name>>", "FUNCTIONS_WORKER_RUNTIME": "dotnet-isolated" } }Vaya al recurso de la cuenta de almacenamiento de Azure en el portal de Azure.
Seleccione la pestaña Access Control (IAM) y seleccione Agregar asignación de roles.
Asigne cada uno de los siguientes roles a sí mismo. Para cada rol, seleccione "+ Seleccionar miembros" y busque el correo electrónico que usa para iniciar sesión en Visual Studio, Visual Studio Code o el CLI de Azure.
- Colaborador de datos de cola de Storage
- Colaborador de datos de Storage Blob
- Colaborador de datos de tabla de almacenamiento
Nota:
Estos son los tres mismos roles necesarios para su identidad administrada al implementar en Azure. Consulte Asignación de roles de acceso a la identidad administrada.
Conexiones basadas en identidades para la aplicación implementada en Azure
Habilitación de un recurso de identidad administrada
Para empezar, habilite una identidad administrada para la aplicación. La aplicación de funciones debe tener una identidad administrada asignada por el sistema o una identidadadministrada asignada por el usuario. Para habilitar una identidad administrada para la aplicación de funciones y obtener más información sobre las diferencias entre los dos tipos de identidades, consulte la introducción a la identidad administrada.
Asignación de roles de acceso a la identidad administrada
Vaya al recurso de Azure Storage de la aplicación en Azure Portal y asigne tres roles de control de acceso basado en roles (RBAC) a su recurso de identidad administrada.
- Colaborador de datos de cola de Storage
- Colaborador de datos de Storage Blob
- Colaborador de datos de tabla de almacenamiento
Para buscar el recurso de identidad, seleccione Asignar acceso a Identidad administrada y, a continuación, + Seleccionar miembros
Adición de la configuración de identidad administrada a la aplicación
Para poder usar la identidad administrada de la aplicación, realice algunos cambios en la configuración de la aplicación:
En el portal de Azure, en el menú de recursos de la aplicación de funciones en Settings, seleccione Variables de entorno.
En la lista de configuraciones, busque AzureWebJobsStorage y seleccione el icono Eliminar.
Agregue una configuración para vincular la cuenta de almacenamiento de Azure a la aplicación.
Use uno de los métodos siguientes en función de la nube en la que se ejecuta la aplicación:
Azure cloud: si la aplicación se ejecuta en global Azure, agregue la configuración
AzureWebJobsStorage__accountNameque identifica un nombre de cuenta de almacenamiento de Azure. Valor de ejemplo:mystorageaccount123Non-Azure cloud: si la aplicación se ejecuta en una nube fuera de Azure, debe agregar las tres opciones siguientes para proporcionar URI de servicio específicos (o endpoints) de la cuenta de almacenamiento en lugar de un nombre de cuenta.
Nombre de configuración:
AzureWebJobsStorage__blobServiceUriValor de ejemplo:
https://mystorageaccount123.blob.core.windows.net/Nombre de configuración:
AzureWebJobsStorage__queueServiceUriValor de ejemplo:
https://mystorageaccount123.queue.core.windows.net/Nombre de configuración:
AzureWebJobsStorage__tableServiceUriValor de ejemplo:
https://mystorageaccount123.table.core.windows.net/
Puede obtener los valores de estas variables de URI en la información de la cuenta de almacenamiento en la pestaña Puntos de conexión.
Nota:
Si usa Azure Government o cualquier otra nube independiente de la Azure global, debe usar la opción que proporciona URI de servicio específicos en lugar del nombre de la cuenta de almacenamiento. Para obtener más información sobre el uso de Azure Storage con Azure Government, consulte el Develop mediante la API de almacenamiento en Azure Government.
Finalice la configuración de la identidad administrada (recuerde hacer clic en "Aplicar" después de realizar los cambios en la configuración):
Si usa una identidad asignada por el sistema, no realice ningún otro cambio.
Si usa una identidad asignada por el usuario, agregue las siguientes configuraciones a la configuración de la aplicación:
AzureWebJobsStorage__credential, introduzca managedidentity
AzureWebJobsStorage__clientId, obtenga este valor GUID del recurso de identidad administrada
Nota:
Durable Functions no admite
managedIdentityResourceIdcuando se usa identidad asignada por el usuario. UseclientIden su lugar.
Comprobación de la configuración
Para confirmar que la configuración de identidad administrada funciona:
- En el portal de Azure, dirígete a tu aplicación de funciones y activa la orquestación de Durable Functions (por ejemplo, mediante una función activada por HTTP).
- Compruebe que la orquestación se complete correctamente consultando el punto final de estado o comprobando la pestaña Supervisión.
- Si ve errores de autenticación, compruebe que:
- Los tres roles de Contribuyente de Datos de Almacenamiento están asignados a la identidad correcta.
- Se elimina la configuración de la cadena de conexión
AzureWebJobsStorage. - La
AzureWebJobsStorage__accountNameconfiguración (o URI del servicio) es correcta.
Pasos siguientes
- Introducción a la identidad administrada de App Service y Azure Functions
- proveedor Durable Functions Azure Storage
- Introducción a los proveedores de almacenamiento Durable Functions