Compartir vía


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:

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

  1. 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"
       }
    }
    
  2. 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).

    Captura de pantalla que muestra la asignación de acceso al usuario.

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

Captura de pantalla que muestra la asignación de acceso a la identidad administrada.

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:

  1. En Azure Portal, en el menú de recursos de funciones de la aplicación, en Configuración, seleccione Variables de entorno.

  2. En la lista de configuraciones, busque AzureWebJobsStorage y seleccione el icono Eliminar. Captura de pantalla de la configuración de almacenamiento predeterminada.

  3. 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ónAzureWebJobsStorage__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.

    Captura de pantalla del ejemplo de punto 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.

  4. 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

      Captura de pantalla del identificador de cliente de identidad de usuario.

    Nota:

    Durable Functions no admitemanagedIdentityResourceId al usar la identidad asignada por el usuario. Use clientId en su lugar.