Adición de Key Vault a una aplicación web mediante los servicios conectados de Visual Studio

En este tutorial, aprenderá cómo agregar con facilidad todo lo que necesita para empezar a usar Azure Key Vault para administrar sus secretos para proyectos web en Visual Studio, independientemente de que use ASP.NET Core o cualquier tipo de proyecto de ASP.NET. Mediante la característica de servicios conectados de Visual Studio, Visual Studio puede agregar automáticamente todas las opciones de configuración y los paquetes de NuGet que necesita para conectarse a Key Vault en Azure.

Para obtener información sobre los cambios que los servicios conectados realizan en el proyecto para habilitar Key Vault, consulte Servicio conectado de Key Vault : ¿Qué ha sucedido con mi proyecto de ASP.NET? o Servicio conectado de Key Vault: ¿Qué ha sucedido con mi proyecto de ASP.NET Core?

Requisitos previos

Adición de la compatibilidad con Key Vault a un proyecto

Antes de empezar, asegúrese de que ha iniciado sesión en Visual Studio. Inicie sesión con la misma cuenta que usa para su suscripción de Azure. A continuación, abra un proyecto web de ASP.NET 4.7.1, o una versión posterior, y siga estos pasos: Los pasos que se muestran son para Visual Studio 2022, versión 17.4. El flujo puede ser ligeramente diferente para otras versiones de Visual Studio.

  1. En Explorador de soluciones, haga clic con el botón derecho en el proyecto al que quiere agregar la compatibilidad con Key Vault y elija Agregar>Servicio conectado. En Dependencias de servicio, elija el icono +. Aparece la página del servicio conectado con los servicios que puede agregar al proyecto.

  2. En el menú de servicios disponibles, elija Azure Key Vault y haga clic en Siguiente.

    Elección de

  3. Seleccione la suscripción que desea usar y si ya tiene una instancia de Key Vault que desea usar, selecciónela y haga clic en Siguiente.

    Captura de pantalla para la selección de la suscripción

  4. Si no tiene una instancia de Key Vault existente, haga clic en Crear nuevo Key Vault. Se le pedirá que proporcione el grupo de recursos, la ubicación y la SKU.

    Captura de pantalla de

  5. En la pantalla Configurar Key Vault, puede cambiar el nombre de la variable de entorno que hace referencia al identificador URI del almacén de claves. La cadena de conexión no se almacena aquí; se almacena en el almacén de claves.

    Captura de pantalla de la pantalla de

  6. Haga clic en Siguiente para revisar un resumen de los cambios y, a continuación, en Finalizar.

Ahora la conexión a Key Vault está establecida, y puede acceder a los secretos en el código. Si acaba de crear un nuevo almacén de claves, pruébelo mediante la creación de un secreto al que puede hacer referencia en el código. Puede crear un secreto mediante Azure Portal, PowerShell o la CLI de Azure.

Consulte los ejemplos de código para trabajar con secretos en Biblioteca cliente secretos de Azure Key Vault para .NET: ejemplos de código.

Configuración del acceso al almacén de claves

Si la instancia de Key Vault se está ejecutando en una cuenta Microsoft diferente de aquella con la cual ha iniciado sesión en Visual Studio (por ejemplo, si se está ejecutando en su cuenta profesional, pero Visual Studio usa su cuenta privada), recibirá un error en el archivo Program.cs que le indica que Visual Studio no puede acceder a la instancia de Key Vault. Para solucionar este problema, vaya a Azure Portal, abra el almacén de claves y seleccione Control de acceso (IAM) para establecer permisos. Consulte Acceso a las claves, los certificados y los secretos de Key Vault con un control de acceso basado en rol de Azure.

Nota:

Los almacenes de claves más antiguos pueden usar un modelo de directiva de acceso heredado. Se recomienda migrar almacenes de claves más antiguos para usar RBAC de Azure. Consulte Control de acceso basado en roles de Azure (RBAC) frente a las directivas de acceso.

Cómo se modifica el proyecto de ASP.NET Core

En esta sección se identifican los cambios exactos realizados en el proyecto de ASP.NET cuando se agrega el servicio conectado de Key Vault mediante Visual Studio.

Se agregan referencias para ASP.NET Core

Afecta a las referencias de paquetes de NuGet y a las referencias de .NET del archivo de proyecto.

Tipo Referencia
NuGet Microsoft.AspNetCore.AzureKeyVault.HostingStartup

Se agregan archivos para ASP.NET Core

  • Se agrega ConnectedService.json, que registra información sobre el proveedor de Servicios conectados, la versión y un vínculo a la documentación.

Cambios en el archivo de proyecto para ASP.NET Core

  • Se agrega el archivo ConnectedServices.json e ItemGroup de Servicios conectados.

Cambios en launchsettings.json para ASP.NET Core

  • Agrega las siguientes entradas de la variable de entorno al perfil de IIS Express y perfil que coincide con el nombre del proyecto web:

      "environmentVariables": {
        "ASPNETCORE_HOSTINGSTARTUP__KEYVAULT__CONFIGURATIONENABLED": "true",
        "ASPNETCORE_HOSTINGSTARTUP__KEYVAULT__CONFIGURATIONVAULT": "<your keyvault URL>"
      }
    

Cambios en Azure para ASP.NET Core

  • Se crea un grupo de recursos o se usa uno existente.
  • Se crea una instancia de Key Vault en el grupo de recursos especificado.

Cómo se modifica el proyecto de ASP.NET Framework

En esta sección se identifican los cambios exactos realizados en el proyecto de ASP.NET cuando se agrega el servicio conectado de Key Vault mediante Visual Studio.

Se agregan referencias para ASP.NET Framework

Afecta a las referencias .NET y a packages.config (referencias de NuGet) del archivo del proyecto.

Tipo Referencia
.NET; NuGet Azure.Identity
.NET; NuGet Azure.Security.KeyVault.Keys
.NET; NuGet Azure.Security.key vault.Secrets

Importante

Azure.Identity 1.1.1 no es compatible con las credenciales de Visual Studio y está instalado de manera predeterminada. Puede actualizar manualmente la referencia del paquete a 1.2+ y usar credenciales de Visual Studio.

Se agregan archivos para ASP.NET Framework

  • Se agrega ConnectedService.json, que registra información sobre el proveedor de Servicios conectados, la versión y un vínculo a la documentación.

Cambios en el archivo de proyecto para ASP.NET Framework

  • Agrega el archivo ConnectedServices.json y ItemGroup de los servicios conectados.
  • Las referencias a los ensamblados de .NET se describen en la sección de referencias agregadas.

Pasos siguientes

Si ha seguido este tutorial, los permisos de Key Vault estarán configurados para que se ejecuten con su propia suscripción de Azure, pero esto podría no ser deseable para un escenario de producción. Puede crear una identidad administrada para administrar el acceso a Key Vault de la aplicación. Consulte Autenticación en Key Vault y Asignación de una directiva de acceso de Key Vault.

Puede obtener más información sobre el desarrollo con Key Vault en la Guía del desarrollador de Key Vault.

Si el objetivo es almacenar la configuración de una aplicación de ASP.NET Core en Azure Key Vault, consulte Proveedor de configuración de Azure Key Vault en ASP.NET Core.