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.
Requisitos previos
- Una cuenta de Azure. Si no tiene una cuenta de Azure, active las ventajas de Azure para suscriptores de Visual Studio o regístrese para obtener una evaluación gratuita.
- Visual Studio 2019, versión 16.3 o posterior, descargarlo ahora.
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.
En el Explorador de soluciones, haga clic con el botón secundario en el proyecto al que desea agregar la compatibilidad con Key Vault y elija Agregar>Servicio conectado, o haga clic con el botón secundario en el nodo Servicios conectados y seleccione Agregar.
Si no ve el nodo Servicios conectados, elija Proyecto>Servicios conectados>Agregar.
En Dependencias de servicio, elija el icono +. Aparece la página del servicio conectado con los servicios que puede agregar al proyecto.
En el menú de servicios disponibles, elija Azure Key Vault y haga clic en Siguiente.
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.
Si no tiene un almacén de claves existente o si necesita un almacén de claves que pueda establecer con permisos diferentes a los existentes, haga clic en Crear nuevo almacén de claves. Se le pedirá que proporcione el grupo de recursos, la ubicación y la SKU.
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.
Nota:
Para mejorar la seguridad, en Visual Studio 17.12 y versiones posteriores, este paso crea un nombre de configuración de conexión; las versiones anteriores crean un cadena de conexión. Las cadenas de conexión almacenadas localmente pueden provocar un riesgo de seguridad, si se exponen accidentalmente.
Haga clic en Siguiente hasta que vea un resumen de los cambios y, a continuación, en Finalizar.
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:
En el Explorador de soluciones, haga clic con el botón secundario en el proyecto al que desea agregar la compatibilidad con Key Vault y elija Agregar>Servicio conectado, o haga clic con el botón secundario en el nodo Servicios conectados y seleccione Agregar.
Si no ve el nodo Servicios conectados, elija Proyecto>Servicios conectados>Agregar.
En Dependencias de servicio, elija el icono +. Aparece la página del servicio conectado con los servicios que puede agregar al proyecto.
En el menú de servicios disponibles, elija Azure Key Vault y haga clic en Siguiente.
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.
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.
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.
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 ha seguido este tutorial con Visual Studio 2022 versión 17.11 o anterior, los permisos de Key Vault se configuran para ejecutarse con su propia suscripción de Azure, pero es posible que no sea 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.
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 (RBAC).
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.
Pasos siguientes
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.