Habilitar borrado y actualización de password en Azure AD Graph API

Cuando trabajamos con Azure B2C y necesitamos hacer operaciones como CRUD sobre este directorio, Azure nos provee un API llamado Azure AD Graph API pero no tenemos acceso para actualizar contraseñas ni para eliminar usuarios, así que en esta guía veremos como habilitar estos permisos.

Prerequisitos

  • Tener una cuenta en Azure Portal
  • Haber creado y configurado un Azure AD B2C
  • Contar con una aplicación en Azure con credenciales para el consumo de Azure AD Graph API

Azure Portal

Primero iniciaremos sesión en el portal de Azure https://portal.azure.com y buscaremos el Azure AD B2C que previamente tenemos creado.

Necesitaremos tener un usuario local con rol administrador dentro de nuestro Azure AD B2C, el cual usaremos mas adelante desde la consola de PowerShell y nos servirá para habilitar los permisos que necesitamos.

Una vez dentro de Azure AD B2C vamos a All Users -> New User, es importante que uses como dominio para el user name el tenant de tu B2C como por ejemplo [email protected]<your-b2c-tenant>.onmicrosoft.com.

En Directory Rol vamos a usar Global administrator, activa la casilla Show Password copialo y guárdalo en algún lugar porque lo usaremos mas adelante. Por ultimo guarda los cambios y presiona el botón Create.

create-user-admin-role

Por ultimo antes de irnos del Azure Portal, necesitamos ir a donde tenemos nuestra aplicación registrada. Así que en el buscador de la parte superior escribe App Registrations esto te listará las aplicaciones que tengas creadas, busca la que usas para consumir el Azure AD Graph API y copia el Application ID guárdalo en algún lugar porque luego lo vamos a necesitar.

app-registrations

Listo con esto ya podemos ir a una terminal de PowerShell.

PowerShell

Bueno lamentablemente en este punto requerimos de una maquina Windows, creanme intente de muchas formas instalar PowerShell en OSX / Linux pero sin éxito algo siempre fallo así que lo mejor y mas rápido es usar una maquina Windows en mi caso instale un Windows 10 en una maquina virtual usando VirtualBox.

Ya en Windows buscamos PowerShell y la ejecutamos en modo administrador.
Una vez allí vamos a instalar un modulo que nos permitirá iniciar sesión en Azure AD B2C, en la consola escribimos

Install-Module MSOnline  

Nos saldrá un masaje donde tenemos que confiar en la fuente de donde proviene este paquete, aceptamos y esperamos que termine la instalación.

Ahora debemos iniciar sesión usando la cuenta de administrador que creamos anteriormente. En la consola escribimos

Connect-MsolService  

esto nos lanzará un navegador donde ingresaremos el usuario y la contraseña que creamos.

Luego de que el login sea exitoso volveremos a la terminal, allí vamos a ejecutar el siguiente comando

C:\Windows\system32> $sp = Get-MsolServicePrincipal -AppPrincipalId <YOUR_APPLICATION_ID>  

donde YOUR_APPLICATION_ID corresponde al application Id que guardamos anteriormente, recuerda que este id corresponde a la aplicacion que usas para acceder al Azure Graph API.

C:\Windows\system32> Add-MsolRoleMember -RoleObjectId fe930be7-5e62-47db-91af-98c3a49a38b1 -RoleMemberObjectId $sp.ObjectId -RoleMemberType servicePrincipal  

Este ultimo comando se encargará de asignarle permisos de administrador a nuestra aplicación. Como veras el ID fe930be7-5e62-47db-91af-98c3a49a38b1 corresponde al rol de administrador de usuarios para Azure AD B2C.

Listo ahora si usamos uno de los endpoints para actualizar la contraseña o para eliminar usuarios desde Azure Graph API veras que funciona sin problema.

Jose Aponte

Desarrollador full-stack apasionado por las tecnologías de información y los lenguajes de programación. Me gustan divertirme con mi familia, mi lema es "Nunca paras de Aprender"

Bogota

Subscribe to Jappsku Engineering Blog

Get the latest posts delivered right to your inbox.

or subscribe via RSS with Feedly!