Use Powershell to activate Privileged Identity Management Role

Hallo zusammen,

Wie Privileged Identity Management funktioniert, habe ich bereits hier beschrieben. Nun dachte ich, vielleicht gibt es ja mit PowerShell eine einfache Möglichkeit die PIM Rollen zu aktivieren.

Es gibt PIM Commands im AzureAD Modul (denke es muss die Preview Version sein)

PowerShell for Azure AD roles in Privileged Identity Management

https://docs.microsoft.com/en-us/azure/active-directory/privileged-identity-management/powershell-for-azure-ad-roles

Get-Command *AzureADMSPrivilegedRole*

Mit folgendem Command verbindet man sich mit dem AzureAD

Import-Module AzureAD
Connect-AzureAD

Mit folgendem Befehl kann man sich die Rollen welche "Eligible" sind anzeigen lassen

Get-AzureADMSPrivilegedRoleAssignment -ProviderId "aadRoles" -ResourceId "46bbad84-29f0-4e03-8d34-f6841a5071ad" | where {$_.AssignmentState -eq "Eligible"}

Leider steht da dann nicht wie was für eine Rolle das ist, sondern man muss mit der ID die Rollendefinition abfragen

Get-AzureADMSPrivilegedRoleDefinition -ProviderId "aadRoles" -ResourceId "46bbad84-29f0-4e03-8d34-f6841a5071ad" -Id 29232cdf-9323-42fd-ade2-1d097af3e4de

Man sieht im PIM Webinterface, dass ich vier Rollen "Eligible", genau wie in der PowerShell

Um eine Roll zu aktivieren, wird es schon etwas komplizierter

$schedule = New-Object Microsoft.Open.MSGraph.Model.AzureADMSPrivilegedSchedule

$schedule.Type = "Once"

$schedule.StartDateTime = (Get-Date).ToUniversalTime().ToString("yyyy-MM-ddTHH:mm:ss.fffZ")

$schedule.endDateTime = ((Get-Date).AddHours(+4)).ToUniversalTime().ToString("yyyy-MM-ddTHH:mm:ss.fffZ")

$schedule

 

 Open-AzureADMSPrivilegedRoleAssignmentRequest -ProviderId "aadRoles" -ResourceId "46bbad84-29f0-4e03-8d34-f6841a5071ad" -RoleDefinitionID "29232cdf-9323-42fd-ade2-1d097af3e4de" -SubjectID "6db8cdd5-8e93-462d-9907-994406c07f60" -Type "UserAdd" -AssignmentState "Active" -Schedule $Schedule -reason "Incident" -Verbose

Da für Admin Rollen MFA benötigt wird klappt das noch nicht. Ich ändere also meine Conditional Access Rule und entferne die Trusted Location.

Beim Verbinden mit dem AzureAD PowerShell Module erhalte ich nun eine MFA Abfrage

Connect-AzureAD

Nun klappt es auch mit dem Request einer PIM Rolle

Die PIM requests des vergangenen Tages kann man sich so anschauen

#View PIM Requests

Get-AzureADMSPrivilegedRoleAssignmentRequest -ProviderId "aadRoles" | where {$_.RequestedDateTime -gt (get-Date).AddDays(-1)}

Nur mit dem vorzeitigen deaktivieren der PIM Rolle klappt es noch nicht. Vielleicht hat da ja jemand einen Tipp?

 

#Close PIM Request

Close-AzureADMSPrivilegedRoleAssignmentRequest -ProviderId "aadRoles" -Id "9748c2dc-86c3-42aa-bcb1-769959f1e284"

Mein Fazit:

Man kann die PIM Rollen über PowerShell aktivieren. Allerdings ist das für den täglichen Gebrauch mit den ID's aber viel zu umständlich. Hoffe das wird noch massiv Benutzerfreundlicher.

Liebe Grüsse
Andres Bohren