es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Cómo utilizar DefaultAzureCredential en entornos locales y hospedados (Azure y On-Premise) para acceder a Azure Key Vault: La clase DefaultAzureCredential proporciona una forma sencilla de autenticar e interactuar con Azure Key Vault tanto en entornos locales como hospedados. El uso de DefaultAzureCredential permite la autenticación mediante diferentes métodos, como Azure CLI, Visual Studio, Azure Managed Identity y archivos de configuración. A continuación se muestra cómo utilizar DefaultAzureCredential en ambos entornos: 1. Configuración local: – Asegúrese de tener instalado el Azure CLI y haber iniciado sesión en su cuenta de Azure. – Abra una terminal y autentíquese ejecutando el comando “az login”. – Utilice el siguiente código para crear una instancia de DefaultAzureCredential y acceder a Azure Key Vault: “`python from azure.identity import DefaultAzureCredential from azure.keyvault.secrets import SecretClient credential = DefaultAzureCredential() key_vault_url = “https://nombredekeyvault.vault.azure.net/” secret_client = SecretClient(vault_url=key_vault_url, credential=credential) # Realice acciones en Azure Key Vault utilizando secret_client “` 2. Configuración en un entorno hospedado (Azure o On-Premise): – Asegúrese de tener configuradas las credenciales adecuadas para acceder a Azure desde su entorno hospedado. Esto puede incluir el uso de Azure Managed Identity o archivos de configuración. – Utilice el siguiente código para crear una instancia de DefaultAzureCredential y acceder a Azure Key Vault: “`python from azure.identity import DefaultAzureCredential from azure.keyvault.secrets import SecretClient credential = DefaultAzureCredential() key_vault_url = “https://nombredekeyvault.vault.azure.net/” secret_client = SecretClient(vault_url=key_vault_url, credential=credential) # Realice acciones en Azure Key Vault utilizando secret_client “` Recuerde reemplazar “nombredekeyvault” en key_vault_url con el nombre real de su Azure Key Vault. Con estas configuraciones, podrá utilizar DefaultAzureCredential para acceder a Azure Key Vault tanto en entornos locales como hospedados.

Tenemos una API web (.NET 5) que accede a algunos secretos del Azure KeyVault.

En la máquina local para desarrollo, como soy el propietario del nuevo almacén creado, mi correo electrónico tiene privilegios de acceso al KeyVault.

Por lo tanto, seleccioné mi cuenta a través de VS -> Herramientas -> Opciones -> Autenticación de servicios de Azure -> Selección de cuenta -> “miemail@<nombreorganización>.com”

Tengo el siguiente código para obtener secretos del KeyVault y acceder a ellos a través de la configuración, como accedemos al valor de appsettings.

public static IHostBuilder CreateHostBuilder(string[] args) =>
    Host.CreateDefaultBuilder(args)
    .ConfigureAppConfiguration((context, config) =>
    {
        var appSettings = config.Build();
        var credentialOptions = new DefaultAzureCredentialOptions();
        var credential = new DefaultAzureCredential(credentialOptions);
        config.AddAzureKeyVault(new Uri(appSettings["Url:KeyVault"]), credential);
    })
    .ConfigureWebHostDefaults(webBuilder =>
    {
        webBuilder.UseStartup<startup>();
    });

Accedemos al valor del secreto como _configuration[“secret”] en la capa de servicio y controlador.

Mis consultas son:

  1. Si traslado este código a un servidor local, ¿cómo funcionará (el entorno de desarrollo está en un servidor local)?

  2. Si implemento esta API web en Azure, ¿cómo se utiliza la identidad de la aplicación de AD para acceder al KeyVault sin ningún cambio en el código? Tenemos una aplicación de AD registrada que tiene acceso de lectura a este KeyVault en particular.

Quiero que el código funcione sin problemas tanto en local como en Azure.</nombreorganización>

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Si mueve implemente este código en un servidor local, deberá proporcionar una forma para que la aplicación se autentique y autorice con Azure Key Vault. Una forma de hacer esto es usar un principal de servicio o una identidad administrada que tenga acceso al almacén de claves en lugar de usar su cuenta personal. Puede configurar las credenciales para el principal de servicio o la identidad administrada en las variables de entorno o archivos de configuración del servidor local.

    Si implementa esta API web en Azure, puede habilitar una identidad administrada para su servicio de aplicaciones y otorgar acceso al almacén de claves para esa identidad. Esto permitirá que su aplicación acceda al almacén de claves sin tener que realizar cambios en el código. Puede hacer esto siguiendo estos pasos:

    • Habilitar la identidad administrada para su servicio de aplicaciones en el Portal de Azure.
    • Otorgar acceso al almacén de claves para la identidad administrada agregando la identidad a las políticas de acceso del almacén de claves.
    • Actualice su código para usar DefaultAzureCredential sin opciones de credenciales. Esto permitirá que el código use automáticamente la identidad administrada cuando se ejecute en Azure.

    Después de realizar estos cambios, su código debería funcionar sin problemas en entornos locales y de Azure sin necesidad de configuración adicional.

Comments are closed.