Implementación de soluciones de seguridad en Azure

Resumen de autenticación con MSAL, Managed Identity, SDK de Key Vault, App Configuration y Microsoft Graph.

La seguridad de Azure es uno de los dominios principales del examen AZ-204. Cubre un amplio rango: registro de aplicaciones a traves de Microsoft Identity Platform, adquisicion de tokens con MSAL, uso de Microsoft Graph API, acceso sin credenciales con Managed Identity, gestion de secretos con Key Vault y configuracion centralizada con App Configuration.

 

Microsoft Identity Platform y Registro de Aplicaciones

El registro de aplicaciones es el proceso de registrar una aplicacion con Azure AD (Entra ID). Piense en el check-in del hotel como ejemplo. Para hospedarse en el hotel (Azure AD), necesita registrarse en el sistema de reservas. Una vez registrado, recibe un ID de huesped (ID de cliente) que usa para acceder a los servicios.

Debe comprender los componentes clave del registro de aplicaciones.

| Componente | Descripcion | Ejemplo | |------------|-------------|---------| | ID de cliente (Application ID) | UUID unico que identifica la aplicacion | 550e8400-e29b-41d4-a716-... | | ID de inquilino (Directory ID) | UUID que identifica la organizacion Azure AD | UUID diferente por organizacion | | URI de redireccion | URL para redirigir a los usuarios despues de la autenticacion | https://myapp.com/auth/callback | | Secreto de cliente | Contrasena usada por la aplicacion (tiene vencimiento) | Generado directamente, debe almacenarse de forma segura | | Certificado | Alternativa mas segura al secreto de cliente | Subir archivo PEM/CER |

Distincion importante: Tanto los secretos de cliente como los certificados se usan para la autenticacion de aplicaciones, pero los certificados son mas seguros. En el examen, elija certificados como el "metodo mas seguro."

 

MSAL: Una Biblioteca que Facilita la Gestion de Tokens

MSAL (Microsoft Authentication Library) es una biblioteca de autenticacion proporcionada por Microsoft para que los desarrolladores no tengan que implementar los protocolos OAuth 2.0/OpenID Connect ellos mismos. Piense en una aplicacion de transporte como ejemplo. Podria encontrar su propia ruta, pero la aplicacion maneja todo el enrutamiento y calculo de tarifas por usted. MSAL maneja la adquisicion, renovacion y almacenamiento en cache de tokens.

Caracteristicas Principales

Adquisicion de tokens: Obtiene tokens de acceso a traves del inicio de sesion del usuario (permiso delegado) o la aplicacion misma (permiso de aplicacion) Cache de tokens: Almacena tokens ya emitidos y los reutiliza hasta su vencimiento (evita inicios de sesion innecesarios) Renovacion de tokens: Usa automaticamente tokens de actualizacion para emitir nuevos tokens de acceso cuando vencen Varios flujos de autenticacion: Proporciona flujos apropiados para aplicaciones web, de escritorio, moviles y servicios en segundo plano

Tipos de Permisos

| Tipo de Permiso | Descripcion | Cuando Usar | |-----------------|-------------|-------------| | Delegado | Actua en nombre de un usuario con sesion iniciada | Aplicaciones con usuarios (web, movil) | | Aplicacion | La aplicacion actua por si misma sin un usuario | Servicios en segundo plano, demonios |

En el examen, distinga: los "servicios que se ejecutan sin un usuario" usan permiso de aplicacion, las "acciones en nombre de usuarios" usan permiso delegado.

 

Microsoft Graph: API Unificada para Datos de Microsoft 365

Microsoft Graph es un unico punto de conexion de API que proporciona acceso a todos los datos de Microsoft 365: correo electronico, calendario, archivos, informacion de usuario y mas. Anteriormente, tenia que usar API separadas para Exchange, SharePoint y Teams. Ahora Microsoft Graph proporciona acceso a todos los datos en un solo lugar. Es como obtener toda la informacion de un unico mostrador de informacion en lugar de visitar varias tiendas en un centro comercial.

Punto de conexion: https://graph.microsoft.com Versiones: v1.0 (estable), beta (vista previa) Autenticacion: Llamadas a API usando tokens obtenidos a traves de MSAL Recursos clave: /users, /groups, /me, /messages, /calendar/events, /drive

Microsoft Graph admite permisos delegados y de aplicacion. Los permisos requeridos deben pre-registrarse en el registro de la aplicacion antes de realizar llamadas.

 

Managed Identity: Acceder a Servicios Azure Sin Credenciales

Codificar contrasenas de conexion (cadenas de conexion, tokens, etc.) directamente en el codigo puede provocar incidentes de seguridad. Managed Identity permite que los recursos de Azure (VMs, App Service, Azure Functions, etc.) accedan a otros servicios de Azure sin credenciales. Piense en un gafete de empleado como ejemplo. Un empleado entra al edificio de la oficina sin escribir una contrasena separada: un unico gafete pasa por todas las puertas. La empresa (Azure) avala la identidad del empleado.

