RegApp - Authentifizierungs- und Autorisierungs-Infrastruktur (AAI)

Bei der RegApp handelt es sich um ein föderiertes Open-Source-Identity-Management-System, das maßgeblich am Steinbuch Centre for Computing (SCC) am KIT entwickelt wird. Durch die derzeit installierte Lösung wird mehr als 38.000 registrierten Nutzern aus verschiedenen Forschungseinrichtungen, einschließlich der Helmholtz-Gemeinschaft und Universitäten, die Anmeldung an verschiedenen Diensten ermöglicht, abgesichert durch eine Zwei-Faktor-Autorisierung (2FA). Die Nutzer können dabei das von ihrer Heimatinstitution bereitgestellte Konto nutzen.

Basisfunktionen als Identitätsproxy für Single Sign On Umgebungen
  • Provisionierung und Deprovisionierung von Benutzeridentitäten
  • Transparente Anbindung von SAML-Föderationen
  • SSO Protokoll-Proxy OIDC ↔ SAML
  • Infrastruktur-Proxy für LDAP-Dienste

Die Kernfunktionalität der RegApp besteht darin, Dienste auf verschiedenste Art und Weise mit einer Authentifizierungs- und Autorisierungsinfrastruktur (AAI) zu verbinden. Dazu stehen verschiedene Integrationstechnologien zur Verfügung: Ein typischer Anwendungsfall wäre zum Beispiel, wenn ein Dienst nicht in der Lage ist, SAML-föderierte Identity Provider direkt anzusprechen. Hier kann ein sogenannter IdP-SP-Proxy einerseits das föderierte Authentifizierungsprotokoll und andererseits die Komplexität einer Föderation an sich verstecken, indem er dem Dienst einen geeigneten SSO-Zugangspunkt anbietet und andererseits als Service-Provider der SAML-Föderation die Benutzer zur Authentifizierung an die Heimat-IdPs weiterleitet. Um die Möglichkeiten zur Anbindung von Diensten zu erweitern, bietet die RegApp sowohl SAML- als auch OpenID Connect-Endpunkte an. Als Protokollübersetzungsdienst bildet das System SAML-Assertions auf OpenID-Connect-Claims ab. Zur Unterstützung lokaler Konten mit Benutzernamen-Passwort-Authentifizierung wird auch der LDAP-basierte Zugriff unterstützt. Damit werden alle typischen SSO-Szenarien für webbasierte Anwendungen adressiert.

Weitergehende Funktionen
  • Endnutzerportal zur Dienstregistrierung
  • Hinterlegen/Verwalten/Provisionierung von SSH-Schlüsseln
  • Multifaktor-Authentifizierung für Web- und Non-Web-Dienste

Ein weiterer Anwendungsfall ist der Zugriff auf Nicht-Web-HPC-Systeme mit Kommandozeilenschnittstellen unter erweiterten Sicherheitsanforderungen. Um derartiges zu unterstützen, bietet das RegApp-System ein Portal, in dem authentifizierte Benutzer (z. B. von DFN-AAI-föderierten Organisationen) eine Liste aller verfügbaren Dienste einsehen und sich für diese registrieren können. Je nach Dienst muss ein Dienstpasswort gesetzt werden und es können SSH-Schlüssel mit unterschiedlichen Nutzungsprofilen (Login vs. Remote-Befehlsausführung) hochgeladen werden. Ein angebundener MFA-Dienst (auf Basis von LinOTP) wird verwendet, um Zweifaktor-TANs zu prüfen und um Benutzern die Registrierung von TOTP-basierten Smartphone-Authentifikatoren über das Portal zu ermöglichen. Um webbasierte und Kommandozeilen-Authentifizierungen zu ermöglichen, stehen neben den Protokollen SAML, OIDC und LDAP einige spezielle HTTP-REST-Endpunkte zur Verfügung. Für webbasierte Anmeldungen werden die SAML- und OIDC-Endpunkte verwendet. Der LDAP-Endpunkt wird für die Überprüfung von Service-Passwörtern verwendet, die REST-Endpunkte werden für die Überprüfung des zweiten Faktorcodes und für das Herunterladen der SSH-Schlüssel des Benutzers verwendet.

