Compartir a través de


Autenticación de aplicaciones .NET en servicios de Azure durante el desarrollo local mediante cuentas de desarrollador

Durante el desarrollo local, las aplicaciones deben autenticarse en Azure para acceder a varios servicios de Azure. Dos enfoques comunes para la autenticación local son usar una entidad de servicio o usar una cuenta de desarrollador. En este artículo se explica cómo usar una cuenta de desarrollador. En las siguientes secciones, obtendrá información sobre:

  • Uso de grupos de Microsoft Entra para administrar de forma eficaz los permisos de varias cuentas de desarrollador
  • Cómo asignar roles a cuentas de desarrollador para definir el alcance de los permisos
  • Cómo iniciar sesión en herramientas de desarrollo local admitidas
  • Autenticación mediante una cuenta de desarrollador desde el código de la aplicación

Un diagrama que muestra una aplicación ejecutándose en el entorno de desarrollo local utilizando una identidad de herramientas de desarrollo para conectarse a los recursos de Azure.

Para que una aplicación se autentique en Azure durante el desarrollo local mediante las credenciales de Azure del desarrollador, el desarrollador debe iniciar sesión en Azure desde una de las siguientes herramientas de desarrollo:

  • CLI de Azure
  • CLI de desarrollo de Azure
  • Azure PowerShell
  • Visual Studio

La biblioteca de identidades de Azure puede detectar que el desarrollador ha iniciado sesión desde una de estas herramientas. Después, la biblioteca puede obtener el token de acceso de Microsoft Entra mediante la herramienta para autenticar la aplicación en Azure como el usuario que ha iniciado sesión.

Este enfoque aprovecha las cuentas de Azure existentes del desarrollador para simplificar el proceso de autenticación. Sin embargo, es probable que la cuenta de un desarrollador tenga más permisos que los que requiere la aplicación, lo que supone superar los permisos con los que se ejecutará la aplicación en producción. Como alternativa, puede crear entidades de servicio de aplicación para usarlas durante el desarrollo local que se pueden limitar para tener solo el acceso necesario para la aplicación.

Creación de un grupo de Microsoft Entra para el desarrollo local

Cree un grupo de Microsoft Entra para encapsular los roles (permisos) que la aplicación necesita en el desarrollo local en lugar de asignar los roles a objetos de entidad de servicio individuales. Este procedimiento ofrece las siguientes ventajas:

  • Cada desarrollador tiene los mismos roles asignados en el nivel de grupo.
  • Si se necesita un nuevo rol para la aplicación, solo necesita añadirse al grupo de la aplicación.
  • Si un nuevo desarrollador se une al equipo, se crea un nuevo principal de servicio de la aplicación para el desarrollador y se agrega al grupo, garantizando que el desarrollador tenga los permisos adecuados para trabajar en la aplicación.
  1. Vaya a la página de información general de ID de Microsoft Entra en el portal de Azure.

  2. Seleccione Todos los grupos en el menú de la izquierda.

  3. En la página Grupos , seleccione Nuevo grupo.

  4. En la página Nuevo grupo , rellene los siguientes campos de formulario:

    • Tipo de grupo: seleccione Seguridad.
    • Nombre del grupo: escriba un nombre para el grupo que incluya una referencia al nombre de la aplicación o del entorno.
    • Descripción del grupo: escriba una descripción que explique el propósito del grupo.

    Captura de pantalla que muestra cómo crear un grupo en Azure Portal.

  5. Seleccione el vínculo Sin miembros seleccionados en Miembros para agregar miembros al grupo.

  6. En el panel flotante que se abre, busque la entidad de servicio que creó anteriormente y selecciónela en los resultados filtrados. Elija el botón Seleccionar situado en la parte inferior del panel para confirmar la selección.

  7. Seleccione Crear en la parte inferior de la página Nuevo grupo para crear el grupo y volver a la página Todos los grupos . Si no ve el nuevo grupo en la lista, espere un momento y actualice la página.

Asignación de roles al grupo

