Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.

Link zu der Vergleichsansicht

Beide Seiten, vorherige Überarbeitung Vorherige Überarbeitung
Nächste Überarbeitung
Vorherige Überarbeitung
virtualisierung:proxmox_kvm_und_lxc:openid_keycloak_anbindung_proxmox [2024/03/14 10:55] lomavirtualisierung:proxmox_kvm_und_lxc:openid_keycloak_anbindung_proxmox [2024/03/14 13:55] (aktuell) loma
Zeile 11: Zeile 11:
  
  
-Die folgende Dokumentation zeigt die Keycloakanbindung von Proxmox inkl. Login berechtigten Gruppen. Als Backend wird [[https://www.univention.com/|LDAP von UCS (Univention)]] verwendet. Für das ganze Vorhaben wird eine ähnliche funktionierende Umgebung voraus gesetzt. +Die folgende Dokumentation zeigt die Keycloakanbindung von Proxmox inkl. Login berechtigten Gruppen. Als Backend wird [[https://www.univention.com/|LDAP von UCS (Univention)]] verwendet. Für das ganze Vorhaben wird eine ähnlich funktionierende Umgebung voraus gesetzt. 
  
 __Verwendete Systeme/Software:__ __Verwendete Systeme/Software:__
Zeile 45: Zeile 45:
 \\ \\
 \\ \\
-Für unser späteres Vorhaben nur bestimmte Gruppen zu zulasssen, müssen nach dem "Speichern" noch zwei weitere Optionen unter "Einstellungen" aktiviert werden. Dies schaltet weitere Funktionen frei. \\+Für unser späteres Vorhaben "nur bestimmte Gruppen zu zulasssen", müssen nach dem "Speichern" noch zwei weitere Optionen unter **"Einstellungen"** aktiviert werden. Dies schaltet weitere Funktionen frei. \\
 \\ \\
 {{:virtualisierung:proxmox_kvm_und_lxc:05.png?direct&600|}} {{:virtualisierung:proxmox_kvm_und_lxc:05.png?direct&600|}}
Zeile 52: Zeile 52:
  
 ===== Konfiguration OpenID auf Proxmox ===== ===== Konfiguration OpenID auf Proxmox =====
-Hier bedient man sich am besten der CMD. Bevor man dies tut muss man sich aber noch das "Client Secret" kopieren. \\+Hier bedient man sich am besten der CMD. Bevor man dies tut muss man sich aber noch das **"Client Secret"** kopieren. \\
 \\ \\
 {{:virtualisierung:proxmox_kvm_und_lxc:06.png?direct&400|}} {{:virtualisierung:proxmox_kvm_und_lxc:06.png?direct&400|}}
Zeile 68: Zeile 68:
  
 ===== Einschränkung auf Gruppen ===== ===== Einschränkung auf Gruppen =====
 +Um überhaupt zu den LDAP-Gruppen zu kommen, muss ein **"group-ldap-mapper"** hinzugefügt werden. Hierzu wechselt man im Menü von Keycloak auf **"User federation"** und bearbeitet den **"ldap-provider"**.  
 +Im TAB Mappers, fügt man nun den **"group-ldap-mapper"** hinzu. \\
  
 +{{:virtualisierung:proxmox_kvm_und_lxc:07.png?direct&600|}}
 +\\
 +\\
 +Der Inhalt wurde auf einen Default UCS-LDAP angepasst. 
 +
 +^ Attributbeschreibung                  ^ Attributname                                                              ^ Info                                                      ^
 +| ID                                    | auto generiert                                                            |                                                           |
 +| Name                                  | group-ldap-mapper                                                                                                                   |
 +| Mapper type                           | group-ldap-mapper                                                                                                                   |
 +| LDAP Groups DN                        | cn=tux-groups,cn=groups,dc=tux,dc=lan                                     | Beispiel                                                  |
 +| Group Name LDAP Attribute             | cn                                                                        |                                                           |
 +| Group Object Classes                  | posixGroup                                                                |                                                           |
 +| Preserve Group Inheritance            | OFF                                                                                                                                 |
 +| Ignore Missing Groups                 | OFF                                                                                                                                 |
 +| Membership LDAP Attribute             | memberUid                                                                                                                           |
 +| Membership Attribute Type             | UID                                                                                                                                 |
 +| Membership User LDAP Attribute        | uid                                                                                                                                 |
 +| LDAP Filter                           | (&(uid=%s)(memberof=cn=proximoxi,cn=tux-groups,cn=groups,dc=tux,dc=lan))  | Kann verwendet werden \\ um noch granularer zu werden.       |
 +| Mode                                  | READ_ONLY                                                                                                                           |
 +| User Groups Retrieve Strategy         | LOAD_GROUPS_BY_MEMBER_ATTRIBUTE                                                                                                     |
 +| Member-Of LDAP Attribute              | memberOf                                                                  |                                                           |
 +| Mapped Group Attributes                                                                                                                                                   |
 +| Drop non-existing groups during sync  | OFF                                                                                                                                 |
 +| Groups Path                           | /                                                                         | Dies zu Ändern macht \\ bei vielen Gruppen vielleicht Sinn.  |
 +Danach **"Speichern"**, nochmal einsteigen und rechts oben auf **"Aktion -> Sync LDAP groups to Keycloak"** anklicken. Damit sollte eine grüne Infomeldung aufpoppen wo die gesyncten Gruppen angezeigt werden. Damit sind unter **"Gruppen"** nun auch alle Gruppen und Groupmembers in Keycloak ersichtlich. \\
 +
 +{{:virtualisierung:proxmox_kvm_und_lxc:08.png?direct&400|}}
 +\\
 +\\
 +==== Userimport und automatischer Sync in Echtzeit (optional) ====
 +Dieser Schritt muss nicht durchgeführt werden. Keycloak schaut auch jedes mal gerne am LDAP Live nach welche Benutzer es gibt. Aus Performancegründe macht es bei größeren Installationen Sinn die Benutzer direkt in die lokal MariaDB zu syncen. Hier zu bearbeitet man wieder den **"ldap-provider"** und aktiviert bei **"Synchronization settings"** das Flag bei **Import users**. Danach einmal abspeichern. 
 +\\
 +{{:virtualisierung:proxmox_kvm_und_lxc:09.png?direct&200|}}
 +\\
 +Jetzt hat man in der rechten oberen Ecke unter **"Aktion"** eine neue freigechaltete Funktion: **"Sync all users"**. Hier sollte wiedermals eine grüne Infomeldung aufpoppen wo die gesyncten Benutzer angezeigt werden. Nach dieser Aktion möchte man auch noch den Livesync der User und Gruppenmitgliedschaften aktivieren. Hierzu noch das folgende Flag auf "On" schalten. 
 +\\
 +{{:virtualisierung:proxmox_kvm_und_lxc:10.png?direct&200|}}
 +\\
 +Beim Speichern der Einstellungen deaktiviert sich dieses Flag wieder. ...scheint aber zu funktionieren, weil die richtigen Info's in Keycloak angezeigt werden.
 +
 +==== Einrichtung der Authorization im proxmox-cluster01 Client  ====
 +Als erstes muss im Client die "Default Policy gelöscht werden"
 +\\
 +{{:virtualisierung:proxmox_kvm_und_lxc:11.png?direct&600|}}
 +\\
 +Nun fügen wir eine neue Group-Policy hinzu. 
 +\\
 +{{:virtualisierung:proxmox_kvm_und_lxc:12.png?direct&500|}} \\ \\
 +{{:virtualisierung:proxmox_kvm_und_lxc:13.png?direct&500|}} \\ \\
 +
 +<WRAP center round info 60%>
 +Die folgenden zwei Gruppen "testgruppebla" und "gitlab" sollen also berechtigt sein sich auf dem Cluster einloggen zu können.
 +</WRAP>
 +Im nächsten Schritt fügen wir nun noch die Berechtigungen hinzu. \\ \\
 +{{:virtualisierung:proxmox_kvm_und_lxc:14.png?direct&500|}}
 +\\
 +\\
 +{{:virtualisierung:proxmox_kvm_und_lxc:15.png?direct&500|}}
 +
 +==== Benutzer Evaluierung ====
 +Ein ganz bequemes Werkzeug ist die Benutzer Evaluierung. Dies befindet sich auch in der Clientkonfiguration direkt neben Berechtigungen. Damit ist es möglich Benutzerrechte live zu testen. Da Keycloak einen Cache betreibt, ist das Werzeug nicht mehr weg zu denken. 
 +\\
 +\\
 +{{:virtualisierung:proxmox_kvm_und_lxc:16.png?direct&500|}}
 +\\
 +\\
 +Hier kann man sehr gut erkennen das der Benutzer "harald" nicht darf. Sehr gut. Wie sieht es nun aus wenn wir den Benutzer Harald in die Gruppe "gitlab" werfen?
 +\\
 +{{:virtualisierung:proxmox_kvm_und_lxc:18.png?direct&500|}}
 +\\
 +\\
 +Und schon darf er sich einloggen. 8-)
 +\\
 +Wie man sieht ist mit Keycloak/UCS/Proxmox schon einiges möglich. Und damit wäre die Konfiguration auch schon abgeschlossen. 
 +
 +===== Automatisch delegierte Berechtigungen über eine LDAP-Gruppe =====
 +<WRAP center round todo 60%>
 +Damit müssen keine Berechtigungen mehr dem Benutzern in Proxmox manuell zugewiesen werden.
 +</WRAP>
 +FIXME
 +https://lists.proxmox.com/pipermail/pve-devel/2024-February/061760.html 
 +FIXME