Share via


Configuración de Durable Functions con Microsoft Entra ID

Microsoft Entra ID (Microsoft Entra ID) es un servicio de administración de identidades y accesos basado en la nube. Las conexiones basadas en identidades permiten a Durable Functions realizar solicitudes autorizadas en recursos protegidos de Microsoft Entra, como una cuenta de Azure Storage, sin necesidad de administrar los secretos manualmente. Con el proveedor de almacenamiento de Azure predeterminado, Durable Functions debe autenticarse en una cuenta de almacenamiento de Azure. En este artículo, se muestra cómo configurar una aplicación de Durable Functions para usar dos tipos de conexiones basadas en identidad: credenciales de identidad administradas y credenciales de secreto de cliente.

Una identidad administrada permite a la aplicación acceder fácilmente a otros recursos protegidos de Microsoft Entra, como Azure Key Vault. La identidad administrada se admite en las versiones 2.7.0 y superiores de la extensión de Durable Functions.

Nota:

En sentido estricto, una identidad administrada solo está disponible para las aplicaciones al ejecutarse en Azure. Cuando se configura para usar conexiones basadas en identidades, una aplicación que se ejecuta localmente usará las credenciales de desarrollador para autenticarse con los recursos de Azure. Después, cuando se implemente en Azure, usará la configuración de identidad administrada en su lugar.

Requisitos previos

En los pasos siguientes se da por hecho que está empezando con una aplicación de Durable Functions existente y que conoce bien su funcionamiento. En concreto, en esta guía de inicio rápido se da por supuesto que ya tiene lo siguiente:

  • Creó un proyecto de Durable Functions en Azure Portal o implementó una instancia de Durable Functions local en Azure.

Si no es el caso, le sugerimos que empiece por uno de los siguientes artículos, que proporciona instrucciones detalladas sobre cómo lograr todos los requisitos anteriores:

Habilitación de una entidad administrada

Solo se necesita una identidad para la función, ya sea una identidad administrada asignada por el sistema o una identidad administrada asignada por el usuario. Para habilitar una identidad administrada para la función y obtener más información sobre las diferencias entre las dos identidades, lea las instrucciones detalladas aquí.

Asignación de controles de acceso basado en rol (RBAC) a la identidad administrada

Vaya al recurso de almacenamiento de la aplicación en Azure Portal. Siga estas instrucciones para asignar los siguientes roles al recurso de identidad administrada.

  • Colaborador de datos de la cola de Storage
  • Colaborador de datos de blobs de almacenamiento
  • Colaborador de datos de tabla de Storage

Adición de una configuración de una identidad administrada en Azure Portal

Vaya a la página Configuración de la aplicación de funciones de Azure y realice los cambios siguientes:

  1. Quite el valor predeterminado "AzureWebJobsStorage".

Screenshot of default storage setting.

  1. Vincule la cuenta de almacenamiento de Azure agregando una de las siguientes opciones de configuración de valor:

    • AzureWebJobsStorage__accountName: por ejemplo: mystorageaccount123

    • AzureWebJobsStorage__blobServiceUri: por ejemplo: https://mystorageaccount123.blob.core.windows.net/

      AzureWebJobsStorage__queueServiceUri: por ejemplo: https://mystorageaccount123.queue.core.windows.net/

      AzureWebJobsStorage__tableServiceUri: por ejemplo: https://mystorageaccount123.table.core.windows.net/

      Nota:

      Si usa Azure Government o cualquier otra nube independiente de Azure global, deberá usar esta segunda opción para proporcionar direcciones URL de servicio específicas. Los valores de esta configuración se pueden encontrar en la cuenta de almacenamiento en la pestaña Puntos de conexión. Para más información sobre el uso de Azure Storage con Azure Government, consulte la documentación de Desarrollo con la API de almacenamiento en Azure Government.

    Screenshot of endpoint sample.

  2. Finalice la configuración de la identidad administrada:

    • Si se debe usar la identidad asignada por el sistema, no especifique nada más.

    • Si se debe usar la identidad asignada por el usuario, agregue los siguientes valores de configuración de la aplicación en la configuración de la aplicación:

      • AzureWebJobsStorage__credential: managedidentity

      • AzureWebJobsStorage__clientId: (este es un valor GUID que obtiene del centro de administración de Microsoft Entra)

      Screenshot of user identity client id.

