iX 4/2018
S. 114
Praxis
Identitätsmanagement
Aufmacherbild

Benutzer im Container an einem zentralen IdM identifizieren

Geschützter Durchblick

Zwar unterscheiden sich Identity-Management-Ansätze für Container-Infrastrukturen nicht grundlegend von Setups klassischer Systeme. Dennoch gilt es, einige Besonderheiten zu beachten.

Grundsätzlich sollte man erst einmal definieren, welche Anforderungen an ein Identity-Management (IdM) in einer Container-Landschaft existieren und welche Komponenten zu berücksichtigen sind. Damit ist die Frage gemeint, welche Komponenten im Container-Umfeld überhaupt auf ein IdM-System zugreifen müssen und welche Methoden zum Authentifizieren von Benutzern dabei zum Einsatz kommen sollen.

Da wäre zum einen das Host-System, auf dem die Container aktiv sind. Das besteht meistens aus einer abgespeckten Linux-Distribution, die faktisch nur dazu dient, eine Laufzeitumgebung für die Container zur Verfügung zu stellen. Das Ganze gepaart mit einem Orchestrierungs-Framework und einigen Management-Tools für die Container – und das war es auch schon. Tools aus dem IdM-Bereich bringt das Host-System oft gar nicht mit, da es ja möglichst schlank bleiben soll. Die üblicherweise in einem Host-System enthaltenen Anwendungen lagert man in Container aus. Typische Beispiele finden sich im Bereich Monitoring, Backup oder eben beim Identity-Management.

Weitere zu betrachtende Komponenten wären da die Container und die darin laufenden Applikationen. Sie nutzen zumeist ein schlankes Betriebssystem-Image, das die benötigten Runtimes zum Betrieb einer Applikation zur Verfügung stellt, und natürlich die Anwendung selbst. Zusätzliche Software, etwa zum Zugreifen auf die Dienste eines IdM-Systems, fehlen oft in den Container-Images.

Standardmodell Active Directory

In den meisten Umgebungen dürfte das zentrale IdM-System ein Active Directory (AD) sein. Wie man das mit dem im weiteren Artikel vorgestellten Ansatz kombiniert, folgt weiter unten im Artikel. An dieser Stelle betrachtet der Text zunächst einen anderen freien Ansatz: das Open-Source-Framework FreeIPA [1–3]. Eine typische Anforderung dürfte darin bestehen, dass Benutzer aus einem Verzeichnisdienst Zugriff auf die Container-Plattform erhalten. Weiter wäre es wünschenswert, man könnte aus dem Container heraus auf das IdM-System zugreifen.

Neben dem Authentifizieren der Benutzer ist deren Autorisierung von Interesse. Auch ist zu beachten, dass Benutzer üblicherweise aus einem einheitlichen Namespace stammen. Eventuell möchte man nun aber, beispielsweise für eine Webanwendung innerhalb eines Containers, auf unterschiedliche Namespaces zurückgreifen. Das erfordert den Einsatz föderierter Identitäten. Eine weitere potenzielle Anforderung könnte das Mapping von Identitäten sein, sodass die IDs auf dem Host sich von denen im Container unterscheiden.

Zwar unterstützt die Docker-Engine seit der Version 1.10 für ein solches Mapping User-Namespaces, allerdings heißt das noch lange nicht, dass dies für sämtliche Komponenten gilt, die in einem größeren IdM-Framework zum Einsatz kommen. Somit lassen sich beispielsweise nicht in jedem Fall die POSIX-Benutzer zwischen dem Host-System und den Containern getrennt voneinander betrachten. Auch die vorgesehenen Authentifizierungsmethoden sollte man an dieser Stelle berücksichtigen.