Entra ID: YubiKey Pre-Provisioning – Part 2
In meinem vorhergehenden Blog-Beitrag zum Thema Vorprovisionierung der FIDO2 Sticks von Yubico ging es um die vorbereitenden Tätigkeiten in Entra ID.
In diesem Teil der Blog-Reihe geht es um die Einrichtung der Admin Workstation, welche für das Pre-Provisioning genutzt wird. Für mich als blutiger Python Newbie war das der komplizierteste Teil, welcher auch zugleich Motivation war diese Blog-Reihe zu verfassen.
In den folgenden Abschnitten geht es um die Installation und Einrichtung von:
- Python (Download)
- Visual Studio Build Tools Installer (Download)
- Python Module (Download via PIP)
- Visual Studio Code (Download)
- VS Code Python Extension (Download via VS Code Marketplace)
- Yubico Labs Bulk Registration Scripte
Installation & Einrichtung
Python
Zunächst ist die Installation von Python in der aktuellen Version (3.13.1; Stand 18.12.2024) nötig.
Dazu den Installer im Admin-Kontext ausführen und die Optionen
- use admin privileges when installing py.exe
- Add python.exe to PATH
bei der Installation auswählen. Der Installationspfad kann selbst frei definiert werden, ich belasse es auf dem Standardwert für diesen Artikel und den weiteren Verlauf der Beschreibung.
Visual Studio Build Tools Installer
Die Installation der VS Build Tools mit den relevanten Komponenten kann über eine CMD mit erhöhten Rechten wie folgt gestartet werden:
%PfadzurDatei%\vs_buildtools.exe --norestart --passive --downloadThenInstall --includeRecommended --add Microsoft.VisualStudio.Workload.NativeDesktop --add Microsoft.VisualStudio.Workload.VCTools --add Microsoft.VisualStudio.Workload.MSBuildTools
Python Module
Nachdem die VS Build Tools erfolgreich installiert wurden, können die entsprechenden Python Module, welche als Voraussetzung für die Yubico-Scripte vorhanden sein müssen, installiert werden.
Wichtig: Die VS Build Tools müssen vorher installiert sein, ansonsten schlägt die Installation der Python Module fehl.
Die Installation der 3 Module wird über eine administrative CMD wie folgt gestartet:
::Wechsel ins Installationsverzeichnis von pip, alternativ PIP vorher den Umgebungsvariablen hinzufügen
cd %localappdata%\Programs\Python\Python313\Scripts
::Installation Yubikey-Manager aus dem Python-Repo
pip.exe install yubikey-manager
::Installation FIDO2 aus dem Python-Repo
pip.exe install fido2
::Installation Requests-Modul aus dem Python-Repo
pip.exe install requests
Visual Studio Code + Python Extension
Die Installation von Visual Studio Code kann, je nach gewähltem Installer-Typ, im Nutzer- oder Systemkontext durchgeführt werden. Die Anpassung der vorhandenen Installationsparameter können nach persönlichen Vorlieben selbst bestimmt werden.
Nach erfolgreicher VS Code Installation müssen noch die Python Erweiterungen installiert werden. Dies gelingt innerhalb von VS Code über den Extension-Marketplace. Im Marketplace nach Python suchen und die ersten beiden Treffer
- Python
- Python Debugger
installieren.
Yubico Labs Bulk Registration Scripte
Die Bulk Registration Scripte von Yubico sind in folgende Scripte bzw. Dateien unterteilt:
- configs.json
- keyRegistered.csv
- step1GetFIDO2Challenges.py
- step2CreateAndActivateCredential.py
- usersToRegister.csv
Für die Einrichtung der Vorprovisionierung muss nur die configs.json Datei an die eigene Umgebung angepasst werden. Dazu benötigen wir die gespeicherten Informationen, welche in Part 1 erstellt wurden.
{
"tenantName": "{tenantName}.onmicrosoft.com",
"client_id": "",
"client_secret": "",
"usersInScopeGroup": "GroupName",
"challengeTimeoutInMinutes": 60,
"deleteExistingUserFIDOCredentials": false,
"useRandomPIN": false,
"useCTAP21Features": false
}
- tenantName wird mit der entsprechenden Tenant-Adresse der jeweiligen Umgebung befüllt
- client_id ist die Application ID der App Registrierung
- client_secret wird mit dem entsprechenden Secret gefüllt
- usersInScopeGroup hier wird der Gruppenname der Provisionierungsgruppe eingesetzt
- challengeTimeoutInMinutes gibt die Gültigkeitsdauer der FIDO2 Challenge an, ist die Zeit verstrichen kann mit dieser Challenge kein YubiKey für den Anwender registriert werden
- deleteExistingUserFIDOCredentials definiert, ob vorhandene FIDO-Credentials des Entra ID Nutzers bereinigt werden sollen, bevor der neue YubiKey angelernt wird
- useRandomPIN bietet die Möglichkeit eine zufällige PIN für den Yubikey zu generieren, wenn false muss manuell eine PIN vergeben werden
- useCTAP21Features bietet die Möglichkeit CTAP 2.1 Features zu verwenden
- YubiKey mit mindestens Firmware 5.7 erforderlich
- mit dieser Option ist es realisierbar das der Anwender nach der ersten PIN-Eingabe die PIN ändern muss (forceChangePIN)
- Mindestvoraussetzung dafür ist Windows 11 oder macOS
Im nächsten Part dieser Blog-Reihe erfahrt Ihr, was es mit den anderen Dateien aus dem Repo auf sich hat und wie die Vorprovisonierung der YubiKeys durchgeführt wird.