Azure Active Directory Authentifizierung mit Hilfe eines Dienstprinzipals

In diesem Artikel möchte ich euch zeigen, wie man sich per Powershell mit dem Azure Active Directory (AAD) mit Hilfe eines Dienstprinzipals verbinden kann. In diesem konkreten Beispiel nutze ich dazu ein Zertifikat zur Authentifizierung und eine App-Registrierung im AAD.

Ganz am Anfang benötigen wir natürlich ein Zertifikat, dass wir zur Authentifizierung nutzen können. Es kann sich hierbei um ein selbst signiertes Zertifikat oder natürlich auch von einer Zertifizierungsstelle ausgestelltes Zertifikat handeln. In diesem Beispiel erstellen wir ein selbst signiertes Zertifikat, dass wir zur Authentifizierung am Azure Active Directory Dienstprinzipal nutzen. Ein Zertifikat kann ganz einfach per PowerShell erstellt werden:

$currentDate = Get-Date
$endDate  = $currentDate.AddYears(1)
$notAfter  = $endDate.AddYears(1)
New-SelfSignedCertificate -CertStoreLocation cert:\localmachine\my -DnsName frankeisel.de -KeyExportPolicy Exportable -Provider "Microsoft Enhanced RSA and AES Cryptographic Provider" -NotAfter $notAfter
Azure Active Directory Dienstprinzipal
Zertifikate in der MMC

Dieses Zertifikat können wir nun exportieren und dann auch für den Azure Active Directory Dienstprinzipal nutzen.

Im nächsten Schritt konfigurieren wir also den Dienstprinzipal. Das funktioniert über das Azure Active Directory Admin Center, dass unter der URL https://aad.portal.azure.com/ erreichbar ist.

Azure Active Directory Admin Center

Die Neuanlage erfolgt über den Punkt Neue Registrierung. Für unsere Zwecke muss nur ein sinnvoller Name eingetragen werden, alle anderen Optionen können auf den Standardwerten bleiben.

Neue Anwendung registrieren

Nach der erfolgreichen Registrierung werden automatisch die Eigenschaften der registrierten Anwendung geöffnet. Wichtig ist dabei vor allem die Anwendungs-IDund Verzeichnis-ID, die benötigen wir später für die Authentifizierung.

Eigenschaften der App-Registrierung

Danach können wir das Zertifikat hochladen, dass wir bereits für die Authentifizierung erstellt haben.

Zertifikat hochladen
Bereitgestelltes Zertifikat

Die App-Registrierung hat zu diesem Zeitpunkt noch keinerlei Berechtigungen auf dem Tenant. Somit sind unsere Möglichkeiten noch sehr beschränkt beim Zugriff. Um das zu ändern, müssen noch entsprechende Berechtigungen vergeben werden. In diesem Beispiel machen wir es uns leicht und wir geben der App-Registrierung globale Admin-Rechte. Das geht ebenfalls über das Azure Active Directory Admin Center.

Rollen und Administratoren
Azure Active Directory Dienstprinzipal
Globalen Administrator hinzufügen

Nun haben wir es schon fast geschafft. Jeder Client, der unser selbst signiertes Zertifikat installiert hat, kann sich nun über den Azure Active Directory Dienstprinzipal authentifizieren. Dazu muss natürlich das entsprechende PowerShell Modul installiert sein. Die Anleitung findet sich hier: https://docs.microsoft.com/de-de/office365/enterprise/powershell/connect-to-office-365-powershell

Die Verbindung erfolgt dann über folgenden Befehl:

Connect-AzureAD -TenantId '673275e6-72d7-4662-9254-a7dc7728af3a' -ApplicationId '1ca42924-d58b-4340-a11a-a8a55e954136' -CertificateThumbprint '083B2401789BF6C43867940D45CCB0F1602DB7B9'

Die TenantID ist dabei die Verzeichnis-ID aus den Eigenschaften der App-Registrierung, Die ApplicationId analog die Anwendungs-ID und dem Thumbprint von unserem selbst signiertem Zertifikat.

Azure Active Directory Dienstprinzipal
Verbindung erfolgreich

Wie man im Screenshot oben sehen kann, funktioniert die Authentifizierung mit einem Azure Active Directory Dienstprinzipal und einem Zertifikat. Diese Art der Authentifizierung kann vor allem für automatisierte Abläufe genutzt werden, wo man sich nicht unbedingt mit einem „echten“ Benutzer authentifizieren möchte.

Ein Kommentar

  1. […] Services anbieten. Die Grundlagen für die Authentifizierung habe ich bereits in einem anderen Beitrag […]

Schreibe einen Kommentar