Configuración de la aplicación para usar credenciales de secreto de cliente

El registro de una aplicación cliente en Microsoft Entra ID es otra manera de configurar el acceso a un servicio de Azure. En los pasos siguientes, aprenderá a usar las credenciales de secreto de cliente para la autenticación en la cuenta de Azure Storage. Las aplicaciones de funciones pueden usar este método localmente y en Azure. Sin embargo, la credencial de secreto de cliente es menos recomendable que la identidad administrada, ya que es más complicada de configurar y administrar y requiere compartir una credencial secreta con el servicio Azure Functions.

Requisitos previos

En los pasos siguientes se da por hecho que está empezando con una aplicación de Durable Functions existente y que conoce bien su funcionamiento. En concreto, en esta guía de inicio rápido se da por supuesto que ya tiene lo siguiente:

  • Ha creado un proyecto de Durable Functions en la máquina local o en Azure Portal.

Registro de una aplicación cliente en Microsoft Entra ID

  1. Registre una aplicación cliente en Microsoft Entra ID en Azure Portal según estas instrucciones.

  2. Cree un secreto de cliente para la aplicación cliente. En la aplicación registrada:

    1. Seleccione Certificados y secretos y seleccione Nuevo secreto de cliente.

    2. Rellene una descripción y elija la hora válida del secreto en el campo Expira.

    3. Copie y guarde el valor del secreto cuidadosamente porque no se mostrará de nuevo después de salir de la página.

    Screenshot of client secret page.

Asignación de controles de acceso basados en rol (RBAC) a la aplicación cliente

Asigne estos tres roles a la aplicación cliente con los pasos siguientes.

  • Colaborador de datos de la cola de Storage
  • Colaborador de datos de blobs de almacenamiento
  • Colaborador de datos de tabla de Storage
  1. Vaya a la página de Access Control (IAM) de la cuenta de almacenamiento de la función y agregue una nueva asignación de roles.

    Screenshot of access control page.

  2. Elija el rol necesario, haga clic en Siguiente y busque la aplicación. Revísela y agréguela.

    Screenshot of role assignment page.

Adición de la configuración del secreto de cliente

Para ejecutar y probar en Azure, especifique lo siguiente en la página Configuración de la aplicación de funciones de Azure en Azure Portal. Para ejecutar y probar localmente, especifique lo siguiente en el archivo local.settings.json de la función.

  1. Quite el valor predeterminado "AzureWebJobsStorage".

  2. Vincule la cuenta de almacenamiento de Azure agregando una de las siguientes configuraciones de valores:

    • AzureWebJobsStorage__accountName: por ejemplo: mystorageaccount123

    • AzureWebJobsStorage__blobServiceUri: por ejemplo: https://mystorageaccount123.blob.core.windows.net/

      AzureWebJobsStorage__queueServiceUri: por ejemplo: https://mystorageaccount123.queue.core.windows.net/

      AzureWebJobsStorage__tableServiceUri: por ejemplo: https://mystorageaccount123.table.core.windows.net/

    Los valores de estas variables de URI se pueden encontrar en la cuenta de almacenamiento en la pestaña Puntos de conexión.

    Screenshot of endpoint sample.

  3. Agregue una credencial de secreto de cliente especificando los siguientes valores:

    • AzureWebJobsStorage__clientId: (se trata de un valor GUID que se encuentra en la página de la aplicación de Microsoft Entra)

    • AzureWebJobsStorage__ClientSecret: (este es el valor secreto generado en el centro de administración de Microsoft Entra en un paso anterior)

    • AzureWebJobsStorage__tenantId: (este es el identificador de inquilino en el que está registrada la aplicación de Microsoft Entra)

    Los valores de identificador de cliente e identificador de inquilino se pueden encontrar en la página de información general de la aplicación cliente. El valor del secreto de cliente es el que se guardó cuidadosamente en el paso anterior. No estará disponible después de actualizar la página.

    Screenshot of application's overview page.