mytoken - OpenID Connect Tokens for Long-term Authorization
Creators: name: Zachmann, Gabriel
Publisher: name: Karlsruher Institut für Technologie (KIT)
Year: 2021
Subjects: Mytoken
OIDC
OpenID Connect
AAI
oidc-agent

description: OpenID Connect ist eine wichtige Schlüsselkomponente in vielen modernen Authentifi- zierungs- und Autorisierungsinfrastrukturen. Es wird hauptsächlich in Webbrowsern ver- wendet, aber auch die Verwendung auf der Kommandozeile und in APIs findet immer mehr Verbreitung. Daraus ergibt sich der Bedarf für gute Kommandozeilen-Werkzeuge. In einer früheren Arbeit haben wir ein Werkzeug für die Verwaltung von OpenID Connect Access Tokens auf der Kommandozeile entwickelt. Dieses Werkzeug ist jedoch weniger geeignet, wenn Access Tokens über längere Zeiträume auf mehreren Rechnern verwendet werden müssen. Diese Notwendigkeit ergibt sich insbesondere bei Rechenjobs, die typischerweise nicht auf dem Computer des Benutzers laufen. In Szenarien, in denen Rechenjobs sich über OpenID Connect Access Tokens authentifizieren müssen, um Daten zu laden und zu speichern oder um auf andere Ressourcen zuzugreifen, führt die kurze Gültigkeitsdauer von OpenID Connect Access Tokens zu Problemen. Es ist üblich, dass Rechenjobs wesentlich länger dauern als ein einzelner Access Token gültig ist. Die aktuellen Mechanismen, die OpenID Connect bietet, und bestehende Software-Werkzeuge lösen dieses Problem nicht zufriedenstellend. In dieser Arbeit haben wir einen Token-Dienst - genannt Mytoken - entworfen und im- plementiert, der dieses Problem löst, indem ein Mechanismus bereitgestellt wird, der es ermöglicht gültige OpenID Connect Access Tokens über einen längeren Zeitraum abzurufen. Mit so genannten Mytokens können Access Tokens auf jedem mit dem Internet verbundenen Gerät einfach über den Mytoken-Server abgerufen werden. Mytokens könnten anstelle von OpenID Connect Access Tokens verwendet werden, um Rechenjobs zu starten. Sie können dann sowohl von Job-Submission-Systemen als auch von laufenden Rechenjobs verwendet werden, um so viele Access Tokens abzurufen, wie es durch den Mytoken erlaubt ist. Um ein gutes Gleichgewicht zwischen Sicherheit und Benutzbarkeit zu erreichen, haben wir so genannte Capabilities und Restrictions implementiert. Diese können verwendet werden, um Mytokens so einzuschränken, dass jeder genau die benötigten Rechte hat, und um gleichzeitig die Auswirkungen eines Diebstahls zu begrenzen. Mit Restrictions kann die Verwendung eines Mytokens auf eine oder mehrere Zeitspannen, auf bestimmte Standorte (Länder sowie IP-Adressen oder Subnetze), und in der Anzahl der Nutzungen beschränkt werden. Außerdem kann festgelegt werden, dass Access Tokens, die mit dem Mytoken abgerufen werden, nur bestimmte Scopes und Audiences haben können. Durch die Verwendung mehrerer so ge- nannter Restriction Clauses kann ein einziger Mytoken auch in komplexen Anwendungsfällen verwendet werden, in denen zu unterschiedlichen Zeiten unterschiedliche Berechtigungen benötigt werden. Ein typisches Beispiel hierfür ist das Starten von Rechenjobs. Hierbei werden zu Beginn Berechtigungen zum Starten eines Jobs und zum Lesen von Eingabedaten benötigt; am Ende müssen die Ausgabedaten geschrieben werden. Mit den Restrictions kann hierfür ein einziger Mytoken verwendet werden, wobei in jedem Schritt nur die benötigten Privilegien nutzbar sind, wodurch die Angriffsfläche stark reduziert wird. Somit stellen Mytokens eine vielversprechende Lösung für lang laufende Jobs dar.