Autenticación de aplicaciones .NET en servicios de Azure durante el desarrollo local mediante cuentas de desarrollador
Al crear aplicaciones en la nube, los desarrolladores necesitan depurar y probar aplicaciones en su estación de trabajo local. Cuando se ejecuta una aplicación en la estación de trabajo de un desarrollador durante el desarrollo local, esta debe autenticarse en los servicios de Azure que usa. En este artículo se explica cómo usar las credenciales de Azure de un desarrollador para autenticar la aplicación en Azure durante el desarrollo local.
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 la extensión VS Code Azure Tools, la CLI de Azure o Azure PowerShell. El SDK de Azure para .NET puede detectar que el desarrollador inició sesión desde una de estas herramientas y, a continuación, obtener las credenciales necesarias de la memoria caché de credenciales para autenticar la aplicación en Azure como usuario que inició sesión.
Este enfoque es más fácil de configurar para un equipo de desarrollo, ya que aprovecha las cuentas de Azure existentes de los desarrolladores. 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.
1: Creación de un grupo de Azure AD para el desarrollo local
Puesto que casi siempre hay varios desarrolladores que trabajan en una aplicación, se recomienda crear primero un grupo de Azure AD para encapsular los roles (permisos) que la aplicación necesita en el desarrollo local. Esto ofrece las ventajas que se indican a continuación.
- Todos los desarrolladores están seguros de tener asignados los mismos roles, ya que los roles se asignan en el nivel de grupo.
- Si se necesita un nuevo rol para la aplicación, solo debe agregarse al grupo de Azure AD para la aplicación.
- Si un nuevo desarrollador se une al equipo, simplemente debe agregarse al grupo correcto de Azure AD para obtener los permisos correctos para poder trabajar en la aplicación.
Si tiene un grupo de Azure AD existente para el equipo de desarrollo, puede usar ese grupo. De lo contrario, complete los pasos que se describen a continuación para crear un grupo de Azure AD.
2: Asignación de roles al grupo de Azure AD
A continuación, debe determinar qué roles (permisos) necesita la aplicación y en qué recursos para, a continuación, asignar dichos roles a la aplicación. En este ejemplo, los roles se asignarán al grupo de Azure Active Directory que se creó en el paso 1. Los roles se pueden asignar a 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.
3: Inicio de sesión en Azure mediante herramientas de .NET
A continuación, debe iniciar sesión en Azure mediante una de varias opciones de herramientas de .NET. La cuenta en la que inicie sesión también debe existir en el grupo de Azure Active Directory que creó y configuró anteriormente.
En el menú superior de Visual Studio, vaya a Herramientas>Opciones para abrir el cuadro de diálogo de opciones. En la barra de búsqueda de la parte superior izquierda, escriba Azure para filtrar las opciones. En Autenticación de servicio de Azure, elija Selección de cuenta.
Seleccione el menú desplegable en Elegir una cuenta y elija agregar una cuenta Microsoft. Se abrirá una ventana que le pedirá que elija una cuenta. Escriba las credenciales de la cuenta de Azure deseada y, a continuación, seleccione la confirmación.
4: Implementación de DefaultAzureCredential en la aplicación
DefaultAzureCredential
admite varios métodos de autenticación y determina el método de autenticación que se usa en tiempo de ejecución. De esta manera, la aplicación puede usar diferentes métodos de autenticación en distintos entornos sin implementar código específico del entorno.
El orden y las ubicaciones en las que DefaultAzureCredential
busca las credenciales se encuentran en DefaultAzureCredential.
Para implementar DefaultAzureCredential
, agrega primero Azure.Identity
y, opcionalmente, los paquetes Microsoft.Extensions.Azure
a la aplicación. Puedes realizar esta acción mediante la línea de comandos o el Administrador de paquetes de NuGet.
Abre el entorno de terminal que prefieras en el directorio del proyecto de aplicación y escribe el comando siguiente.
dotnet add package Azure.Identity
dotnet add package Microsoft.Extensions.Azure
Por lo general, se accede a los servicios de Azure mediante las clases de cliente correspondientes desde el SDK. Estas clases y sus propios servicios personalizados deben registrarse en el archivo Program.cs
para que se pueda acceder a ellas a través de la inserción de dependencias en toda la aplicación. Dentro de Program.cs
, sigue los pasos que se indican a continuación para configurar correctamente el servicio y DefaultAzureCredential
.
- Incluye los espacio de nombres
Azure.Identity
yMicrosoft.Extensions.Azure
con una instrucción using. - Registra el servicio de Azure mediante los métodos auxiliares pertinentes.
- Pasa una instancia del objeto
DefaultAzureCredential
al métodoUseCredential
.
En el segmento de código siguiente se muestra un ejemplo de esto.
using Microsoft.Extensions.Azure;
using Azure.Identity;
// Inside of Program.cs
builder.Services.AddAzureClients(x =>
{
x.AddBlobServiceClient(new Uri("https://<account-name>.blob.core.windows.net"));
x.UseCredential(new DefaultAzureCredential());
});
Como alternativa, también puede usar DefaultAzureCredential
en los servicios de manera más directa sin la ayuda de los métodos de registro de Azure adicionales, tal como se muestra a continuación.
using Azure.Identity;
// Inside of Program.cs
builder.Services.AddSingleton<BlobServiceClient>(x =>
new BlobServiceClient(
new Uri("https://<account-name>.blob.core.windows.net"),
new DefaultAzureCredential()));
Cuando el código anterior se ejecuta en tu estación de trabajo local durante el desarrollo local, buscará una entidad de servicio de aplicación en las variables de entorno o en Visual Studio, VS Code, la CLI de Azure o Azure PowerShell para un conjunto de credenciales de desarrollador. Cualquiera de estas pueden usarse para autenticar la aplicación en los recursos de Azure durante el desarrollo local.
Cuando se implementa en Azure, este mismo código también puede autenticar tu aplicación en otros recursos de Azure. DefaultAzureCredential
puede recuperar la configuración del entorno y las configuraciones de identidad administrada para autenticarse en otros servicios automáticamente.
Comentarios
https://aka.ms/ContentUserFeedback.
Próximamente: A lo largo de 2024 iremos eliminando gradualmente GitHub Issues como mecanismo de comentarios sobre el contenido y lo sustituiremos por un nuevo sistema de comentarios. Para más información, vea:Enviar y ver comentarios de