Entra ID: YubiKey Pre-Provisioning – Part 1
YubiKeys und die FIDO2-Authentifizierung stehen schon seit einiger Zeit im Fokus der IT-Sicherheitswelt. Bisher lag die Bereitstellung dieser Sicherheitsschlüssel jedoch größtenteils in der Verantwortung der Endanwender. Mit der Veröffentlichung der APIs zur Vorprovisionierung von FIDO2-Schlüsseln durch Microsoft im dritten Quartal 2024 ist es nun erstmals möglich, Sicherheitsschlüssel direkt in Entra ID als Authentifizierungsmethode im Namen der Nutzer zu registrieren.
Yubico bietet mit der Python-basierten Anwendung YubiKey-Manager aus den Yubico Labs ein praktisches Tool für Administratoren, um die Bereitstellung der YubiKeys effizient zu verwalten.
Der Prozess der Provisionierung wird von Yubico wie folgt schematisch beschrieben:
Vorbereitung
Für das On-Behalf Provisioning müssen folgende Voraussetzungen (unter Windows) geschaffen werden:
- Service Principal / App Registration in Entra ID
- Entra ID Sicherheitsgruppe mit zu provisionierenden Anwendern
- Admin Workstation mit
- Visual Studio Code
- Visual C++ Build Tools
- Python mit den Modulen
- Yubikey-Manager
- Requests
- FIDO2
- Yubico Provisionierungsscripte
Anleitung
Service Principal / App Registration in Entra ID
Zuerst muss eine App Registration in Entra ID angelegt werden, mit welcher im Nachgang die Provisionierung der FIDO2-Sticks für die User durchgeführt wird.
Im Entra ID Admin Portal unter Applications -> App Registrations eine neue Registrierung anlegen. Der Name ist frei wählbar und kann gemäß der Namenskonvention der Organisation vergeben werden.
Wichtig: Sollte es mehrere Admins geben, die FIDO2-Sticks anlernen und an User austeilen, empfehle ich eine App Registrierung pro Administrator zu erstellen für eine bessere Nachvollziehbarkeit im Nachgang.
Nachdem die App Registrierung abgeschlossen ist, wird die Application ID für das Provisionierungsscript benötigt.
Anschließend muss noch ein App Secret erstellt werden. Dies gelingt innerhalb der registrierten App über den Punkt “Certificates & secrets”. Der Name des Secrets ist frei wählbar und die Gültigkeit des Secrets bis auf 24 Monate anpassbar.
Meine Empfehlung ist hier einen kürzeren Zeitraum zu wählen und das Secret dafür regelmäßig zu erneuern.
Wichtig: Bitte unbedingt den Value des Secrets kopieren und sicher abspeichern (Passwortmanager). Das Secret brauchen wir im späteren Verlauf und es ist nicht möglich nach dem Verlassen/Reload dieser Seite das Secret nochmal anzuzeigen.
Nun fehlen der App noch die passenden Berechtigungen, diese werden im Bereich “API permissions” vergeben.
UserAuthenticationMethod.ReadWrite.All wird benötigt um die Authentifizierungsmethoden der Anwender lesen und (über)schreiben zu können.
GroupMember.Read.All wird für das Auslesen der Gruppenmitglieder aus dem nächsten Schritt benötigt
Entra ID Sicherheitsgruppe mit zu provisionierenden Anwendern
Das Anlegen einer Sicherheitsgruppe in Entra ID beschreibe ich an dieser Stelle nicht, ich unterstelle somit das jemand, der sich mit FIDO2 Vorprovisionierung beschäftigt, die notwendigen Kenntnisse hat um Gruppen und deren Mitglieder in Entra ID zu erstellen / zu pflegen.
Wichtig: Sollte es mehrere Admins geben, die FIDO2-Sticks anlernen und an User austeilen, empfehle ich eine Provisionierungsgruppe pro Administrator zu erstellen damit es zu keinen Konflikten / ungewolltem Überschreiben von Yubikey-/User-Zuordnungen kommt.
Von der Provisionierungsgruppe wird für den späteren Verlauf der Gruppenname benötigt.
Im nächsten Part dieser Blog-Reihe wird die Einrichtung der Admin-Workstation unter Windows beschrieben.