Ablauf von Azure AD Application Secrets

Aus gegebenem Anlass habe ich mich gerade mit dem Ablaufdatum von Azure AD Applications beschäftigen müssen. Vor lauter Euphorie, dass ich meinen Blog mit dem Azure-AD verbinden konnte (um SSO zu ermöglichen) habe ich ganz übersehen, dass der von mir erstellte Key auch mit einem Ablaufdatum versehen ist.

Also: schön im Kalender air jordan 3 black cat 2025 das Ablaufdatum markieren und in einem angemessenen nike air jordan 1 high og sp union bbs fd2565 100 Zeitraum vorher einen neuen Key erzeugen und diesen Jordan Bordeaux shirt match Black tee Retro 6 in der Anwendung hinterlegen!

Aber was ist, wenn man sich die Ablaufdaten nicht notiert hat? Wenn man nur 1 oder 5 Anwendung hat, dann kann man die ja recht flott im Portal durchgucken, aber wie ist das bei einer größeren Menge an Apps? Immerhin gibt es in der Preview-Anzeige für Apps eine Spalte, in der der Status angezeigt wird – nur dummerweise kann man danach weder sortieren noch filtern.

image

PowerShell to the rescue!

Mit ein wenig PowerShell kann hier aber Abhilfe schaffen!

Voraussetzung ist, dass das Azure AD PowerShell-Modul installiert ist. Das kann ganz einfach per Install-Module -Name AzureAD installiert werden. Anschließend kann man mit

Get-AzureADApplication alle im Azure AD registrierten Anwendungen abrufen inklusive der jeweiligen Credentials. Mit ein wenig Formatierung kann man sich schließlich eine Liste sortiert nach Ablaufdatum anzeigen lassen.

image

Das komplette Skript sieht 429 Too Many Requests dann so aus:

Connect-AzureAD
$results = @()
Get-AzureADApplication -All $true | % {  
    $app = $_

    $owner = Get-AzureADApplicationOwner -ObjectId $_.ObjectID -Top 1

    $app.PasswordCredentials | % { 
        $results += [PSCustomObject] @{
            CredentialType = "PasswordCredentials"
            DisplayName    = $app.DisplayName; 
            ExpiryDate     = $_.EndDate;
            StartDate      = $_.StartDate;
            KeyID          = $_.KeyId;
            Type           = 'NA';
            Usage          = 'NA';
            Owners         = $owner.UserPrincipalName;
        }
    } 
                                  
    $app.KeyCredentials | % { 
        $results += [PSCustomObject] @{
            CredentialType = "KeyCredentials"                                        
            DisplayName    = $app.DisplayName; 
            ExpiryDate     = $_.EndDate;
            StartDate      = $_.StartDate;
            KeyID          = $_.KeyId;
            Type           = $_.Type;
            Usage          = $_.Usage;
            Owners         = $owner.UserPrincipalName;
        }
    }                            
}
$results | Sort ExpiryDate | FT -AutoSize 

Kommentar verfassen

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.