Azure Key Vault


Que es Azure Key Vault

Es un servicio de Azure donde podemos almacenar información sensible como claves, passwords, cadenas de conexión, certificados…

Existen dos tipos de claves:

  • Keys: Claves criptográficas con la clave publica y privada (JSON Web Key). Este tipo de claves nos permiten firmar, verificar, cifrar o descifrar datos.
  • Secrets: Datos sensibles como contraseñas o certificados.

Pasos para Usar en una Web App

Azure Key Vault nos permite almacenar la información sensible que normalmente existe en nuestros web.config de un modo más seguro.

  • 1.- Crear una aplicación.
  • 2.- Dar derechos a la aplicación creada para acceder al servicio de Azure.
  • 3.- Instalar el paquete de NuGet Microsoft.Azure.KeyVault en nuestra aplicación.
  • 4.- Añadir la siguiente clase en la aplicación.
        public class SecretService
        {
            public static async Task<string> GetToken(string authority, string resource, string scope)
            {
                var authContext = new AuthenticationContext(authority);
                ClientCredential clientCred = new ClientCredential(WebConfigurationManager.AppSettings["ApplicationId"],
                            WebConfigurationManager.AppSettings["ApplicationSecret"]);
                AuthenticationResult result = await authContext.AcquireTokenAsync(resource, clientCred);
    
                if (result == null)
                    throw new InvalidOperationException("Failed to obtain the JWT token");
    
                return result.AccessToken;
            }
            public string GetSecret(String secretName)
            {
                var kv = new KeyVaultClient(new KeyVaultClient.AuthenticationCallback(GetToken));
                var secretUri = WebConfigurationManager.AppSettings["SecretUri"] + secretName;
                var sec = kv.GetSecretAsync(secretUri).Result;
                return sec.Value;
            }
        }
    
  • 5.- Configurar en el Application Settings del Web App, las siguientes variables

    También se podrían añadir en web.config aunque es menos recomendable, ya que ofrece menor seguridad 😉

    Anuncios
Esta entrada fue publicada en Azure, Seguridad, web. Guarda el enlace permanente.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s