ADMIN

2022

08

2022-07-28T12:00:00

Verzeichnisdienste und Benutzermanagement

TESTS

020

Benutzermanagement

Identitätsmanagement

Ory Cloud

Who is who

von Dr. Holger Reibold

Veröffentlicht in Ausgabe 08/2022 - TESTS

Identitäten sind eine entscheidende Sicherheitskomponente aller modernen IT-Umgebungen. Deren Verwaltung ist so komplex, dass das Identity- und Access-Management mittlerweile eine eigene IT-Disziplin mit spezialisierten Herstellern darstellt. Ory Cloud baut seine Identitätsplattform aus Open-Source-Modulen und zeigt ihre Stärken beim Identitätsmanagement und dem Einsatz von Social Sign-ins. Allerdings kommen Admins nicht um Eigenentwicklung vor dem Produktiveinsatz herum.

Identity- und Access-Management (IAM) ist ein organisatorischer Prozess, der der angemessenen Zugriffssteuerung auf Ressourcen in einer IT-Infrastruktur dient. Die zentralen Aufgaben sind die Identifizierung, die Authentifizierung und die Autorisierung einer oder mehrerer Personen für den Zugriff auf Anwendungen, Systeme oder Netzwerke. Im Kern geht es darum, mithilfe von IAM-Systemen Richtlinien zu entwickeln, zu etablieren und durchzusetzen, die festlegen, welche Geräte und Nutzer in einem Netzwerk wozu Zugang haben und was der Anwender in Abhängigkeit von seinem Gerätetyp, Ort und weiteren Faktoren mit diesen Ressourcen anstellen darf.
Umfassendes IAM-Ökosystem
Ory ist ein Unternehmen mit Sitz in München und wurde 2015 gegründet. Obwohl sich ein US-amerikanischer Firmensitz im Impressum findet, ist die Unternehmenszentrale in der bayerischen Metropole beheimatet. Das gleichnamige Produkt ist eine Open-Source-Identitätsplattform, die "Cloud Application Defense" und andere Sicherheitswerkzeuge anbietet. Die praktische Nutzung erfordert jedoch die Bereitschaft zur Implementierung eigener Zugriffsschnittstellen, was einen gewissen Programmieraufwand bedeutet. Alles in allem bietet Ory ein quelloffenes Ökosystem mit vier zentralen Bausteinen, die für die Implementierung von typischen Zugriffsszenarien konzipiert sind:
- Ory Kratos als Server zur Identitätsverwaltung.
Identity- und Access-Management (IAM) ist ein organisatorischer Prozess, der der angemessenen Zugriffssteuerung auf Ressourcen in einer IT-Infrastruktur dient. Die zentralen Aufgaben sind die Identifizierung, die Authentifizierung und die Autorisierung einer oder mehrerer Personen für den Zugriff auf Anwendungen, Systeme oder Netzwerke. Im Kern geht es darum, mithilfe von IAM-Systemen Richtlinien zu entwickeln, zu etablieren und durchzusetzen, die festlegen, welche Geräte und Nutzer in einem Netzwerk wozu Zugang haben und was der Anwender in Abhängigkeit von seinem Gerätetyp, Ort und weiteren Faktoren mit diesen Ressourcen anstellen darf.
Umfassendes IAM-Ökosystem
Ory ist ein Unternehmen mit Sitz in München und wurde 2015 gegründet. Obwohl sich ein US-amerikanischer Firmensitz im Impressum findet, ist die Unternehmenszentrale in der bayerischen Metropole beheimatet. Das gleichnamige Produkt ist eine Open-Source-Identitätsplattform, die "Cloud Application Defense" und andere Sicherheitswerkzeuge anbietet. Die praktische Nutzung erfordert jedoch die Bereitschaft zur Implementierung eigener Zugriffsschnittstellen, was einen gewissen Programmieraufwand bedeutet. Alles in allem bietet Ory ein quelloffenes Ökosystem mit vier zentralen Bausteinen, die für die Implementierung von typischen Zugriffsszenarien konzipiert sind:
- Ory Kratos als Server zur Identitätsverwaltung.
- Ory Hydra als OAuth-2.0- und Open-ID-Connect-Provider.
- Ory Oathkeeper ist ein Identitäts- und Zugriffsproxy.
- Ory Keto als Zugriffskontrollserver.
Grundsätzlich lässt sich jedes Modul eigenständig betreiben, doch erst im Zusammenspiel entfaltet das System sein ganzes Potenzial. Angesichts der hohen Dynamiken bei der Entwicklung von neuen Techniken wird es bei bestehenden Anwendungen immer schwieriger, diese um entsprechende Zugriffsmöglichkeiten zu erweitern. Ory Cloud verspricht die Lösung für dieses Problem durch die Entkoppelung von Zugriff und Applikationsnutzung.
Die Module im Zusammenspiel
Mithilfe des Identitätsmanagement-Servers Ory Kratos setzen IT-Verantwortliche die Benutzerverwaltung sowie die Anmeldungs- und Registrierungsprozeduren um. Die Software implementiert alle gängigen Abläufe wie An- und Abmeldung, Kontoaktivierung, Multifaktor-Authentifizierung (MFA), Profil- und Sitzungsverwaltung, benutzerseitige Fehlerbehebung und Kontowiederherstellungsmethoden.
Kratos erlaubt, jede beliebige Anmeldeprozedur zu verwenden und dabei auf beliebige Sprachen oder Frameworks zurückzugreifen. Der zentrale Vorteil: IT-Verant- wortliche müssen sich keine Gedanken über die DSGVO, die Adressverifizierung oder den Schutz der Benutzerdaten vor gängigen und sich häufig ändernden Angriffsvektoren machen. Kratos setzt auf Sicherheitsstandards des National Institute of Sciences (NIST), der Internet Engineering Task Force (IETF), Microsoft, Google Research und anderer. Auch bei der Gestaltung der Benutzererfahrung bestehen keine Restriktionen und es lassen sich benutzerdefinierte Abläufe implementieren.
Das Modul Hydra ermöglicht das Zusammenspiel mit Identity Providern, die auf OAuth 2.0 und OpenID Connect basieren. Während OAuth der Delegation des Zugriffs dient, handelt es sich bei OpenID Connect um die dritte Generation der OpenID-Technologien für die dezentrale Authentifizierung. Allerdings ist Hydra kein Identitätsmanagementsystem, sondern vielmehr stellt es die Verbindung zu einem bestehenden Identitätsmanagement her. Dabei kann es sich beispielsweise um eine typische MySQL-PHP-basierte Anmeldefunktion oder einen Federated-SAML-SSO-Zugriff handeln. Für die eigentliche Zugriffskontrolle ist Oathkeeper zuständig. Greifen die Benutzer beispielsweise über eine React/Angular-App und eine REST-API auf eine Anwendung zu, müssen Unternehmen die Benutzer authentifizieren und überprüfen, ob diese über die erforderlichen Berechtigungen verfügen. Oathkeeper definiert die Zugriffsregeln für API-Endpunkte.
Hinter Keto verbirgt sich der Zugriffskontrollserver. Dieser kommt dann ins Spiel, wenn ein einfaches Berechtigungssystem nicht mehr ausreicht, das die Standardrollen "anonyme Benutzer" "authentifizierte Benutzer" und "Administratoren" umfasst, sondern auch die komplexe Zugriffssteuerung gefragt ist. Beispiele hierfür sind Berechtigungen, die auf der Organisation des Benutzers, der Zugriffszeit, dem Standort oder einem Abrechnungsplan basieren.
Bekannte Cloudanbieter wie Amazon Web Services oder Google lösen dieses Problem mit sogenannten Access Control Policies. Derlei Konstrukte stellt auch Ory zur Verfügung, um komplexe Zugriffssteuerungsszenarien abzubilden. Keto ist in der Lage, verschiedene Arten von Anmeldeinformationen zu authentifizieren, beispielsweise OAuth-2.0-Zugriffstoken, SAML-Zusicherungen und JSON-Webtoken. Außerdem sind Zugriffskontrollrichtlinien definierbar – immer abhängig von den Möglichkeiten, die ein möglicher Endpunkt unterstützt.
Ory Cloud
Produkt
Identity- und Access-Management-Software.
Hersteller
Ory
Preis
Die Entwickler-Edition ist kostenlos, die Start-up-Edition steht ab 18 US-Dollar/Monat zur Verfügung. Hier behält sich der Anbieter vor, dem Kunden Ressourcen zu kürzen, wenn er diese durch API-Zugriffe oder Anfragen über ein nicht näher benanntes Maximum nutzt. Zudem läuft dieses Einführungsangebot am 1. September aus und Ory nannte uns keinen danach gültigen Preis. Noch offen sind die Preise für Growth- und Enterprise-Lizenzen.
Systemanforderungen
Im lokalen Betrieb für die Ory-CLI: 64-Bit-Prozessor, 16 GByte RAM, Betriebssystem: macOS, Linux, Windows, Docker.
Bei Bedarf PostgreSQL-Datenbank für Ory Hydra.
Technische Daten
Bild 1: Gut gelöst: Die Ory-Konsole erlaubt den einfachen Zugriff auf die Funktionen von Ory Cloud.
Komfortables IAM via Konsole
Die vorgestellten Module bilden die Basis für Ory Cloud. Dieses verspricht einen globalen Service mit geringer Latenz, hoher Ausfallsicherheit und Sicherheit. Ory Cloud ist letztendlich die bequemste Art, Ory zu betreiben. Der Zugriff erfolgt über die URL "https://console.ory.sh", wo auch ein Entwicklerkonto verfügbar ist, um die Umgebung kennenzulernen.
Ory Cloud verwendet eine Vielzahl von Komponenten – einige basieren auf Open-Source-Projekten, andere sind proprietär. Für die Verwaltung von Ory Cloud nutzten wir die "Ory Console", eine webbasierte Konsole für das Anzeigen und Suchen von Identitäten und die Verwaltung von Usersessions. Bequem gestaltete sich im Test die Arbeit: In Dashboard-Manier konnten wir verschiedene Anpassungen an der Umgebung vornehmen. Die Konsole implementiert Dialoge für die Anmeldung, die Registrierung, die Kontowiederherstellung, -einstellung und -überprüfung. Damit vereinfacht sich die Übernahme in das Zugriffsmanagementsystem. Die Entwickler stellen außerdem das API zur Verfügung, sodass sich auch eigene Interfaces entwickeln lassen.
In die Ory Cloud ist auch Kratos integriert, das umfangreiche Funktionen für die Gestaltung von Identity- und Session-Services bietet. Die Entwicklungsarbeit vereinfacht sich insbesondere mit den sogenannten Self-Service-Flows, mit denen wir folgende Funktionen ohne Programmieraufwand realisieren konnten:
- Registrierungs- und Login-Formular mit Passwörtern, Social Sign-in, Open-ID Connect et cetera.
- Aktualisieren des Profils, der E-Mail-Adresse, Ändern des Passworts, Aufheben/Verknüpfen mit Social Sign-in.
- Wiederherstellen des Kontos durch Zurücksetzen des Passworts.
- Überprüfung von E-Mail-Adressen, Telefonnummern und so weiter.
- Multifaktor-Authentifizierungsabläufe und Wiederherstellungsprozesse.
- Administratives Identitätsmanagement zum Abrufen, Erstellen, Aktualisieren, Löschen von Identitäten (Benutzern) und deren Daten.
Mit Headless-APIs und Datenmodellen lassen sich außerdem Identitätsschemata vollständig anpassen (zum Beispiel Felder wie Vorname, Akzeptieren, Versandadresse, Geschlecht und so weiter) und eigene Anmelde-, Registrierungs-, Profileinstellungen, Wiederherstellungs- und Verifizierungsbildschirme erstellen.
Bild 2: Social Sign-in lässt sich in einem Ory-Projekt komfortabel über die Webkonsole einrichten.
Eigenentwicklung  unvermeidlich
Für die Anpassung an die eigene Umgebung führt bei Ory Cloud kein Weg an Entwicklungsarbeiten vorbei. Dafür stand uns mit der Ory-CLI ein benutzerfreundliches Tool zur Verfügung, mit dem wir Ory-Cloud-Projekte verwalten und konfigurieren konnten. Die Konsole setzt auf integrierte Proxy- und Tunneling-Mechanismen, um den Anwendungsdatenverkehr sicher an die entsprechenden Endpunkte weiterzuleiten. Verschiedene Besonderheiten vereinfachen die Arbeit mit Ory Cloud: Wir hatten die Möglichkeit, Konfigurationen zu exportieren, um unser Setup auf einer selbst gehosteten Umgebung in der Ory Cloud (oder umgekehrt) auszuführen.
Die Ory-CLI lässt sich auf einem Standardrechner mit Linux oder Windows einsetzen. Die CLI steht aber auch in Docker zur Verfügung und ließ sich auch hier leicht in Betrieb nehmen. Dabei ist allerdings zu beachten, dass hier Ory Proxy und Ory Tunnel nicht zur Verfügung stehen.
Während der Umgang mit der Konsole für Admins keine Herausforderung darstellen sollte, sind für die Konfiguration von Ory Cloud Grundkenntnisse in Go notwendig. Die Entwicklungsarbeit vereinfacht sich jedoch dadurch, dass alle Ory-Komponenten ein identisches Konfigurationsformat und die gleichen APIs verwenden.
Gute Integration von Social Sign-ins
Besonderer Beliebtheit bei den verschiedensten Login-Prozeduren erfreuen sich Social Sign-ins. Dabei handelt es sich um eine SSO-Variante, die sich die Identitäten und Zugriffsfunktionen von Social-Media-Anbietern zunutze macht. Verschiedene Studien zeigen, dass Nutzer diese Login-Variante gegenüber traditionellen Registrierungsprozessen präferieren.
Ein weiterer Pluspunkt: Da Social Sign-ins in der Regel auf OAuth 2.0 und Open-ID Connect basieren, ist Ory für diese Aufgabe bestens gerüstet. Die Nutzung der entsprechenden Funktion gestaltete sich im Test einfach, da jeder Flow auf die Konfigurationsanforderungen des jeweiligen Identitätsanbieters abgestimmt ist. Grundsätzlich können IT-Verantwortliche hier auch die CLI verwenden, doch gestaltet sich die Arbeit mit der Webkonsole einfacher.
Mit der Anmeldung bei externen Identitätsanbietern gewähren Benutzer Ory Zugriff auf die Profildaten des Kontos, das der externe Identitätsanbieter verwaltet. Diese Daten dienen dazu, um eine Ory-Identität und ein Benutzerkonto in einer internen Anwendung zu erstellen.
Bild 3: Die produktive Nutzung von Ory ist anspruchsvoll und via CLI erfolgt die Entwicklung individueller IAM-Funktionen.
Zwei Wege zum produktiven Einsatz
Nachdem wir eine erste Identitätsapplikation entwickelt hatten, ging es im nächsten Schritt darum, diese einer ersten Evaluierung zu unterziehen. Dazu konnten wir zwei Wege einschlagen: den Ory Proxy verwenden oder einen DNS CNAME einrichten. Mit dem Ory-Proxy-Service stand uns eine bequeme Möglichkeit zur Verfügung, Projekte schnell in Produktion zu bringen. Für eine benutzerdefinierte Domäne mit Ory Cloud ist hingegen beim jeweiligen DNS-Anbieter ein entsprechender CNAME-Eintrag anzulegen.
Die CLI beinhaltet mit Ory Proxy und Ory Tunnel zwei wichtige Tools für die lokale Entwicklung beziehungsweise die Produktionsumgebung, wenn Sie keine benutzerdefinierte Domäne verwenden. Bevor wir diese Tools verwenden konnten, mussten wir das SDK unseres Ory-Cloud-Projekts exportieren. Dieses ließ sich einfach aus der Ory-Konsole entnehmen. Im Navigationsmenü mussten wir dann lediglich unter "General" den Menüeintrag "Connect" wählen und die URL aus dem Abschnitt "SDK Configuration" kopieren.
Bei Ory Proxy handelt es sich um einen Reverse-Proxy, der vor einer Anwendung bereitsteht. Er sorgt dafür, dass die Ory-Endpunkte in derselben Domäne wie die ausgeführte App gespiegelt werden. Der Proxy schreibt Cookies neu, damit sie mit der Domäne der Anwendung übereinstimmen. Damit ist sichergestellt, dass der Cookie-Ursprung zur Domäne passt. Dieses Konstrukt vermeidet etwaige Probleme mit der CORS-Richtlinie des Browsers. Der Proxyserver konvertiert außerdem die Sessions in JSON Web Tokens (JWTs). So ist eine ordnungsgemäße Konfiguration der Cookies und URLs sichergestellt.
Weiterhin von Bedeutung ist, dass die Anwendung und Ory auf der gleichen Domäne ausgeführt werden. So kann das System Anti-CSRF- und Ory-Session-Cookies verwalten. Bei selbst gehosteten Ory-Komponenten ist die Einstiegspunkt-URL auf die Domäne zu definieren. Die Konfiguration einer benutzerdefinierten Domain erfolgte über die Webkonsole – unter "General / Custom Domains" legten wir diese fest. Dies ist jedoch nur in den kommerziellen Varianten möglich.
So urteilt IT-Administrator
Bewertung
Access- und Identity-Management 9 Integrationsfähigkeit 7 Flexibilität 8 Sicherheit 8 Benutzerführung 7
Dieses Produkt eignet sich
optimal
für Unternehmen mit einem hohen Bedarf an verteilten IAM-Funktionen, die über programmiererfahrene Administratoren verfügen.
bedingt
für kleine und mittelständische Unternehmen, die auf Standard-IAM-Funktionen setzen.
nicht
für kleinere Unternehmen, die ein einfach zu handhabendes IAM suchen, das sich mit minimalem Aufwand in die bestehende Infrastruktur integriert.
Fazit
Ory Cloud will eine hochskalierbare Identity-Plattform sein, die vollständig auf Open Source basiert. Soweit es die Skalierbarkeit betrifft, wurde das Ziel voll erreicht. Das Konzept von Ory ist bewährt: Es verknüpft etablierte Open-Source-Entwicklungen auf eine neue Art und Weise, erweitert diese um spezifische Funktionen (vielfach Closed Source) und lässt sich genau diese Leistung honorieren. Mit Ory Cloud steht Unternehmen ein interessantes Werkzeug für die Entwicklung leistungsfähiger Access- und Identity-Strukturen zur Verfügung. Seine Stärken spielt Ory Cloud beim Zusammenspiel der verschiedenen Module aus. Gleichwohl verlangt sie dem Administrator eine gewisse Einarbeitungs- und Entwicklungszeit ab.
(jp)