A continuación, determine qué roles (permisos) necesita la aplicación en qué recursos y asigne esos roles al grupo de Microsoft Entra que ha creado. A los grupos se les puede asignar un rol 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.

  1. En Azure Portal, vaya a la página Información general del grupo de recursos que contiene la aplicación.

  2. Seleccione Control de acceso (IAM) en el panel de navegación izquierdo.

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

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

  5. 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 grupo Microsoft Entra 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 al grupo Microsoft Entra.

  6. En la pestaña Revisar y asignar , seleccione Revisar y asignar en la parte inferior de la página.

Inicio de sesión en Azure mediante herramientas para desarrolladores

A continuación, inicie sesión en Azure con una de varias herramientas de desarrollo que se pueden usar para realizar la autenticación en el entorno de desarrollo. La cuenta con la que se autentique también debe existir en el grupo de Microsoft Entra que creó y configuró anteriormente.

Los desarrolladores que usan Visual Studio 2017 o posterior pueden autenticarse mediante su cuenta de desarrollador a través del IDE. Las aplicaciones que usan DefaultAzureCredential o VisualStudioCredential pueden detectar y usar esta cuenta para autenticar las solicitudes de aplicación cuando se ejecutan localmente. Esta cuenta también se usa al publicar aplicaciones directamente desde Visual Studio en Azure.

Importante

Deberá instalar la carga de trabajo de desarrollo de Azure para habilitar las herramientas de Visual Studio para la autenticación, el desarrollo y la implementación de Azure.

  1. En Visual Studio, vaya a Opciones de herramientas>para abrir el cuadro de diálogo opciones.

  2. En el cuadro Opciones de búsqueda de la parte superior, escriba Azure para filtrar las opciones disponibles.

  3. En Autenticación de servicio de Azure, elija Selección de cuenta.

  4. Seleccione el menú desplegable en Elegir una cuenta y elija agregar una cuenta Microsoft.

  5. En la ventana que se abre, escriba las credenciales de la cuenta de Azure deseada y confirme las entradas.

    Captura de pantalla que muestra cómo iniciar sesión en Azure mediante Visual Studio.

  6. Seleccione Aceptar para cerrar el cuadro de diálogo de opciones.

Autenticación en servicios de Azure desde la aplicación

La biblioteca de identidades de Azure 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 DefaultAzureCredential al trabajar con cuentas de usuario localmente.

Implementación del código

DefaultAzureCredential es una secuencia ordenada de mecanismos para autenticarse en Microsoft Entra ID. Cada mecanismo de autenticación es una clase derivada de la clase TokenCredential y se denomina credencial. En tiempo de ejecución, DefaultAzureCredential intenta autenticarse con la primera credencial. Si esa credencial no puede adquirir un token de acceso, se intenta utilizar la siguiente credencial de la secuencia, y así sucesivamente hasta que se obtenga correctamente un token de acceso. De esta manera, la aplicación puede usar diferentes credenciales en distintos entornos sin implementar código específico del entorno.

Para usar DefaultAzureCredential, agregue los paquetes Azure.Identity y, opcionalmente, Microsoft.Extensions.Azure a su aplicación:

En un terminal de su elección, vaya al directorio del proyecto de la aplicación y ejecute los siguientes comandos:

dotnet add package Azure.Identity
dotnet add package Microsoft.Extensions.Azure

Se accede a los servicios de Azure mediante clases de cliente especializadas de las distintas bibliotecas cliente del SDK de Azure. Estas clases y sus propios servicios personalizados deben registrarse para que se pueda acceder a ellas a través de la inserción de dependencias en toda la aplicación. En Program.cs, complete los siguientes pasos para registrar una clase cliente y DefaultAzureCredential:

  1. Incluya los espacios de nombres Azure.Identity y Microsoft.Extensions.Azure a través de directivas using.
  2. Registre el cliente de servicio de Azure mediante el método de extensión con el prefijo Add correspondiente.
  3. Pase una instancia de DefaultAzureCredential al método UseCredential.
builder.Services.AddAzureClients(clientBuilder =>
{
    clientBuilder.AddBlobServiceClient(
        new Uri("https://<account-name>.blob.core.windows.net"));

    clientBuilder.UseCredential(new DefaultAzureCredential());
});

Una alternativa al UseCredential método es proporcionar la credencial al cliente de servicio directamente:

builder.Services.AddSingleton<BlobServiceClient>(_ =>
    new BlobServiceClient(
        new Uri("https://<account-name>.blob.core.windows.net"),
        new DefaultAzureCredential()));