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
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.
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.
Nach der erfolgreichen Registrierung werden automatisch die Eigenschaften der registrierten Anwendung geöffnet. Wichtig ist dabei vor allem die Anwendungs-ID
und Verzeichnis-ID
, die benötigen wir später für die Authentifizierung.
Danach können wir das Zertifikat hochladen, dass wir bereits für die Authentifizierung erstellt haben.
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.
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.
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.
[…] Services anbieten. Die Grundlagen für die Authentifizierung habe ich bereits in einem anderen Beitrag […]