Berechtigungen
In diesem Kapitel geht es um die Benutzer- und Gruppenverwaltung auf dem opsi-Server. Es erklärt, welche Accounts und Gruppen in der Voreinstellung mit administrativen Rechten ausgestattet sind und wie Sie eigene Konten für die Verwaltung des opsi-Servers anlegen. Außerdem erklärt das Kapitel, wie Sie einen opsi-Server in eine Windows-Domäne einbinden, wie Sie einen Verzeichnisdienst zur Authentifizierung nutzen und eine Zwei-Faktor-Authentifizierung für den Server einrichten.
Benutzer und Gruppen
opsi verwendet die folgenden Benutzer- und Gruppenaccounts:
-
opsiconfd
: ein Konto für den gleichnamigen Systemdienstopsiconfd
(siehe Kapitel Der Dienst opsiconfd); Account muss Mitglied der Gruppenopsiadmin
undopsifileadmins
sein -
pcpatch
: ein Account, den die opsi-Clients für den Zugriff via CIFS (Samba) auf das opsi-Depot verwenden; muss Mitglied in der Gruppeopsifileadmins
sein (siehe Abschnitt Passwort für Benutzer pcpatch)
Zum Verwalten lokaler Benutzer und Gruppena auf dem opsi-Server nutzen Sie die Linux-Standardwerkzeuge useradd , usermod , groupadd , groupmod usw. (siehe Abschnitt Admin-Account anlegen). Alternativ binden Sie den opsi-Configserver an eine bestehende Windows-Domäne (siehe Abschnitt opsi-Server in Windows-Domäne einbinden) oder an LDAP/Active Directory (siehe Abschnitt Authentifizierung gegen einen Verzeichnisdienst (LDAP/AD)) an.
|
Zum Steuern von Berechtigungen verwendet opsi die folgenden Gruppen:
-
opsiadmin
: Mitglieder dieser Gruppe können administrativ auf den opsi-Service zugreifen, das heißt, sie erhalten vollen Zugriff über die Management-Oberflächeopsi-configed
, das opsi-WebGUI, dieopsiconfd
-Admin-Seite usw. -
opsifileadmins
: Mitglieder dieser Gruppe können administrativ auf opsi-Dateien (Depot, Repository, Workbench) zugreifen. -
opsireadonly
: Mitglieder dieser Gruppe können nur lesend auf den opsi-Service zugreifen.
Den Namen dieser Gruppen können Sie in der Konfigurationsdatei /etc/opsi/opsi.conf
im Abschnitt groups
ändern:
[groups]
fileadmingroup = "opsifileadmins"
admingroup = "opsiadmin"
readonly = "opsireadonlys"
Admin-Account anlegen
Um lokale Benutzer und Gruppen auf dem opsi-Configserver anzulegen, nutzen Sie die Linux-Standardwerkzeuge. Das folgende Beispiel richtet einen neuen Benutzer namens adminuser
ein und fügt diesen dann den beiden Gruppen opsiadmin
und opsifileadmins
hinzu. Damit erhält der Benutzer dann vollen administrativen Zugriff auf den opsi-Server.
Bei der vorkonfigurierten virtuellen Maschine und in unserem Docker-Container gibt es den Account adminuser bereits. Sie können die hier gezeigten Schritte aber zum Hinzufügen weiterer Accounts verwenden.
|
Zuerst legen Sie das neue Konto über den Befehl useradd
an:
sudo useradd -m -s /bin/bash adminuser
Anschließend setzen Sie für den neuen Account ein Unix-Passwort (System):
sudo passwd adminuser
Soll der Benutzer auch Dateizugriff per CIFS (Samba) erhalten, setzen Sie dafür ebenfalls ein Passwort:
sudo smbpasswd -a adminuser
Verwenden Sie in den Passwörtern kein §-Zeichen! |
Als Nächstes fügen Sie den neuen Benutzer den Gruppen opsiadmin
und opsifileadmins
hinzu:
usermod -aG opsiadmin,opsifileadmins adminuser
Geben Sie den Befehl id
ein, um zu überprüfen, dass der Account adminuser
existiert und den beiden Gruppen angehört:
id adminuser
# uid=1000(adminuser) gid=1000(opsiadmin) groups=1000(opsiadmin),999(opsifileadmins)
Passwort für Benutzer pcpatch
Da die opsi-Clients diesen Account für die Authentifizierung verwenden, muss der opsi-Configserver das Passwort kennen. Zu diesem Zweck ist das Kennwort verschlüsselt in der Datei /etc/opsi/passwd
abgelegt. Bei der Installation eines opsi-Configservers wird automatisch ein Zufallskennwort gesetzt, das Sie in der Regel nicht ändern müssen.
Das Passwort können Sie mit dem Kommandozeilentool opsi-admin
ändern (siehe Abschnitt opsi-admin):
opsiconfd setup --set-depot-user-password
Nach dem Drücken der Taste [Eingabe] erscheint ein Passwort-Prompt, und Sie können das Kennwort eintippen.
Das Passwort wird zusätzlich für den lokalen Unix- und Samba-Account geändert. Handelt es sich um einen Domänen-Account, müssen Sie das neue Passwort dort ebenfalls von Hand neu setzen. |
opsi-Server in Windows-Domäne einbinden
Statt mit lokalen Unix- und Samba-Accounts zu arbeiten, können Sie einen opsi-Server auch in eine Windows- bzw. Samba-4-Domäne einbinden. Dazu legen Sie in der Domäne die beiden Gruppen opsiadmin
und opsifileadmins
an.
Wenn Sie die Gruppen anders nennen oder bestehende Gruppen verwenden möchten, dann ändern Sie die Namen auch in der Konfigurationsdatei /etc/opsi/opsi.conf entsprechend.
|
Außerdem legen Sie den Benutzer pcpatch
als Mitglied der Gruppe opsifileadmins
sowie den Benutzer opsiconfd
als Mitglied der Gruppen opsiadmin
und opsifileadmins
an.
Entfernen Sie dann die beiden Gruppen opsiadmin
und opsifileadmins
aus den lokalen Unix-Gruppen (Befehl groupdel
) und die lokalen Unix-Accounts opsiconfd
und pcpatch
(Befehl userdel
).
Nehmen Sie dann den opsi-Server in die Windows-Domäne auf. Schlagen Sie in der Dokumentation der eingesetzten Linux-Distribution nach, welche Schritte dazu jeweils erforderlich sind.
Nach dem Domain Join führen Sie die folgenden zwei Befehle aus:
opsiconfd setup
opsi-set-rights
Weitere Informationen zu den beiden Kommandos lesen Sie in den beiden Abschnitten opsiconfd setup und opsi-set-rights. |
Setzen Sie abschließend das Passwort für den Benutzer pcpatch
neu (siehe Abschnitt Passwort für Benutzer pcpatch).
Authentifizierung gegen einen Verzeichnisdienst (LDAP/AD)
In der Voreinstellung nutzt opsi PAM (Pluggable Authentication Modules) zu Authentifizierung für verschiedene Dienste und Anwendungen. Das funktioniert mit lokalen Benutzern und Gruppen, aber auch, wenn der opsi-Server in eine Domäne eingebunden ist. Alternativ können Sie dafür auch Verzeichnisdienste wie LDAP (Lightweight Directory Access Protocol) oder AD (Active Directory) einsetzen. In dem Fall speichert der Verzeichnisdienst Benutzerkonten, Gruppen und anderen Identitätsinformationen an zentraler Stelle und ermöglicht die Authentifizierung und Autorisierung von Benutzern über verschiedene Dienste und Anwendungen.
Die Samba-Authentifizierung ist davon unabhängig. Die in diesem Abschnitt vorgestellte Herangehensweise eignet sich daher hauptsächlich für opsi-Umgebungen, in denen die Administratoren nicht per Samba, sondern per WebDAV auf die opsi-Shares zugreifen. Beim Betrieb eines opsi-Servers unter Docker ist das immer der Fall. |
Um einen LDAP-Server bzw. ein Active Directory anstelle von PAM für die Authentifizierung zu nutzen, ist die opsi-Erweiterung opsi directory connector erforderlich. |
Konfiguration
Die Konfiguration findet über die Datei /etc/opsi/opsi.conf
im Abschnitt [ldap_auth]
statt. Egal, ob Sie opsi an AD/Samba 4 oder LDAP anbinden, in beiden Fällen definieren Sie die Adresse des Verzeichnisdienstes hinter ldap_url
. Die URL hat den folgenden Aufbau:
ldap[s]://<Adresse-des-LDAP-Servers>[:port]/<base-dn>
Außerdem können Sie hinter der Option bind_user
den Benutzername für die Authentifizierung am LDAP/AD definieren; die Platzhalter {username}
und {base}
sind dabei erlaubt. Im Normalfall ist die Angabe der ldap_url
jedoch ausreichend.
Beispiel zur Anbindung an ein Active Directory bzw. Samba 4:
[ldap_auth]
ldap_url = "ldaps://ad.company.de/dc=ad,dc=company,dc=de"
bind_user = "{username}@ad.company.de"
Beispiel zur Anbindung an einen OpenLDAP-Dienst:
[ldap_auth]
ldap_url = "ldaps://ldap.company.org:636/dc=company,dc=org"
bind_user = "uid={username},dc=Users,{base}"
Mit dem Kommando opsiconfd test ldap_auth können Sie die Verbindung zum LDAP-Server und unterschiedliche Konfigurationen einfach testen.
|
Nachdem Sie die Änderungen in der Konfigurationsdatei gespeichert haben, starten Sie den Dienst opsiconfd neu.
Beachten Sie, dass die hinter admingroup definierte Gruppe in der Datei /etc/opsi/opsi.conf auch im Verzeichnisdienst existieren muss.
|
Zwei-Faktor-Authentifizierung
Der opsi-Server unterstützt die Zwei-Faktor-Authentifizierung und nutzt dazu den TOTP-Algorithmus. Time-based One-time Password ist ein Standardverfahren zur Zwei-Faktor-Authentifizierung (2FA), bei dem ein Einmalpasswort generiert wird. Dieses besteht aus sechs Ziffern und wird zusätzlich zur Anmeldung am opsi-Server benötigt.
Um die Zwei-Faktor-Authentifizierung einzurichten, benötigen Sie die opsi-Erweiterung WAN/VPN. |
Generelle Einrichtung
Um die Zwei-Faktor-Authentifizierung zu aktivieren, konfigurieren Sie den Dienst opsiconfd
entsprechend siehe Abschnitt Konfiguration). Passen Sie die Konfigurationsdatei /etc/opsi/opsiconfd.conf
an und definieren Sie hinter der Option multi-factor-auth
einen der folgenden Werte:
-
inactive
: Die Zwei-Faktor-Authentifizierung ist inaktiv (Standard). Das gilt auch für Benutzer mit konfiguriertem TOTP. -
totp_optional
: Die Zwei-Faktor-Authentifizierung über TOTP ist optional. Benutzer mit aktiviertem TOTP müssen dieses verwenden. -
totp_mandatory
: TOTP ist zwingend erforderlich. Benutzer ohne aktiviertes TOTP können sich nicht mehr anmelden.
Nachdem Sie Ihre Änderungen hinzugefügt haben, rufen Sie den Befehl opsiconfd reload auf.
|
Benutzer-spezifische Einrichtung
Die Einrichtung erfolgt über den Reiter Users der Admin-Seite. Klicken Sie auf den Button Generate new secret and activate TOTP, um serverseitig ein Secret zu generieren und die Zwei-Faktor-Authentifizierung für den jeweiligen Benutzer zu aktivieren.
Den angezeigten QR-Code können Sie dann mit einer App wie etwa 2FA Authenticator (2FAS) (Android und iOS) scannen. Die App generiert daraufhin alle 30 Sekunden ein neues Einmalpasswort, das der Benutzer dann bei der Authentifizierung an das normale Kennwort anhängen muss.
Wenn Sie erneut auf den Button Generate new secret and activate TOTP klicken, erzeugen Sie ein neues Secret. Der bisherige QR-Code des Benutzers verliert damit seine Gültigkeit. |
Um die Zwei-Faktor-Authentifizierung für einen Account zu deaktivieren, klicken Sie auf Deactivate MFA.
Autorisierung über SAML
SAML 2.0 (Security Assertion Markup Language) ist ein offener Standard, der Domain-übergreifendes Single Sign-on (SSO) ermöglicht. Benutzer werden über einen Identitätsanbieter (IdP) authentifiziert und erhalten dadurch Zugriff auf Dienste von Serviceprovidern (SP). Der opsi-Service kann als Serviceprovider (SP) konfiguriert werden, um Benutzer über SAML zu authentifizieren. Hierbei werden als Identitätsanbieter (IdP) Microsoft Entra ID und Keycloak unterstützt.
Dieses Modul ist momentan eine kostenpflichtige Erweiterung. |
Konfiguration
Die Konfiguration erfolgt im opsiconfd-Service. Hierbei sind die folgenden Parameter zu setzen:
- saml-idp-entity-id
-
Die Entity-ID des Identitätsanbieters (IdP).
- saml-idp-x509-cert
-
Das Zertifikat des Identitätsanbieters (IdP) im Base64-Format.
- saml-idp-sso-url
-
Die URL des Single Sign-on (SSO) des Identitätsanbieters (IdP).
- saml-idp-slo-url
-
(optional) Die URL des Single Logout (SLO) des Identitätsanbieters (IdP).
Microsoft Entra ID
Im Microsoft Entra Admin Center sind folgende Schritte durchzuführen:
Microsoft Entra SAML Toolkit App anlegen
-
Navigieren Sie zu Identität ⇒ Anwendungen ⇒ Unternehmensanwendungen ⇒ Alle Anwendungen
-
Klicken Sie auf Neue Anwendung
-
Suchen Sie im Katalog nach
Microsoft Entra SAML Toolkit
und klicken Sie auf die angezeigte App. -
Geben Sie einen Namen für die App ein, z.B.
opsi SAML
. -
Klicken Sie auf Anlegen.
-
Die neu angelegte App wird nun unter Alle Anwendungen angezeigt.
Konfiguration der SAML-App
-
Klicken Sie auf die neu angelegte App opsi SAML um sie zu bearbeiten.
-
Wählen Sie dem Menü-Punkt Einmaliges Anmelden (SSO) aus.
-
Wählen Sie SAML aus.
-
Bearbeiten Sie die Grundlegende SAML-Konfiguration
-
Tragen Sie als Entitäts-ID die ID Ihres opsi-Configservers (z.B.
opsi.company.com
) ein. -
Unter Antwort-URL tragen Sie die folgende URL Ihres opsi-Servers ein:
https://<adresse-configserver>:4447/auth/saml/callback/login
. -
Speichern Sie die Konfiguration.
-
Laden Sie das SAML-Zertifikate im Base64-Format herunter und hinterlegen Sie es als
saml-idp-x509-cert
in der Konfiguration. -
Tragen Sie den unter Microsoft Entra-Bezeichner angezeigten Wert als
saml-idp-entity-id
in der Konfiguration ein. -
Übernehmen Sie die URL für Anmeldung als
saml-idp-sso-url
in die Konfiguration. -
Optional: Tragen Sie die Abmelde-URL als
saml-idp-slo-url
in die Konfiguration ein.
App-Rolle erstellen
Die App-Rolle opsiadmin
wird benötigt, um Benutzer administrativ am opsi-Service anzumelden.
-
Navigieren Sie nun zu Identität ⇒ Anwendungen ⇒ App-Registrierungen ⇒ Alle Anwendungen ⇒ opsi SAML
-
Fügen Sie sich als Eigentümer unter Verwaltung ⇒ Eigentümer ein.
-
Wählen Sie App-Rollen aus
-
Klicken Sie auf App-Rolle erstellen
-
Geben Sie
opsiadmin
als Wert ein -
Den Anzeigenamen können Sie frei wählen (z.B.
opsiadmin
) -
Setzen Sie das Häkchen bei App-Rolle aktivieren
-
Speichern Sie die App-Rolle mit einem Klick auf Anwenden
Benutzer zuweisen
Benutzer, die sich administrativ am opsi-Service anmelden sollen, müssen nun der App-Rolle opsiadmin
zugewiesen werden.
-
Navigieren Sie dafür wieder zu Identität ⇒ Anwendungen ⇒ Unternehmensanwendungen ⇒ Alle Anwendungen
-
Wählen Sie wieder die App opsi SAML aus.
-
Klicken Sie auf Benutzer und Gruppen ⇒ Benutzer/Gruppe hinzufügen
-
Wählen Sie nun einen Benutzer oder eine Gruppe aus und weisen Sie ihm/ihr die Rolle
opsiadmin
zu.
Änderungen übernehmen
Nachdem Sie alle Änderungen an der Konfigurationsdatei vorgenommen haben, starten Sie den Dienst opsiconfd neu.
Keycloak
In der Keycloak Admin Console sind folgende Schritte durchzuführen:
Realm Einstellungen übernehmen
-
Navigieren Sie zu Einstellungen ⇒ Realm settings.
-
Klicken Sie auf den Link SAML 2.0 Identity Provider Metadata
-
Tragen Sie den unter <EntityDescriptor entityID="">_ angezeigten Wert als
saml-idp-entity-id
in der Konfiguration ein. -
Kopieren Sie den unter <X509Certificate> angezeigten Wert und hinterlegen Sie ihn als
saml-idp-x509-cert
in der Konfiguration. -
Tragen Sie die unter <SingleSignOnService Binding="HTTP-POST"> angezeigte URL als
saml-idp-sso-url
in der Konfiguration ein. -
Optional: Tragen Sie die unter <SingleLogoutService Binding="HTTP-POST"> angezeigte URL als
saml-idp-slo-url
in der Konfiguration ein.
Client anlegen
-
Navigieren Sie zu Manage ⇒ Clients und klicken Sie auf Create Client
-
Wählen Sie
SAML
als Client type aus. -
Tragen Sie unter Client ID die ID Ihres opsi-Configservers (z.B.
opsi.company.com
) ein. -
Speichern Sie den Client.
Client konfigurieren
-
Bearbeiten Sie den Client erneut indem Sie ihn unter Client list anklicken.
-
Tragen Sie unter Access settings ⇒ Root URL die URL Ihres opsi-Servers ein: `https://<adresse-configserver>:4447.
-
Die gleiche URL tragen Sie unter Home URL ein.
-
Unter Valid redirect URIs fügen Sie die URL `https://<adresse-configserver>:4447/* hinzu.
-
Den gleichen Wert tragen Sie auch unter Valid post logout redirect URIs ein.
-
Deaktivieren Sie Client signature required unter Keys ⇒ Signing keys config.
Rolle erstellen
Die App-Rolle opsiadmin
wird benötigt, um Benutzer administrativ am opsi-Service anzumelden.
-
Legen Sie eine neue Rolle
opsiadmin
an. Sie können diese Rolle global im Realm Manage ⇒ Realm roles anlegen oder spezifisch für den Client unter Roles. -
Sie können die Rolle jetzt einzelnen Benutzern oder Gruppen zuweisen.
Änderungen übernehmen
Nachdem Sie alle Änderungen an der Konfigurationsdatei vorgenommen haben, starten Sie den Dienst opsiconfd neu.