Mit diesen Bausteinen kann nahezu jeder Dienst auf sichere Art und Weise an die DFN-AAI-Benutzerföderation angebunden werden, einschließlich einer Step-up-Authentifizierung mit einem zweiten Faktor, selbst wenn der Heimat-IdP des Benutzers dies nicht unterstützt.

Architektur der RegApp
Architektur der RegApp im Kontext von Identitätsprovidern (IdP), Service Providern (SP,) Authentifizierungs- und Autorisierungsinfrastrukturen (AAI) und zukünftig auch Communities bzw. Projektgruppen
Ausblick
  • Autorisierungsfunktionen auf Basis von Projektgruppen
  • Integration externer Forschungscommunities

Zukünftige Entwicklungen sehen die Realisierung einer Verwaltung für Projektgruppen und deren Zusammensetzung vor. Eine Projektgruppe ist hierbei als ein virtueller Verbund von Benutzeridentitäten bzw. -konten zu betrachten. Der Fokus liegt auf der Implementierung der damit verbundenen Prozesse, wie z.B. der (De-)Provisionierung von Projektgruppen, und dem Entwurf und der Implementierung eines sinnvollen Rechte-/Rollenkonzepts zur Verwaltung der Gruppen bzw. ihrer Mitglieder. Da die Mitgliedschaft in einer Projektgruppe die Grundlage für Autorisierungsentscheidungen darstellt, sollen diese Mitgliedschaften an den entsprechenden Dienst oder die Community weitergegeben werden. Da nicht jeder angeschlossene Dienst in der Lage ist, eine Benutzerautorisierung durchzuführen, insbesondere im Hinblick auf Communities, wird die Benutzerautorisierung letztlich auch auf der Proxy-Seite auf Basis von Account-Eigenschaften oder Gruppenmitgliedschaften zur Verfügung stehen.

Zusammenfassung

Die RegApp wird angelehnt an die AARC Blueprint Architecture weiterentwickelt, um die Anbindung von Forschungsgemeinschaften zu erleichtern. Diesem Ansatz folgend wird die Implementierung von Token-Übersetzungsdiensten eine erweiterte Dienstintegration durch moderne Authentifizierungsmethoden und Protokolle wie OpenID Connect, einem zunehmend etablierten Standard, ermöglichen. Dies gewährleistet die Offenheit des Systems und die zukunftssichere Integration weiterer Datendienste. Die Etablierung geeigneter Account-Verknüpfungsprozeduren innerhalb der RegApp ermöglicht die Zuordnung eindeutiger Identitäten auf konsistente und einheitliche Weise zu den HPC-Clustern und jedem anderen angeschlossenen Dienst, unabhängig vom verwendeten Zugang. Schließlich schafft die RegApp die Voraussetzungen für eine institutionenübergreifende Integration von Diensten und etabliert ein Gruppen-/Rollenmanagement für überregionale und nationale Communities mit Delegationsmechanismen. Die Software wird bereits im Rahmen des Helmholtz-Projekts HIFIS und im aktuellen bwIDM-Projekt des Landes Baden-Württemberg eingesetzt und weiter entwickelt.

Quellcode und Verfügbarkeit

Der Quellcode der RegApp ist per GIT abrufbar. Es ist möglich eine Demoinstanz als Docker image zu starten. Die Dokumentationen sind bei den jeweiligen GIT Projekten verlinkt.

Gitlab: https://git.scc.kit.edu/reg-app/reg-app
Docker: https://git.scc.kit.edu/reg-app/regapp-docker

Referenzen

Im Kontext von bwIDM: www.bwidm.de bzw. login.bwidm.de

Im Kontext von Helmholtz-AAI: fels.scc.kit.edu

Helmholtz AAI Login
Login Helmholtz-AAI
Registrierungsportal für Dienste
bwIDM-Registrierungsportal
Adminoberfläche der RegApp
Statistikdaten aus der Administrationsoberfläche der RegApp