Dos Tipos

| Tipo | Caracteristicas | Ciclo de Vida | |------|----------------|--------------| | Asignado al sistema | Creado automaticamente al crear el recurso, vinculado al recurso | Se elimina cuando se elimina el recurso | | Asignado al usuario | Creado por separado, puede asignarse a multiples recursos | Gestionado independientemente de los recursos |

El asignado al sistema esta dedicado a un unico recurso; el asignado al usuario es adecuado cuando multiples recursos comparten la misma identidad.

Con Managed Identity, puede eliminar completamente las credenciales del codigo. DefaultAzureCredential cambia automaticamente a cuentas de desarrollador en entornos de desarrollo y a Managed Identity en entornos de despliegue.

!Managed Identity asignada por el sistema vs por el usuario

Key Vault: Almacenar Secretos, Claves y Certificados de Forma Segura

Azure Key Vault es un servicio para gestionar de forma central y segura cadenas de conexion, claves de API, contrasenas, claves de cifrado y certificados. Piense en una boveda bancaria como ejemplo. En lugar de guardar objetos de valor en casa, los confia a una boveda bancaria donde solo las personas autorizadas pueden acceder y todo el acceso queda registrado.

Tres Tipos de Objetos que Gestiona Key Vault

Secrets (Secretos): Informacion sensible en formato de cadena (cadenas de conexion, claves de API, contrasenas) Keys (Claves): Claves utilizadas para cifrado/descifrado (claves RSA, EC) Certificates (Certificados): Certificados TLS/SSL (admite renovacion automatica)

Clientes del SDK

| Objeto | Cliente SDK | |--------|------------| | Secrets | SecretClient | | Keys | KeyClient | | Certificates | CertificateClient |

Las preguntas del examen frecuentemente preguntan sobre el uso de clases de cliente separadas para cada tipo de objeto.

Referencias de Key Vault (App Service/Azure Functions)

Puede referenciar secretos de Key Vault directamente desde la configuracion de la aplicacion (Application Settings) sin cambiar el codigo.

Formato: @Microsoft.KeyVault(SecretUri=https://myvault.vault.azure.net/secrets/mySecret/) Requiere otorgar permiso de acceso a Key Vault a traves de Managed Identity para funcionar Cuando los valores de los secretos cambian, la aplicacion recoge automaticamente los nuevos valores

 

App Configuration: Gestion Centralizada de Configuracion

Azure App Configuration es un servicio que gestiona los valores de configuracion de multiples aplicaciones desde un unico lugar. Piense en una franquicia con multiples sucursales. Cuando la sede central cambia los precios del menu, todas las sucursales reflejan el cambio automaticamente. Cada sucursal (aplicacion) no necesita llevar su propia lista de precios (configuracion).

Caracteristicas Principales

Centralizacion: Gestionar configuraciones para multiples aplicaciones y multiples entornos (desarrollo/preparacion/produccion) desde un lugar Configuracion dinamica: Cambiar configuraciones en tiempo real sin reiniciar aplicaciones Indicadores de caracteristicas (Feature Flags): Activar y desactivar caracteristicas especificas sin despliegue de codigo

Indicadores de Caracteristicas (Feature Flags)

Los indicadores de caracteristicas son una tecnica donde implementa caracteristicas en el codigo y controla su activacion/desactivacion mediante configuracion. En lugar de lanzar una nueva caracteristica a todos los usuarios a la vez, puede probarla primero con el 10% de los usuarios, o aplicarla solo a usuarios en regiones especificas, lo que permite pruebas A/B.

Activar/desactivar caracteristicas sin redesplegar la aplicacion Admite lanzamiento gradual por grupo de usuarios Puede integrarse con Key Vault para gestionar valores de configuracion sensibles

 

Puntos clave del examen

"Emitido cuando registra una aplicacion con Azure AD" -- ID de cliente (Application ID)

"Mas seguro que el secreto de cliente para autenticacion de aplicaciones" -- Certificado

"Biblioteca para adquisicion/renovacion/almacenamiento en cache de tokens OAuth" -- MSAL

"Servicio en segundo plano que se ejecuta sin un usuario" -- Permiso de aplicacion

"Actuar en nombre de un usuario" -- Permiso delegado

"Punto de conexion unificado para datos de Microsoft 365" -- Microsoft Graph (https://graph.microsoft.com)

"Acceder a servicios Azure desde codigo sin credenciales" -- Managed Identity

"Multiples recursos compartiendo la misma identidad" -- Managed Identity asignado al usuario

"Almacen de secretos/claves/certificados, usa SecretClient" -- Azure Key Vault

"Activar/desactivar caracteristicas sin redesplegar la aplicacion" -- Indicadores de caracteristicas (App Configuration)

Volver a la lista del blog