Búsqueda de sitios web

Cómo exportar todos los roles PIM de AzureAD con Microsoft Graph PowerShell


Azure AD Privileged Identity Management (PIM) es una herramienta fantástica para administrar y monitorear el acceso a los recursos en Azure AD. Sin embargo, naturalmente, con el tiempo, se pueden acumular asignaciones PIM activas y elegibles y es posible que deba exportar mediante programación una vista de nivel superior de todas las asignaciones para validar si aún son necesarias o al menos informar sobre ello.

En este tutorial, le mostraré cómo usar Microsoft Graph PowerShell mediante programación para exportar un informe de todas las asignaciones de PIM. También le mostraré cómo exportar un informe similar desde el portal.

Requisitos previos

Para exportar las funciones de PIM en este tutorial, debe asegurarse de tener instalados los módulos de Microsoft Graph. Consulte mi tutorial aquí: Cómo instalar el módulo Microsoft Graph PowerShell que detalla cómo instalar y actualizar los módulos Microsoft Graph PowerShell.

Además de esto, para otorgar consentimiento a Microsoft Graph en Azure AD, deberá iniciar sesión de forma interactiva en el script como una cuenta de administrador global; sin embargo, la sesión solo estará activa para los permisos definidos en este alcance de este script (RoleManagement.Read). .Directorio y Directorio.Leer.Todo).

Cómo exportar todos los roles de PIM usando el portal de Azure AD

Si le gusta la simplicidad de usar la GUI web para completar esta tarea, puede usar el portal de Gobernanza de identidad en Microsoft Entra para exportar el mismo informe. Siga los pasos a continuación para exportar las funciones de PIM a través del portal de Microsoft Entra:

1. Inicie sesión en Microsoft Entra aquí: https://entra.microsoft.com/ con una cuenta con el rol Lector de seguridad asignado.

2. En el menú, seleccione Gobierno de identidad > Gestión de identidad privilegiada.

3. Bajo el encabezado Administrar, seleccione Tareas.

4. Seleccione Exportar y cuando aparezca la opción, seleccione Descargar.

5. Su informe se verá así:

Cómo exportar todos los roles PIM usando Microsoft Graph PowerShell

Para este tutorial, escribí el siguiente script que reunirá todas las asignaciones de roles de PIM activas y elegibles y traerá la información relevante a un informe similar. Comience abriendo el Bloc de notas o PowerSell ISE y copiando el código a continuación. Péguelo en su editor, realice las modificaciones necesarias, como la ruta de exportación, y ejecute el script en PowerShell para crear el informe de función PIM.

Connect-MgGraph -Scopes RoleManagement.Read.Directory,Directory.Read.All

Select-MgProfile -Name beta

$EligiblePIMRoles = Get-MgRoleManagementDirectoryRoleEligibilitySchedule -All -ExpandProperty *
$AssignedPIMRoles = Get-MgRoleManagementDirectoryRoleAssignmentSchedule -All -ExpandProperty *

$PIMRoles = $EligiblePIMRoles + $AssignedPIMRoles

$Report = [System.Collections.Generic.List[Object]]::new()

foreach ($a in $PIMRoles) {
    $regex = "^([^.]+)\.([^.]+)\.(.+)$"
    $a.Principal.AdditionalProperties.'@odata.type' -match $regex | out-null

    $obj = [pscustomobject][ordered]@{
        Assigned                 = $a.Principal.AdditionalProperties.displayName
        "Assigned Type"          = $matches[3]
        "Assigned Role"          = $a.RoleDefinition.DisplayName
        "Assigned Role Scope"    = $a.directoryScopeId
        "Assignment Type"        = (&{if ($a.AssignmentType -eq "Assigned") {"Active"} else {"Eligible"}})
        "Is Built In"            = $a.roleDefinition.isBuiltIn
        "Created Date"           = $a.CreatedDateTime
        "Expiration type"        = $a.ScheduleInfo.Expiration.type
        "Expiration Date"        = switch ($a.ScheduleInfo.Expiration.EndDateTime) {
            {$a.ScheduleInfo.Expiration.EndDateTime -match '20'} {$a.ScheduleInfo.Expiration.EndDateTime}
            {$a.ScheduleInfo.Expiration.EndDateTime -notmatch '20'} {"N/A"}
        }
    }
    $report.Add($obj)
}

$Report | Export-CSV -path C:\temp\AllPIMRolesExport.csv

Artículos relacionados