No puedo eliminar un tenant de Azure Active Directory

El otro día estuve eliminando directorios de Azure Active Directory que tenía sin ningún uso. Sin embargo, uno de ellos se me resistió. En este artículo te cuento cómo conseguí solucionarlo, por si te pasa a ti también.

El problema

Cuando quieres eliminar un directorio, puedes hacerlo desde Azure Active Directory > Delete directory:

Al pulsar este botón, siempre se hace un chequeo, para comprobar si tienes algo enlazado a dicho directorio y es necesario eliminarlo antes.

En mi caso, el problema venía de las aplicaciones empresariales. Si haces clic en el enlace Delete all Enterprise applications verás todas las que necesitas eliminar antes de proceder (o eso parece). En mi caso tenía asociada una de mis cuentas de Azure DevOps.

Sin embargo, si intentaba eliminarla veía que la misma tenía el botón Delete deshabilitado 🙁

¿Y ahora?

Solución nº 1

La forma de solucionarlo es a través de PowerShell. Si estás en la misma situación que estaba yo, utiliza el siguiente script:

#Install AzureAD module
Install-Module -Name AzureAD

#Connect to Azure AD as Global Administrator
Connect-AzureAD

#Delete all your apps
Get-AzureADServicePrincipal | ForEach-Object {Remove-AzureADServicePrincipal -ObjectId $_.ObjectId }

Es muy sencillo: instalo el módulo de AzureAD si todavía no lo tengo, me conecto con una cuenta del tenant que quiero eliminar (esta cuenta debe tener el rol de Global Administrator) y elimino todas las apps. El comando dará algunos errores porque intentará también eliminar algunas aplicaciones que son internas, pero también borrará todas las tuyas.

Si vuelves de nuevo al portal, la aplicación debería de haber desaparecido y si intentas eliminar el directorio de nuevo ya tendrás todo Ok.

Solución nº 2

Si después de lanzar los comandos anteriores sigues sin poder eliminarlo por el mismo motivo, prueba a lanzar también el siguiente script, donde se utiliza el módulo MSOnline, el cual es la versión 1 del módulo de PowerShell de Azure AD:

#Install MSOnline module
Install-Module MSOnline

#Import MSOnline module
Import-Module MSOnline

#Connect to your Azure Active Directory
Connect-MsolService

#You can verify that you're in the right tenant
Get-MsolDomain

#Get all and remove them
Get-MsolServicePrincipal | Remove-MsolServicePrincipal

Esto puede ocurrir si en tu tenant tienes aplicaciones más antiguas, las cuales solo puedes eliminar con la versión 1. Al igual que en el script anterior, en algunos momentos el comando dará errores al intentar eliminar también aplicaciones internas, pero borrará las tuyas durante el proceso.

Espero que tu resultado final sea este:

¡Saludos!