PEIQ Knowledge Base

SAML-Login für PHP-Module

Diese Dokumentation umfasst die Settings-Dateien und das Customizing, welche für die Konfiguration des Logins via SAML (= Security Assertion Markup Language) für PHP-Module von PEIQ, wie z.B. NGEN Mobil, MPI oder ERAM, benötigt werden.

Über das SAML Login-Formular können sich Benutzer:innen in PHP-Modulen von PEIQ mittels UPN (= User Principal Name) und Passwort authentifizieren. Die Authentifizierung kann dabei gegen verschiedene Identity Provider, wie z. B. Microsoft Azure Active Directory, erfolgen.

Funktionalitäten des SAML-Logins

  • Anmeldung im PHP-Modul von PEIQ via Login-Formular

  • Umschalten der Login-Methode auf "SAML" via Customizing/PHP-Setting

  • Authentifizierung durch Identity Provider, wie Microsoft Azure Active Directory, mittels UPN und Passwort

  • Mapping des Eintrags oder Users im Identity Providers auf den/die PRINT NGEN Benutzer:in (customizebar)

Inhaltsverzeichnis

Allgemeine Beschreibung

Nach dem Umschalten der Login-Methode auf "SAML" müssen sich Benutzer:innen beim Aufruf bestimmter URLs von PEIQ-Modulen im Browser über einen Identity Provider (z. B. das Active Directory (“AD“) des/der Verlags-Kund:in) authentifizieren. Falls der/die Benutzer:in noch nicht eingeloggt ist, wird er/sie auf eine Login-Seite, die der Identity Provider zur Verfügung stellt, weitergeleitet.

Durch das vom jeweiligen Verlag verwaltete Single-Sign-on-Verfahren (“SSO”) reicht es aus, dass jede:r Benutzer:in nur an einer zentralen Stelle gepflegt wird (d. h. nur ein Login). Er/sie kann jedoch auf unterschiedlichen Servern (Hostnamen) mit verschiedenen Benutzerkontexten eingeloggt werden.

Um eine Zuordnung der Active-Directory-Benutzer:innen zu den entsprechenden PRINT NGEN Benutzerkontexten zu implementieren, werden zwei neue Attribute “DIntKontext” und “DIntUserPrincipalName” in der “Schema_07_Geschaeftspartner.txt” eingeführt. Anhand dieser erfolgt die Zuordnung der Benutzer:innen aus dem Active Directory auf den/die PRINT NGEN Benutzer:innen. 

Es ist nicht möglich, mehrere DInternetInfos mit demselben Login anzulegen, da der Login-Name eindeutig sein muss.

Voraussetzung des SAML-Logins für Webmodule ist die PHP-Version 8.2. Eine fehlerfreie Funktionalität unter PHP-Version 8.1 kann durch PEIQ nicht gewährleistet werden.

Gewährleistung der Eindeutigkeit mittels Datenbank-Index

Damit die Kombination aus den beiden neuen Attributen DIntUserPrincipalName und DIntKontext eindeutig ist, muss in der Datenbank ein Index auf die beiden neuen Spalten gelegt werden.

create unique index DInternetInfo_UPN_Kontext on DInternetInfo (DIntKontext, DIntUserPrincipalName);

Login mit Microsoft Azure Active Directory

Benutzer:innen melden sich bei der Authentifizierung via Azure Active Directory mithilfe von UPN und Passwort im verlagseigenen SSO (= Single-Sign-on) an.

Anmeldung via Microsoft Azure Active Directory

Sind die Authentifizierung und die Anmeldung erfolgreich abgeschlossen, werden die Benutzer:innen auf die Startseite des jeweiligen Webmoduls von PEIQ weitergeleitet.

Voraussetzung für die Nutzung des SAML-Logins in der PRINT NGEN Benutzerverwaltung

Um sich via SAML im PHP-Modul einloggen zu können, müssen folgende Kriterien erfüllt sein:

  1. Der oder die Benutzer:in verfügt über einen Benutzerkontext in PEIQ PRINT NGEN.

  2. Der oder die Benutzer:in verfügt über einen gültigen Geschäftspartner in PEIQ PRINT NGEN.

  3. Der oder die Benutzer:in verfügt über eine gültige DInternetInfo (Status=”Aktiv”) in PEIQ PRINT NGEN.

  4. Benutzerkontext, Geschäftspartner und InternetInfo müssen in PEIQ PRINT NGEN miteinander verbunden sein.

Konfiguration des SAML-Logins für das Modul NGenMobil

Folgende Konfigurationen für den SAML-Login (= Security Assertion Markup Language) von PRINT NGEN Mobil müssen vorgenommen werden:

An der “DInternetInfo” in PRINT NGEN gibt es zwei neue Attribute “DIntUserPrincipalName” sowie “DIntKontext”.

“DInternetInfo”-Konfiguration

In die Eigenschaft “DIntUserPrincipalName” wird der User Principal Name des/der Benutzer:in beim Identity Provider eingetragen. Der UPN muss genauso eingetragen werden, wie er im Active Directory eingepflegt ist.

Sofern über die Abbildung “SamlServerNameContext”, siehe nächstes Kapitel, nicht auf einen anderen Kontext gemappt wird, kann der Hostname als Kontext eingetragen werden.

 

“SamlServerNameToContext”

Diese Abbildung kann verwendet werden, um beispielsweise abhängig vom Test-/Prodsystem oder Mandant unterschiedliche Hosts auf einen gemeinsamen Kontext zu mappen. Dies kann dann hilfreich sein, wenn sich ein:e Benutzer:in mit einem Login in mehreren Systemen einloggen möchte.

Eine beispielhafte Abbildung könnte folgendermaßen aussehen:

"ngenmobile.mandant1-test.de" {"Mandant 1"} /Test "ngenmobile.mandant1.de" {"Mandant 1"} /Prod "ngenmobile.mandant2-test.de" {"Mandant 2"} /Test "ngenmobile.mandant2.de" {"Mandant 2"} /Prod
“SamlNameToUserPrincipalName”

Der UPN des Identity Providers wird durchgereicht, sodass ein separates Mapping der UPN auf das Attribut “DIntUserPrincipalName” i. d. R. nicht benötigt wird. Falls doch, kann das Mapping individuell pro Benutzer:in in der Abbildung eingerichtet werden.

Eine beispielhafte Abbildung könnte folgendermaßen aussehen:

"tester1@peiq.de" {"max.mustermann"}

PHP: /Session+/Settings/Standard.inc

In diesem PHP-File muss die Login-Methode für das Webmodul PRINT NGEN Mobil auf SAML umgestellt werden. Dazu sind folgende Einstellungen notwendig:

PHP: /generic-saml/settings.php

In diesem settings-File müssen sowohl der entsprechende Hostname des Servers in “$spBaseUrl” (bitte “HOSTNAME” ersetzen!) sowie individuell das gültige Zertifikat des Identity Providers unter “CERTIFICATE” (bitte “CERTIFICATE” ersetzen!) eingetragen werden.

Verwandte Seiten

Nur für PEIQ-Mitarbeiter:

https://peiq.atlassian.net/wiki/spaces/CORE/pages/1307082845