Förderjahr 2016 / Projekt Call #11 / ProjektID: 1909 / Projekt: fairlogin
Das von der netidee geförderte Projekt fairlogin ist abgeschlossen, dennoch haben wir uns noch viel vorgenommen, um das System weiter zu optimieren und weitere Anwendungen anzubinden.
Die netidee Förderung hat uns gut voran gebracht, wir haben ein Produktivsystem mit zahlreichen angeschlossenen Clients, die wir unter unserer Webseite fairapps.net anschaulich aufbereitet haben.
Projektziel von fairlogin war die Etablierung eines Single-Sign-On Serviceangebotes und die Dokumentation, wie man einen solchen aufbaut. fairlogin verwendet LDAP als User Store und einen Identity Provider, der über OAuth2, SAML2 oder kerberos den SSO-Dienst zur Authentifizierung von NutzerInnen und die Verwaltung von Gruppenrechten anbietet. Wir haben nach der Entwicklung von Use Cases zunächst einen Satz gängiger Open Source Cloud-Dienste, welche von NGOs, die von der fairkom betreut werden genutzt werden, an fairlogin angebunden. Diese hatten unterschiedliche Authentifizierungsprotokolle, wie OpenLDAP bzw. OAuth2 und OpenID Connect. Dazu wurde die Authentifizieurngsmaske von keycloak angepasst und in einem Wiki die Technik beschrieben. Unser Identity Provider kann ebenso andere ID Provider einbinden, womit NGOs untereinander Vertrauensverhältnisse aufbauen können und die NutzerInnen es vermeiden können, bei jeder NGO ein Passwort hinterlegen zu müssen. Damit haben wir den Grundstein für eine Föderierung von Identity Diensten sowohl für die Zivilgesellschaft, aber auch für andere Sektoren geliefert.
Der Umfang des Projekts war uns anfangs nicht annähernd klar. Technologisch gab es zwar schon viele Projekte auf die man aufbauen konnte, jedoch zeigte sich schnell, dass diese alle sehr unterschiedliche Ausgangspunkte in der Implementation hatten und die Protokolle oft noch nicht von den Produktivversionen der Anwendungen unterstützt wurden, die wir und unsere Communties einsetzen. Daher werden wir noch einige Zeit damit beschäftigt sein, sowohl bestehende Integrationen zu optimieren also auch Plugins voranzutreiben, um weiter Applikationen sowohl mit SSO über OIDC und SAML2 auszuweiten als auch die Berechtigungskonzepte umzusetzen. Erst wenn sich hier in der Praxis besser anwendbare Konzepte in den IdP Lösungen etabliert haben, können wir diese Berechtigungskonzepte auch für unseren internen Gebrauch also auch für die Föderation sinnvoll einsetzen. Daher wird fairlogin auf absehbare Zeit weiterentwickelt und angepasst werden, damit ein zuverlässiges Netz an Federated Identity Netzwerke im Nachhaltigkeitsumfeld den Mehrwert bietet, den wir uns erhoffen.
Der Aufbau einer sauberen Testumgebung, war auf Grund eines kleinen Teams schwierig. Für jede Änderung müsste eigentlich von einem Team an EntwicklerInnenn Tests auf einer umfassenden Infrastruktur durchgeführt werden. Dies wollen wir durch die Migration auf eine Docker basierte Containerlösung erreichen. Der Code von unserem Dashboard und die Einrichtungshinweise von KeyCloak sind öffentlich zugänglich. Sie werden während der Integrationsarbeit von Anwendungen und Identity Providern stetig erweitert und angepasst. Die dabei errungenen Erkenntnisse und Herausforderungen werden wir auf einschlägigen Veranstaltungen und in der Community der Identity Provider thematisieren, um Zukünftig leichter Integrationen durchführen zu können.
Eine wesentliche Weiterentwicklungsmöglichkeit ist die konzeptionelle Ausarbeitung von Rollen, Berechtigungen und Zugehörigkeiten über diverse Services zu implementieren. BenutzerInnen werden von einem Haupt IdP verwaltet, der Stammdaten und das Passwort des Users verwaltet. Die Dienste sollten von Service Providern verwaltet, in denen die Berechtigungen der Anwendungen abgebildet werden. Diese Berechtigungen sollten dabei auf der Seite der Service Provider in Rollen zusammengefasst werden können. Oft macht es Sinn, diese auch in Hierarchien zu organisieren. Rollen könne aber auch im IdP verwendet werden, um die organisatorische Struktur abzubilden. Interessant wird hier besonders die Zuordnung der organisatorischen Rollen eines IdP zu Berechtigungsrollen eines anderen föderierten Service Providers.
Wir hoffen, dies in naher Zukunft, vielleicht auch mit weiteren PartnerInnen umsetzen zu können.