Identity and Access Management: Schlüsseltechnologie für User-Portale

Unternehmenseigene User-Portale benötigen einige wichtige technologische Faktoren, damit sie erfolgreich sind. Erfolgreich heißt, dass sie von Kunden angenommen werden und sich dort eine aktive und loyale Community bildet, die Inhalte teilt, wächst und den Umsatz des Unternehmens langfristig steigert. Dies tun Kunden nur, wenn sie davon ausgehen können, dass ihre Daten sicher sind und wenn es ihnen leicht gemacht wird, sich in das User Portal und angeschlossene Kanäle einzuloggen. Die betreibende Organisation wiederum muss nicht nur die Sicherheit ihrer Kunden gewährleisten, sondern auch die eigenen Systeme nach aussen schützen.  

Ich möchte eine Schlüsseltechnologie vorstellen, die dafür entscheidend ist: Identity and Access Management (IAM). IAM nimmt eine zentrale Stellung in der technischen Infrastruktur von User-Portalen ein; es gibt aber einige weitere Bausteine, die hier nicht betrachtet werden. Das Aufsetzen eines User Portals und dessen Absicherung nach innen und außen sind komplex und alles andere als trivial.  

1. Identity and Access Management

Damit Du ein User Portal professionell betreiben kannst, benötigst Du ein IAM-System. IAM umfasst alle innerbetrieblichen Richtlinien und Tools, mit denen IT-Abteilungen Zugriffsrechte auf verschiedene Anwendungen und Systeme gewähren und digitale Entitäten verwalten. Solche Identitäten können entweder natürliche Personen oder technische Identitäten (Software, IoT-Hardware) sein. IAM-Systeme stellen damit ein wichtiges Element der Cybersicherheit dar, indem sie sicheren Zugriff auf die Unternehmensressourcen bereitstellen.

Die erste Hauptaufgabe eines IAM-Systems ist die Authentifizierung von Entitäten, sobald ein Nutzer Zugriff anfordert. Im simpelsten Fall werden Benutzername und Passwort mit der eigenen Datenbank abgeglichen. Mittlerweile werden aufgrund von Sicherheitsaspekten Multifaktorauthentifizierung und adaptive Authentifizierung verwendet.  

Die zweite IAM-Hauptaufgabe ist die Autorisierung der authentifizierten Entität. Die Zugriffsrechte der Entität werden überprüft und je nach zugewiesener Rolle wird ihr Zugriff auf die entsprechende Ressourcenebene gewährt.

Eine weitere Schlüsselfunktion von IAM-Systemen ist das Verwalten von Benutzeridentitäten, also das Erstellen, Bearbeiten und Löschen von Benutzern. Dazu können die Systeme mit Verzeichnissen wie z. B. Microsoft Active Directory synchronisiert werden. Benutzern werden gemäß vorher erstellten IAM-Richtlinien eine oder mehrere Rollen zugewiesen, mit denen bestimmte Rechte verbunden sind.

Single Sign-On ist nicht nur eine weitere IAM-Funktion, sondern ein komplettes Schlüsseltechnologieprinzip. Die mächtigsten IAM-Systeme bieten es mit an, es verdient  aber in meinen Augen, gesondert betrachtet zu werden.

2. Single Sign-On

Beim Single Sign-On (SSO) müssen sich Deine Endkunden nur einmal in Deinem User Portal oder auf einer anderen autorisierten Instanz authentifizieren, beispielsweise bei Gmail oder Facebook. Sobald diese externe Instanz dem User Portal ein erfolgreiches Log-in zurückmeldet, ist der User bei allen angeschlossenen Systemen wie Social-Media-Kanälen angemeldet. Dadurch wird das Customer Engagement deutlich erleichtert und die Customer Experience verbessert.    

Die einmalige Eingabe des Passworts spart Zeit und liefert zusätzliche Sicherheit, da sich der Kunde nur ein Passwort merken und auch nur ein Passwort übertragen werden muss. Da Anwender sich nur an einer einzigen Stelle authentifizieren müssen, kann diese besser gesichert und auf Korrektheit (URL, SSL-Serverzertifikat) überprüft werden. 

