Cómo identificar el nombre de una aplicación a partir de su App ID (Azure AD)

Identificar con rapidez y precisión qué aplicación se esconde detrás de un App ID (GUID) de Azure Active Directory resulta clave para auditar permisos, resolver incidencias de inicio de sesión y mantener un inventario de software conforme a las políticas de seguridad.

Índice

Por qué cada App ID cuenta

Azure AD emite un identificador único y global (appId) para cada service principal o registro de aplicación. Ese GUID aparece en logs, tokens JWT, registros de Activity y, sobre todo, en alertas de seguridad. Conocer el nombre real permite:

  • Investigar intentos de acceso sospechosos.
  • Conceder o revocar permisos de API de forma informada.
  • Cumplir normativas que exigen inventarios precisos de software SaaS.
  • Facilitar soporte cuando un usuario reporta un fallo de autenticación.

Conceptos que debes tener claros antes de empezar

App registration (registro de aplicación) y Enterprise application (aplicación corporativa) no son lo mismo: la primera define la plantilla global, la segunda representa la instancia en tu inquilino. Una misma app puede ser:

  • Nativa de tu inquilino (single‑tenant).
  • Multicliente (multi‑tenant) publicada por un ISV.
  • Privada y distribuida a través de archivos de manifiesto.

El método óptimo para identificar el nombre dependerá de dónde resida la app:

MétodoPermiso mínimoCobertura de appsVelocidad
Catálogo público de MicrosoftPúblicoApps certificadas / publicadasInstantánea
Portal Microsoft EntraCloud Application AdministratorApps de tu inquilinoVisual
PowerShell (AzureAD / Graph)Application.Read.All o Directory.Read.AllApps de tu inquilinoScriptable
REST Microsoft GraphApplication.Read.All o Directory.Read.AllApps de tu inquilinoIntegrable
Soporte especializadoCualquier App IDLento

Catálogo público de Microsoft

Microsoft mantiene una hoja de cálculo actualizada —“Azure App IDs Security and Compliance – All Apps”— con miles de aplicaciones publicadas y sus App IDs. Para usarla:

  1. Descarga el fichero (formato CSV o Excel) desde Microsoft Learn.
  2. Busca el GUID con el Filtro avanzado. Excel localizará la fila con los campos AppDisplayName, PublisherName y VerifiedPublisherId.
  3. Si encuentras varias coincidencias, fíjate en la columna Verified para elegir la entrada firmada.

Ventajas: no requiere permisos y cubre apps SaaS populares.
Limitaciones: no incluye aplicaciones privadas ni B2C.

Centro de administración de Microsoft Entra

El portal es ideal cuando el GUID procede de las alertas del inquilino:

  1. Accede a Identity > Aplicaciones > Aplicaciones corporativas.
  2. En la barra de búsqueda, pega el GUID completo. Si el texto es correcto, la grilla mostrará la aplicación al instante.
  3. Haz clic para abrir la ficha y revisa Nombre para mostrar, Id. de aplicación, Permisos, Consentimiento y usuarios asignados.

Consejo profesional: el filtro Select a property > Application ID resulta más rápido para guiar búsquedas masivas.

PowerShell: la navaja suiza del administrador

Módulo AzureAD (legado)

Connect-AzureAD
$appId = '00000000-1111-2222-3333-444444444444'
Get-AzureADApplication -Filter "AppId eq '$appId'" |
  Select-Object DisplayName, AppId, ObjectId

El cmdlet devuelve un objeto excelente para Export-Csv. Sin embargo, el módulo AzureAD quedará sin soporte a largo plazo.

Módulo Microsoft.Graph (recomendado)

Connect-MgGraph -Scopes "Application.Read.All","Directory.Read.All"
$app = Get-MgApplication -ApplicationId $appId
$app.DisplayName

Ventajas clave:

  • Parámetro nativo -ApplicationId (no hace falta filtrar).
  • API de futuro; compatible con AuthenticationStrength, CertificateBasedAuth, etc.
  • Permite delegar con -TenantId para acceder a varios inquilinos en un mismo script.

Consultas masivas

$guids = Get-Content '.\guids.txt'
$results = foreach ($g in $guids) {
    try {
        Get-MgApplication -ApplicationId $g | 
          Select-Object DisplayName,AppId,ObjectId
    } catch {
        [PsCustomObject]@{DisplayName='NO ENCONTRADA';AppId=$g;ObjectId=$null}
    }
}
$results | Export-Csv '.\inventario_apps.csv' -NoTypeInformation

Microsoft Graph API REST

Para integraciones CI/CD o lenguajes distintos de PowerShell:

GET https://graph.microsoft.com/v1.0/applications?$filter=appId%20eq%20'00000000-1111-2222-3333-444444444444'
Authorization: Bearer <token>

La respuesta JSON contendrá:

{
  "value": [
    {
      "displayName": "Contoso Finance",
      "id": "aaaa...bbbb",
      "appId": "00000000-1111-2222-3333-444444444444"
    }
  ]
}

Recuerda solicitar los permisos Application.Read.All o Directory.Read.All y que en apps delegadas también vale Directory.AccessAsUser.All.

Automatización y mantenimiento continuo

En entornos con cientos de SaaS conviene programar una función diaria (Azure Function, Logic App, GitHub Action) que:

  1. ¡Lee la lista de GUID desde tus registros de consentimiento!
  2. Interroga Graph y almacena displayName, publisher, appOwnerOrganizationId en tu CMDB.
  3. Genera un informe diferencial resaltando nuevos App IDs.
  4. Dispara alertas si una app adquiere permisos de Application de alto riesgo.

Cómo paginar correctamente

Si recibes @odata.nextLink, repite la llamada hasta consumir todas las páginas; en PowerShell basta con Invoke-MgGraphRequest -All.

Escenarios especiales

  • App privada multicliente: el proveedor puede distribuir distintos GUID por tenant; pide confirmación al ISV o comprueba el objeto publisherDomain.
  • B2C custom policies: las aplicaciones “b2c-extensions-app” y “proxyIdentityExperienceFramework” comparten plantillas; cerciórate por ObjectId.
  • Sustitución de aplicaciones heredadas: cuando migras de AzureAD Graph a Microsoft Graph, el GUID permanece, pero el endpoint cambia; actualiza scripts para evitar fallos 410 Gone.

Seguridad y cumplimiento

Identificar el nombre es solo el primer paso. Asegúrate de revisar:

  1. Consentimientos: quita permisos que ya no usen los usuarios.
  2. Certificados y secretos: renueva antes de que caduquen para evitar caídas.
  3. Principio de mínimo privilegio: audita continuamente el tipo de permiso (Delegated vs Application).
  4. Políticas de acceso condicional: asigna MFA o restricciones de ubicación según criticidad.

Buenas prácticas recomendadas

  • Centraliza los GUID en un único repositorio (por ejemplo, un workbook de Azure Monitor).
  • Etiqueta las aplicaciones críticas con Owner, BusinessUnit y DataSensitivity.
  • Incluye el App ID en la documentación de onboarding de nuevos servicios.
  • Programa una revisión trimestral para eliminar registros sin uso en 90 días.

Resumen rápido

• Usa el catálogo público para SaaS ampliamente adoptado.
* Recurre al portal Entra para inspecciones puntuales.
* Automiza inventarios con PowerShell o Graph API.
* En casos extremos, contacta al editor o a soporte de Microsoft Q&A.

Conclusión

La combinación de métodos manuales y automatizados te permitirá identificar cualquier App ID de Azure AD en minutos, mantener tu inquilino limpio y cumplir las exigencias de auditoría sin sobresaltos.

Índice