FEITIAN OTP c200 mit Okta nutzen

Können FEITIAN OTP Tokens (z. B. c200 –> https://www.ftsafe.com/Products/OTP/Single_Button_OTP) mit Okta genutzt werden? Aber selbstverständlich. Die offizielle Anleitung findet ihr hier: https://help.okta.com/en/prod/Content/Topics/Security/mfa-totp-seed.htm

Im Okta Admin Dashboard unter “Security” -> “Multifactor” müsst ihr zunächst die grundsätzliche Konfiguration vornehmen:

 

Sollte der Punkt TOTP nicht sichtbar sein: Bitte vergewissert euch, dass ihr das MFA Paket (SKU) von Okta in Benutzung habt. Wenn ihr dies bereits habt, wendet euch an den Support und lasst euch die Funktion freischalten.

Klickt dann auf “Add TOTP Factor” und nehmt die entsprechende Konfiguration vor.

 

So viel ich weiß gibt es die c200 Tokens in unterschiedlichen Konfigurationen (SHA1 und SHA256), sowie auch Time step und das encoding des Seeds / Secrets kann abweichen. Dies müsst ihr entsprechend eurer Tokens einstellen. Diese Infos habt ihr meist bei der Bestellung der Tokens enthalten.

Sind die Tokens schon ein paar Jahre alt, kann die interne Uhr abweichen – deswegen könnt ihr den Clock drift anpassen. Mein Token ist sehr neu, daher ist die Uhrzeit noch recht genau in sync. Länger als um die 5 Jahre werden aber wohl leider nicht drin sein, nach dieser Zeit weicht die Uhrzeit zu sehr ab.

Die Einstellungen oben passen aber genau auf meinen erworbenen Token.

Die generelle Einrichtung ist somit schon abgeschlossen. Wie auf dem Screenshot zu sehen ist, können natürlich Tokens von unterschiedlichen Herstellern kombiniert werden.

Im nächsten Schritt geht es darum, den richtigen Token zum richtigen User zuzuweisen (Enrollment). Dies passiert via API, auch hier beschrieben: https://developer.okta.com/docs/reference/api/factors/#enroll-custom-hotp-factor

curl -v -X POST \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "Authorization: SSWS ${api_token}" \
-d '{
"factorType": "token:hotp",
"provider": "CUSTOM",
"factorProfileId": "fpr20l2mDyaUGWGCa0g4",
"profile": {
"sharedSecret": "484f97be3213b117e3a20438e291540a"
}
}' "https://${yourOktaDomain}/api/v1/users/00u15s1KDETTQMQYABRL/factors?activate=true"

Wie zu sehen ist, müssen einige Werte angepasst werden:

  • API Key: den könnt ihr euch im Admin Dashboard unter “Security” -> “API” -> “Tokens” erzeugen. Achtung, der Token wird euch nur einmal angezeigt.
  • factorProfileId: das ist die ID des eingerichteten Factors, schaut mal auf den letzten Screenshot, die kann einfach heraus kopiert werden. Die ID bleibt wie der API Key bei jedem Aufruf gleich. (solange es sich um den selben Hersteller / Serie des Tokens handelt)
  • Werte die sich bei jedem Aufruf ändern sind sharedSecret und die User ID (im Beispiel ist dies die 00u15s1KDETTQMQYABRL). Das shared Secret habt ihr auch beim Kauf der Tokens erhalten und ist für jeden Token einzigartig. Die User ID könnt ihr direkt aus Okta via der API auslesen oder auch aus der Adresszeile des Browsers kopieren wenn ihr das Profil eines Users in Okta öffnet.
  • Zu guter Letzt müsst ihr natürlich noch eure Okta Domain anpassen

Das Script könnt ihr einfach auf der Command Prompt ausführen. Ihr könnt auch Postman dafür nutzen. Oder ihr schreibt euch ein Script, um den User auszulesen (UserID) und dann mit einer CSV zu vergleichen, welcher Token dem User zugeordnet werden soll und dann schreibt ihr den Token entsprechend.

Auch könnte Okta Workflows genutzt werden um dort eine Custom API Action auszuführen. Der Trigger könnte z. B. ein User Attribute sein (z. B. “User has c200 Token?” yes/no). Auf Basis dieses Triggers wird dann ein Table mit euren Secrets und Zuordnungen gelesen und falls es einen Match gibt schließlich der Token zugeordnet.

Es gibt viele viele Möglichkeiten. Macros in Notepad++ funktionieren natürlich auch 😉

 

Der Token ist dann sofort aktiv und der Benutzer kann ihn verwenden. Keinerlei weitere Konfiguration ist vom Nutzer nötig:

Comments

No comments yet. Why don’t you start the discussion?

Leave a Reply

Your email address will not be published. Required fields are marked *