SSO ist zunächst ein übergeordnetes technisches Prinzip. Es gibt verschiedene Lösungsansätze für SSO. Bei der Medienlösung verwendet der User ein elektronisches Token (USB, Bluetooth), um sich authentifizieren zu lassen. Bei der lokalen Lösung installieren User auf ihrem regelmäßig benutzten Arbeitsplatz einen Client, der Anmeldemasken automatisch mit Benutzernamen und Passwort ausfüllt. Bei Verwendung eines Ticketing Systems für SSO wird ein Netz aus vertrauenswürdigen Diensten aufgebaut. Dem Nutzer wird bei der Anmeldung bei einem dieser Dienste ein Ticket als «vertrauensvoller Anwender» zugeordnet, dass ihn/sie für alle anderen Dienste des Netzes anmeldet. Bei der Portallösung schließlich meldet der Benutzer sich in einem Portal an und wird dort authentifiziert und pauschal autorisiert für jede Anwendung, die innerhalb des Portals integriert ist. Dies kann bei webbasierten Diensten zum Beispiel durch HTTP-Cookies erfolgen oder durch ein denzentrales Protokoll wie OpenID.

3. SSO via OpenID

OpenID ist ein dezentrales Authentifizierungssystem für webbasierte Dienste. Ein User, der sich bei einem OpenID-Provider einmal angemeldet hat, erhält eine URL-basierte Identität, die OpenID. Damit kann er sich bei allen Websites anmelden, die OpenID unterstützen. Da OpenID dezentral angelegt und ausschließlich als Open-Source-Software verfügbar ist, kann jeder mit relativ geringem Aufwand zum OpenID-Anbieter werden und einen OpenID-Server betreiben. Dies hat zur weiten Verbreitung von OpenID geführt, zu der kleine und mittelständische Anbieter genauso wie Big Tech beitragen.

Diese weltweite Verbreitung und Popularität von OpenID ist deren größter Vorzug, allerdings ist die dahinterliegende Technik gegenüber Phishing-Attacken anfällig. Daher wird es zunehmend von OAuth und OpenID Connect verdrängt, die mehr Möglichkeiten zur Sicherheitskonfiguration bieten.   

4. SSO via Realms

Ein “Realm” bezeichnet in der Informatik die Gesamtheit aller Einträge eines Verzeichnisses oder das Verzeichnis an sich innerhalb eines Verzeichnisdienstes wie Active Directory. Dies können alle menschlichen User und technischen Entitäten sein, die das IT-System eines Unternehmens benutzen, oder aber die Mitglieder eines User Portals. Werden solche Verzeichnisdienste als Ticketing System für SSO verwendet, so sagt das Realm der Anwendung, gegen welche Instanz eines Verzeichnisdienstes die Authentifizierung erfolgen soll. Es zeigt ihr, wo das angefragte Benutzerkonto liegt, für das ein SSO-Ticket angefordert werden soll.

Ein verteilter SSO-Authentifizierungsdienst für offene Computernetze wie das Internet, der mit Tickets und Realms arbeitet, ist Kerberos. 1978 am MIT entwickelt, lässt sich Kerberos zur sicheren Authentifizierung in TCP/IP-Netzwerken einsetzen. Passwörter müssen nicht mehr über das Netzwerk übertragen werden und werden durch Tickets ersetzt. Ein Kerberos-Server verwaltet nur Konten, die zu seinem Realm gehören; ein Rechner kann immer nur zu einem Realm gehören. Damit über Kerberos auf Dienste in anderen Realms zugegriffen werden kann, müssen Vertrauensstellungen zwischen den einzelnen Realms hergestellt werden. Kerberos ist seit der Windows-Server-Version 2000/2003 und der Client-Version Windows 2000/XP das Standardprotokoll von Microsoft zur SSO-Authentifizierung. Die Kerberos-Schlüssel werden in Active Directory gespeichert. Es gibt bereits Kerberos-Implementierungen für weitere Betriebssysteme wie macOS, Linux und FreeBSD.   

5. Permission Handling: Role Based Access Control

Sobald Dein User Portal weiterwächst, wird es zu aufwändig, unübersichtlich und damit fehleranfällig, jedem realen User direkt Rechte und Zugriff auf verschiedene Systeme zu geben. Für Mehrbenutzersysteme wie User Portale ist die Vergabe von Benutzerrollen sinnvoll, bei der die Rechte anhand von Arbeitsprozessen abstrahiert werden.

Als bestes Verfahren zur rollenbasierten Verwaltung von Benutzerrechten sowie zur Zugriffssteuerung und -kontrolle auf Dateien oder Dienste wird Role Based Access Control (RBAC) angesehen. RBAC wurde 1992 von Ferraiolo und Kuhn beschrieben, 2004 als ANSI-Norm verabschiedet und ist bei Microsoft Active Directory und SQL Server, SELInux, FreeBSD, Solaris, Oracle RDBMS, SAP R/3 und vielen weiteren Systemen in Anwendung. 

