phpIPAM Authentifizierung über Microsoft AD FS

Das Thema Identity Provider (IdP) rückt immer mehr in den Fokus/Vordergrund. In dem folgenden Artikel beschreibe ich, wie die Anmeldung am Open Source IP Address Management phpIPAM über Microsoft Active Directory Ferderation Service (AD FS) zu konfigurieren ist.

Umgebung
– AD FS: Windows Server 2012R2 Standard (Patchstand: September2018)
– phpIPAM: Git Master (Version 1.4r022), Ubuntu 16.04.5 LTS (Apache2, MySQL)
– Beide Anwendungen sind mit einem gültigen SSL-Zertifikat von der eigenen Zertifizierungsstelle versehen.

Grundlegendes
Als erstes ist sicherzustellen, dass phpIPAM und dessen Submodule auf dem neusten Stand sind. Ich nehme dazu gerne git her.

Zudem habe ich das Feature Pretty URL in den Einstellungen von phpIPAM aktiviert.

Auslesen des Bezeichners des Verbunddienstes

Die Adresse im Feld „Bezeichner des Verbunddienstes“ in einen Texteditor/Notepad(++) kopieren. Diese wird später für die Konfiguration von phpIPAM benötigt.


Einrichten der Vertrauensstellungen

Für die gerade angelegte Vertrauensstellung müssen nun Regeln definiert werden. Darüber wird ein Mapping der Attribute zwischen Active Directory und SAML/phpIPAM umgesetzt. Nachstehend hat ihr die Möglichkeit die Authentifizierung mit Hilfe a) des User Principal Name (Beispiel daniel@ad.wydler.eu) umzusetzen oder b) des klassischen Benutzername (sAMAccountName) umzusetzen. Die Bilderserie für die letzte Variante findet ihr weiter unten.

Regeln für die Authentifizierung über User Principal Name (UPN)

Regeln für die Authentifizierung über sAMAccountName

Quellcode der Regel:

Quellcode der Regel:


Standardmäßig übergibt Microsoft AD FS nicht nur den Benutzernamen, sondern auch NetBIOS Domain Name des Active Directory (z.B. LAB01\wydler.daniel). Durch die beiden benutzerdefinierten Regeln wird nur der Benutzername transformiert.

Auslesen des Fingerabdrucks des Zertifikats vom ADFS

Das Auslesen des Fingerabdrucks des verwendeten Zertifikats für den ADFS erfolgt bequem über OpenSSL unter Ubuntu.

  • Die Ausgabe bzw. den Fingerabdruck in einer neuen Zeile im Editor zwischenspeichern. Dieser ist später für die Konfiguration von SAML in phpIPAM notwendig.
  • Falls das verwendete Zertifikat auf dem ADFS-Server noch mit sha1 ausgestellt wurde, ist der Algorithmus auf -sha1 anzupassen.

Konfigurationsanpassung in phpIPAM

Nachstehend nochmals die Werte des verschiedenen Felder in Textform:

  • Falls das verwendete Zertifikat auf dem ADFS-Server noch mit sha1 ausgestellt wurde, ist der Wert des Feldes auf sha1 zu ändern.
  • Die erste Zeile ist durch die URL aus dem ersten Abschnitt „Auslesen des Bezeichners des Verbunddienstes“ zu ersetzen.
  • Die letzte Zeile ist der Fingerabdruck des Zertifikats aus dem vorletzten Abschnitt.
  • In allen Zeilen ist natürlich noch der FQDN anzupassen.

Die neue Authentifizierungsmethode mit Bearbeiten abspeichern.

Nun sind ist noch eine Anpassung einer Konstante in der config.php notwendig. Diese kann leider bisher nicht über die Weboberfläche von phpIPAM angepasst werden. Ich edierte die Datei über eine SSH-Verbindung und mit vim.

ändern zu

Die Änderung speichern und die Datei wieder schließen.

Benutzer in phpIPAM anlegen
Je nachdem ob sich der Benutzer mit dem UPN oder sAMAccountName muss der entsprechende Benutzername gewählt werden. In meiner Umgebung habe ich mich für Variante B) entschieden.

Somit ist die Konfiguration für AD FS und phpIPAM erfolgreich abgeschlossen.
Viel Spaß beim Ausprobieren. 🙂