Spacewalk-Benutzer über FreeIPA authentifizieren

Nach einer erfolgten Spacewalk-Installation erfolgt der Login erstmal über lokal definierte Benutzerkonten - Berechtigungen werden über lokale Zuordnungen vergeben. Insbesondere in größeren Systemlandschaften mit Anforderungen wie beispielsweise  Single Sign-On ist das eher impraktikabel.

Glücklicherweise unterstützen Spacewalk und Red Hat Satellite 5 die Authentifizierung über FreeIPA bzw. Red Hat Identity Management. Seit Spacewalk 2.3 bzw. Red Hat Satellite 5.7 gibt es mit spacewalk-setup-ipa-authentication ein Skript, welches die Konfiguration der einzelnen Komponenten (SSSD, Apache, Tomcat, SELinux) vollständig übernimmt. Vorher mussten die einzelnen Schritte manuell ausgeführt werden.

Vorbereitungen

Vorab muss innerhalb FreeIPA ein entsprechender Kerberos-Service unter Angabe des FQDNs des Spacewalk-Servers erstellt werden. Dies erfolgt über die FreeIPA Web-Oberfläche mit Klicks auf Identität > Dienste > Hinzufügen:

Erstellen eines Kerberos-Services in der FreeIPA Web-Oberfläche

Alternativ ist die Anpassung auch von einem registrierten System mit installiertem ipa-Kommando und dem Kerberos-Tickets eines Administrators möglich:

1# kinit admin
2# ipa service-add HTTP/spacewalk-fqdn

Anschließend empfiehlt es sich für die benötigten Accounts und deren Berechtigungen entsprechende Gruppen in FreeIPA anzulegen. Hierzu sind Klicks auf Identität > Benutzergruppen > Hinzufügen nötig. Spacewalk unterstützt die folgenden Rollen:

  • Administrative Rollen (systemweit)
    • Organisationsadministrator
    • Spacewalk-Administrator
  • Rollen
    • Aktivierungsschlüssel-Administrator (pro Organisation)
    • Konfigurationsadministrator (Client-Konfigurationsdateien)
    • Channel-Administrator
    • Systemgruppen-Administrator

Später werden die FreeIPA-Gruppen entsprechenden Rollen innerhalb Spacewalk zugewiesen. Je nach Einsatzszenario kann es sinnvoll mehrere Gruppen anzulegen - beispielsweise eine Gruppe für alle Spacewalk-weiten Administratoren:

Erstellen eines Benutzergruppe in der FreeIPA Web-Oberfläche

Alternativ gibt es hierfür auch wieder ein entsprechendes ipa-Kommando:

1# ipa group-add spacewalk-admins --desc "Spacewalk administrators"

Konfiguration

Auf dem Spacewalk-System wird nun die IPA-Authentifizierung konfiguriert:

 1# spacewalk-setup-ipa-authentication
 2Enabling authentication against [pinkepank.stankowic.loc].
 3Retrieving HTTP/ service keytab into [/etc/httpd/conf/http.keytab] ...
 4Keytab successfully retrieved and stored in: /etc/httpd/conf/http.keytab
 5changed ownership of `/etc/httpd/conf/http.keytab' to apache
 6Configuring PAM service [spacewalk].
 7Will install additional packages ...
 8
 9** /etc/sssd/sssd.conf has been backed up to sssd.conf-swsave
10Updated sssd configuration.
11Turning SELinux boolean [httpd_dbus_sssd] on ...
12        ... done.
13Turning SELinux boolean [allow_httpd_mod_auth_pam] on ...
14        ... done.
15Configuring Apache modules.
16** /etc/tomcat6/server.xml has been backed up to server.xml-swsave.ipa
17Stopping sssd: [  OK  ]
18Starting sssd: [  OK  ]
19Stopping tomcat6: [  OK  ]
20Starting tomcat6: [  OK  ]
21Stopping httpd: [  OK  ]
22Starting httpd: httpd: [  OK  ]
23Waiting for tomcat to be ready ...
24Authentication against [pinkepank.stankowic.loc] sucessfully enabled.
25As admin, at Admin > Users > External Authentication, select
26          Default organization to autopopulate new users into.

Anschließend muss noch konfiguriert werden, welcher Organization Benutzer angehören sollen, die sich noch nicht über FreeIPA in Spacewalk angemeldet haben. Hierzu sind Klicks in der Spacewalk-Oberfläche auf Admin > Benutzer > Externe Authentifizierung nötig.

Externe FreeIPA-Authentifizierung unter Spacewalk

Wenn die Organisationen innerhalb Spacewalk mit denen in FreeIPA übereinstimmen, kann der Haken "Von IPA weitergegebenen Namen von Organisationseinheit verwenden" aktiviert werden. Falls die Organisationen nicht übereinstimmen kann eine Standard-Organisation unter "Standardmäßige Organisation" konfiguriert werden. In jeden Fall muss der Haken "Aufgrund der externen Authentifizierungskonfiguration temporär gewährte Rollen bewahren" gesetzt sein, da ansonsten in FreeIPA definierte Gruppenzugehörigkeiten keine Rechtevergabe in Spacewalk auslösen.

Die jeweiligen Gruppenzugehörigkeiten werden im Reiter Group Role Mapping definiert:

Zuordnung von FreeIPA-Gruppe und Spacewalk-Rollen

Je nach Spacewalk-Patchlevel kann es notwendig sein, den Dienst neu zu starten, bevor die Authentifizierung funktioniert:

1# spacewalk-service restart

Erfolgreich über FreeIPA authentifizierter Spacewalk-Administrator

Übersetzungen: