Ablauf von Azure AD Application Secrets

Ablauf von Azure AD Application Secrets

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 das Ablaufdatum markieren und in einem angemessenen Zeitraum vorher einen neuen Key erzeugen und diesen 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 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 

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

Time limit is exhausted. Please reload the CAPTCHA.