Inicio rápido: Configuración de Durable Functions con identidad administrada
Una identidad administrada del servicio de administración de acceso Microsoft Entra ID permite a la aplicación acceder a otros recursos protegidos de Microsoft Entra, como una cuenta de Azure Storage, sin controlar los secretos manualmente. La plataforma Azure administra la identidad, por lo que no es necesario aprovisionar ni rotar ningún secreto. La manera recomendada de autenticar el acceso a los recursos de Azure es mediante este tipo de identidad.
En este inicio rápido, completará los pasos para configurar una aplicación de Durable Functions mediante el proveedor de Azure Storage predeterminado para usar conexiones basadas en identidades para el acceso a la cuenta de almacenamiento.
Nota:
La identidad administrada se admite en las versiones 2.7.0 y superiores de la extensión de Durable Functions.
Antes de comenzar, si no tiene una cuenta de Azure, cree una gratuita.
Requisitos previos
Para completar este inicio rápido necesita instalar:
- Un proyecto de Durable Functions existente creado en Azure Portal o en un proyecto local de Durable Functions implementado en Azure.
- Familiaridad con la ejecución de una aplicación 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
- Creación de la primera función duradera en Python
- Creación de la primera función duradera en PowerShell
- Creación de la primera función duradera en Java
Desarrollo local
Uso del emulador de Azure Storage
Al desarrollar localmente, se recomienda usar Azurite, que es el emulador local de Azure Storage. Configure la aplicación en el emulador especificando "AzureWebJobsStorage": "UseDevelopmentStorage = true"
en el local.settings.json.
Conexiones basadas en identidad para el desarrollo local
En sentido estricto, 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 identidad mediante las credenciales de desarrollador para autenticarse en los recursos de Azure. Después, cuando la app se implemente en Azure, 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 el orden indicado, para acceder a los recursos de Azure:
- Una caché local compartida entre las aplicaciones de Microsoft
- El contexto del usuario actual en Visual Studio
- El contexto del usuario actual en Visual Studio Code
- El contexto del usuario actual en la CLI de Azure
Si ninguna de estas opciones se realiza correctamente, aparece un error que indica que la aplicación no puede recuperar el token de autenticación para los recursos de Azure.
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 Azure Storage en Azure Portal, navegue a la pestaña Control de acceso (IAM) y haga clic en Agregar asignación de roles. Busque los siguientes roles:
- Colaborador de datos de la cola de Storage
- Colaborador de datos de blobs de almacenamiento
- Colaborador de datos de la tabla de almacenamiento
Asígnese los roles a sí mismo haciendo clic en "+ Seleccionar miembros" y encontrando su correo electrónico en la ventana emergente. (Este correo electrónico es el que se usa para iniciar sesión en aplicaciones de Microsoft, la CLI de Azure o editores de la familia de Visual Studio).
Conexiones basadas en identidades para la aplicación implementada en Azure
Habilitación del 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 rol (RBAC) al recurso de identidad administrada:
- Colaborador de datos de la cola de Storage
- Colaborador de datos de blobs de almacenamiento
- Colaborador de datos de la 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 Azure Portal, en el menú de recursos de funciones de la aplicación, en Configuración, 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 Azure Storage 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:
Nube de Azure: si la aplicación se ejecuta en Azure global, agregue una configuración
AzureWebJobsStorage__accountName
que identifique un nombre de cuenta de almacenamiento de Azure. Valor de ejemplo:mystorageaccount123
Nube que no es de Azure: si la aplicación se ejecuta en una nube fuera de Azure, debe agregar las tres configuraciones siguientes para proporcionar URI de servicio específicos (o puntos de conexión) de la cuenta de almacenamiento en lugar de un nombre de cuenta.
Nombre del valor:
AzureWebJobsStorage__blobServiceUri
Valor de ejemplo:
https://mystorageaccount123.blob.core.windows.net/
Nombre del valor:
AzureWebJobsStorage__queueServiceUri
Valor de ejemplo:
https://mystorageaccount123.queue.core.windows.net/
Nombre del valor:
AzureWebJobsStorage__tableServiceUri
Valor 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 Azure global, debe usar la opción que proporciona URI de servicio específicos en lugar del nombre de la cuenta de almacenamiento. Para más información sobre el uso de Azure Storage con Azure Government, consulte Desarrollo mediante la API de Storage 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, escribirmanagedidentity
AzureWebJobsStorage__clientId, obtenga este valor GUID del recurso de identidad administrada
Nota:
Durable Functions no admite
managedIdentityResourceId
al usar la identidad asignada por el usuario. UseclientId
en su lugar.