Zunächst werden jedem User eine oder mehrere Rollen zugeordnet. An jeder Rolle hängen eine oder mehrere Gruppenzugehörigkeiten. Rollen und Gruppenzugehörigkeiten entscheiden über die Zugriffsrechte eines Users. Lesen, Schreiben und Ausführen sind die häufigsten via RBAC kontrollierten Rechte. Zum Glück der Betreiber von User-Portalen und Online-Communities bleibt es aber nicht darauf beschränkt. Rechte wie Administrieren, Kuratieren, Teilen oder Mitglieder anlegen werden über die «normalen» Mitglieder einer Community hinaus auch den Moderatoren, Administratoren, Community Managern und anderen Anwendern des User Portals gerecht.  

Die Erstellung eines einheitlichen Nutzerrollenkonzepts ist die Voraussetzung für die Verwaltung der Zuordnungen, für die Identitätsmanagementsysteme implementiert werden. Diese Systeme gleichen regelmäßig die tatsächlich vorhandenen Gruppenzugehörigkeiten mit den Vorgaben des Nutzerrollenkonzepts ab und korrigieren bei Abweichungen, um Zugriffskonsistenz und Sicherheit zu garantieren. 

6. Open Source IAM: Keycloak

Es gibt sie tatsächlich: kostenlose und trotzdem mächtige IAM-Systeme. Eines davon möchte ich Dir gern kurz vorstellen, weil wir damit bei yawave gute Erfahrungen gemacht haben:  Keycloak. Keycloak läuft derzeit auf Apache License 2.0 und unterstützt drei Sicherheitsprotokolle: OpenID Connect, OAuth 2.0 und SAML 2.0. Es unterstützt nicht nur Single Sign-on, sondern auch Single Sign-Out und liefert dem Anwender als Admin Console eine komfortable, web-basierte GUI. Keycloak kann als eigenständiges IAM-System verwendet werden, weil es Dir erlaubt, Benutzerdatenbanken mit benutzerdefinierten Rollen und Gruppen zu erstellen. Diese Informationen können weiterverwendet werden, um Benutzer innerhalb Deiner Anwendung zu authentifizieren und Teile davon basierend auf vordefinierten Rollen zu sichern. Keycloak ermöglicht die Synchronisation mit Deiner User-Datenbank. Standardmäßig werden LDAP und Active Directory unterstützt, aber Du kannst eigene Erweiterungen für jede Benutzerdatenbank erstellen, indem Du die Keycloak User Storage API benutzt. Zusätzlich erlaubt Keycloak die Verwendung von Social Identity Providern. Es liefert out-of-the-box Unterstützung für Google, Twitter, Facebook und Stack Overflow, aber Du musst sie alle manuell über das Admin-Panel konfigurieren. Mit Keycloak kannst Du alle Seiten, die Deinen Benutzern angezeigt werden, individuell gestalten. Die Seiten sind im .ftl-Format angelegt, so dass Du klassische HTML-Markups und CSS-Styles verwenden kannst, um sie an Dein Brand und UX Design anzupassen. Du kannst sogar benutzerdefinierte JS-Skripte einfügen. Außerdem gibt es eine große und hilfsbereite Support Community.

Von Nachteil könnte die Entscheidung für Keycloak sein, wenn Du nur eine Einzelanwendung mit nur einem Client im Keycloak Realm betreibst – dann verlierst Du alle Vorteile von SSO. Wenn Du kein Social Login nutzt oder für Dein User Portal zulässt, könnte Keycloak auch nicht die richtige Wahl sein. Eine Verwendung als reine Benutzerdatenbank wird Keycloak ebenfalls nicht gerecht, da kannst Du besser eine Datenbank mit spezifischen Tabellen verwenden, die ist einfacher zu konfigurieren. Last, not least ist Keycloak ein Open-Source-Projekt. Wer nach einer Herstellergarantie oder individuellem 24h-Support sucht, ist da falsch.

Fazit​

Ohne Auswahl und Verwendung der passenden Schlüsseltechnologien und Verfahren wie IAM und RBAC wird Dein User Portal langfristig nicht erfolgreich sein. Es würde mich freuen, wenn dieser Artikel Dir ein paar Anhaltspunkte dazu liefern konnte, worauf Du dabei achten solltest.