Cómo Crear un Usuario en Azure con PowerShell desde VS Code

Introducción

¡Bienvenido nuevamente a Cloud Journey! En el día a día de un Cloud Engineer, la gestión de identidades y accesos es uno de los pilares fundamentales para mantener la seguridad y el orden dentro de nuestra infraestructura en la nube. Aunque la interfaz gráfica es útil para tareas aisladas, aprender a crear un usuario en Azure con PowerShell es una habilidad esencial para automatizar procesos, gestionar grandes volúmenes de cuentas y optimizar tu tiempo.

En este artículo, abordaremos el problema común de la creación manual y repetitiva de cuentas de usuario en Microsoft Entra ID (anteriormente conocido como Azure Active Directory). Al llevar esta tarea a un entorno de scripting, no solo reducimos el margen de error humano, sino que también sentamos las bases para integraciones mucho más complejas en nuestros pipelines de aprovisionamiento.

Para lograr esto, utilizaremos las herramientas más modernas recomendadas por Microsoft. Dejaremos de lado los módulos antiguos y nos enfocaremos en utilizar el SDK de Microsoft Graph a través de Visual Studio Code, permitiéndote interactuar con los servicios de Azure de manera ágil, segura y programable.


Requisitos Previos

Antes de escribir nuestra primera línea de código, asegúrate de tener tu entorno de trabajo correctamente configurado. Necesitarás lo siguiente:

  • Cuenta de Azure activa: Debes tener permisos de Administrador Global o Administrador de Usuarios dentro de tu tenant de Microsoft Entra ID.
  • Visual Studio Code (VS Code): Nuestro editor de código por excelencia.
  • PowerShell 7+: Asegúrate de tener instalada la versión más reciente de PowerShell en tu sistema operativo (compatible con Ubuntu, Windows o MacOS).
  • Extensión de PowerShell para VS Code: Búscala e instálala desde el marketplace de extensiones de VS Code para habilitar el autocompletado y la depuración.
  • Módulo de Microsoft Graph: Es la API moderna de Microsoft para interactuar con Entra ID.

Paso a Paso del Ejercicio

Preparando el Entorno para Crear un Usuario en Azure con PowerShell

El primer paso lógico es preparar nuestro entorno local en VS Code, asegurándonos de tener las dependencias necesarias y estableciendo una conexión segura con nuestro tenant de Azure.

Paso 1: Instalar e importar el módulo de Microsoft Graph

Abre tu terminal integrada en VS Code y asegúrate de estar ejecutando PowerShell. Ejecuta el siguiente comando para instalar el módulo específico que maneja usuarios. Es fundamental usar Microsoft Graph en lugar del antiguo módulo AzureAD, ya que este último ha sido deprecado por Microsoft.

PowerShell
# Instalar el módulo si no lo tienes (requiere permisos de administrador en tu máquina local)
Install-Module Microsoft.Graph.Users -Scope CurrentUser -Force

# Importar el módulo a la sesión actual
Import-Module Microsoft.Graph.Users
PowerShell

Paso 2: Autenticación en Microsoft Entra ID

Para que nuestro script tenga los permisos necesarios para crear el usuario, debemos autenticarnos indicando los “Scopes” (alcances o permisos) requeridos. En este caso, necesitamos el permiso de lectura y escritura para el directorio de usuarios.

PowerShell
# Conectar a Azure especificando los permisos necesarios
Connect-MgGraph -Scopes "User.ReadWrite.All"
PowerShell

Al ejecutar este comando, se abrirá una ventana en tu navegador web pidiéndote que inicies sesión con tus credenciales de Azure y que consientas los permisos para la aplicación de Microsoft Graph.

Escribiendo el Script de Creación

Ahora que estamos conectados, vamos a redactar nuestro script. Crear un usuario requiere definir ciertos atributos obligatorios, como el nombre principal de usuario (UPN), el nombre a mostrar, un alias de correo y, por supuesto, un perfil de contraseña.

Paso 3: Definir las variables y crear el usuario

Crea un nuevo archivo en VS Code. Vamos a estructurar el código de manera limpia utilizando un Hash Table (tabla hash) para pasar los parámetros de forma ordenada.

PowerShell
# Nombre del archivo: crear-usuario-azure.ps1

# 1. Definir el dominio de tu tenant (Cámbialo por tu dominio real)
$Dominio = "tutenant.onmicrosoft.com"

# 2. Configurar el perfil de contraseña
$PasswordProfile = @{
    Password = "PasswordSeguro123!"
    ForceChangePasswordNextSignIn = $true
}

# 3. Definir los parámetros del nuevo usuario
$ParametrosUsuario = @{
    AccountEnabled = $true
    DisplayName = "Carlos Ingeniero"
    MailNickname = "carlos.ingeniero"
    UserPrincipalName = "carlos.ingeniero@$Dominio"
    PasswordProfile = $PasswordProfile
    UsageLocation = "ES" # Código de país ISO de 2 letras (Ej: ES para España, US para Estados Unidos)
}

# 4. Ejecutar el comando de creación
Write-Host "Creando el usuario en Microsoft Entra ID..." -ForegroundColor Cyan
$NuevoUsuario = New-MgUser @ParametrosUsuario

# 5. Confirmación
Write-Host "Usuario creado exitosamente con el ID: $($NuevoUsuario.Id)" -ForegroundColor Green
PowerShell

¿Por qué lo hacemos así? * ForceChangePasswordNextSignIn: Por seguridad, obligamos al usuario a cambiar esa contraseña genérica (PasswordSeguro123!) en su primer inicio de sesión.

  • UsageLocation: Es una buena práctica (y a menudo un requisito) definir la ubicación de uso antes de poder asignar licencias de Microsoft 365 o Azure al usuario en el futuro.
  • Splatting (@ParametrosUsuario): Usar el símbolo @ en lugar de $, nos permite pasar un bloque de parámetros (Hash Table) de forma mucho más legible que escribir una línea de comando interminable.

Paso 4: Verificación

Para asegurarnos de que el usuario se creó correctamente, puedes ir al Portal de Azure y buscarlo en Microsoft Entra ID, o simplemente ejecutar este comando rápido en tu terminal de VS Code:

PowerShell
Get-MgUser -UserId "carlos.ingeniero@tutenant.onmicrosoft.com"
PowerShell

Conclusión

¡Misión cumplida! Has logrado crear un usuario en Azure utilizando PowerShell desde Visual Studio Code mediante el SDK moderno de Microsoft Graph. Al dominar esta técnica, das un gran paso hacia la automatización de la administración de identidades en la nube, algo vital para cualquier entorno empresarial a gran escala. Te animo a que modifiques el script e intentes usar un archivo CSV para importar múltiples usuarios a la vez en tu próximo experimento.

¿Tuviste algún problema con los permisos de Microsoft Graph o te gustaría ver cómo asignar licencias y roles a este usuario en nuestro próximo tutorial? ¡Déjame tus dudas o sugerencias en la sección de comentarios abajo y seguiré creando contenido a tu medida!

Comentarios

Aún no hay comentarios. ¿Por qué no comienzas el debate?

    Deja un comentario

    Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *