Entra ID: YubiKey Pre-Provisioning – Part 3

In Part 1 dieser Blog-Reihe ging es um die vorbereitenden Tätigkeiten in Entra ID. In Part 2 wurde sich mit dem Thema der Admin-Workstation-Vorbereitung befasst.

In diesem letzten Teil der Blog-Serie wird es um die tatsächliche Durchführung der YubiKey Vorprovisionierung gehen, mit dem Ziel den Anwendern einen einsatzbereiten YubiKey zur überreichen, welcher sofort für die Authentifizierung gegenüber Entra ID genutzt werden kann.

Als Erstes werden die Nutzer der in Part 1 erstellten Sicherheitsgruppe hinzugefügt.

Jetzt wird Visual Studio Code im Administratorkontext geöffnet und der Script-Ordner bulkRegistration geöffnet. VS Code zeigt nun die folgenden Files aus dem Ordner an.

Die configs.json Datei wird wie in Part 2 beschrieben editiert und an die eigene Umgebung angepasst. Speichern nicht vergessen!

Im nächsten Schritt wird in VS Code die Datei step1GetFIDO2Challenges.py geöffnet.

An dem Script müssen keine Anpassungen vorgenommen werden. Dieser Teil dient dazu um, mittels der in der configs.json hinterlegten Parameter, die Gruppenmitglieder aus der Entra ID Gruppe zu erfassen und eine FIDO2-Challenge zur Provisionierung des YubiKeys zu erstellen.

Über Run -> Run without Debugging (alternativ Strg + F5) wird die Scriptausführung in VS Code gestartet.

Im Terminal-Bereich von VS Code wird der Output des Scripts angezeigt.

  • 1 der Access Token für den Graph API Zugriff mit dem Zugang der erstellten App Registration wird angefragt
  • 2 die Gruppen ID und die darin enthaltenen Mitglieder werden ausgelesen
  • 3 Prüfung ob der User bereits bestehende FIDO2 Credentials besitzt
  • 4 Erstellung der FIDO2 Registrierungs-Challenge
  • 5 Export der Informationen in usersToRegister.csv

In der usersToRegister.csv sind alle Nutzer enthalten, welche während des Durchlaufs von step1GetFIDO2Challenges.py erfasst wurden. Neben dem User-UPN und dem Anzeigenamen wird auch die ID, die FIDO2 Challenge, die Ablaufuhrzeit der Challenge und die ID der Relying Party (in dem Fall Entra ID) exportiert.

Es verbleiben nun also 60 Minuten um die YubiKeys für die Nutzer zu provisionieren, bevor die FIDO2 Challenge abläuft. Zum Abschluss des Vorgangs muss dafür das Script step2CreateAndActivateCredential.py ausgeführt werden.

Folgende Anpassungen am Script sollten vor der Ausführung in Betracht gezogen werden:

  • PIN Länge
    • Die vorgegebene PIN-Länge von 6 Zeichen kann in Zeile 355 des Scripts angepasst werden.
  • Nicht erlaubte PINs
    • Es ist möglich PIN Muster auszuschließen, dies geschieht im Array ab Zeile 342 des Scripts.

Wenn das definiert ist, kann das Script ausgeführt werden.

Über Run -> Run without Debugging (alternativ Strg + F5) wird wieder die Scriptausführung in VS Code gestartet.
Bitte (spätestens) jetzt die passende Anzahl an YubiKeys (ausgepackt) bereit halten.

Die Script-Ausgabe im Terminal erfordert diverse Eingaben / Interaktionen.

  • 1 Der Hinweis wenn der Stick nicht “frisch” ist, wird für die Provisionierung die bestehende PIN benötigt
  • 2 der Stick muss mit der Admin-Workstation verbunden sein / werden und dies mit Enter bestätigen
  • 3 die Zufalls-PIN wird generiert und vergeben (wenn in der configs.json so festgelegt) und der Sensor am Stick muss angetippt wird
    • wenn useRandomPIN auf false steht, wird an dieser Stelle die Eingabe der neuen PIN verlangt
  • 4 der Stick wird den Authentifizierungsmethoden für den Entra ID Nutzer hinzugefügt

Nachdem alle User aus der usersToRegister.csv mit einem YubiKey vorprovisioniert wurden, können die Ergebnisse in der Datei keysRegistered.csv eingesehen und für die Ausgabe der Sticks verwendet werden.

Die in der CSV angegebene Seriennummer entspricht der tatsächlichen Seriennummer des jeweiligen YubiKeys und diese wiederrum ist auf allen Modellen der YubiKeys aufgedruckt. So kann im Nachgang relativ einfach die Zuordnung Anwender <-> YubiKey und die zugehörige (initiale) PIN stattfinden.

Der Stick ist sofort einsatzbereit und kann für die Authentifizierung der Nutzer am Windows Client und gegenüber Entra ID Services genutzt werden.
Wurde useCTAP21Features auf true in der configs.json gesetzt, bekommen die Anwender (ab Windows 11 bzw. macOS) bei der ersten Nutzung und erfolgreichen Eingabe der PIN die Aufforderung die PIN für den YubiKey zu ändern.

Windows 10 Anwender bekommen eine Fehlermeldung, da CTAP 2.1 nicht supported ist.


Closing Words: Damit die FIDO2-Authentifizierung funktioniert und auch forciert wird, sind entsprechende Anpassungen an den Clients (FIDO2 Anmeldung freischalten, Hybrid Join/Cloud only join), der AD-Infrastruktur (GPOs) und Entra ID (Conditional Access, Authentizierungsmethoden & -stärken) noch vorzunehmen.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Pflichtfelder sind mit * gekennzeichnet.

*
*