Anmeldedaten an phpIPAM übergeben

Je nach Unternehmensgröße und Philosophie versucht die IT-Abteilung die Anmeldung an den verschiedestens Applikationen zu automatisieren. Es ist ein Microsoft Active Directory Service im Netzwerk vorhanden und die Anwendung phpIPAM unterstützt die Authenzifizierung mit Hilfe des ADS. Somit müssen sich die Benutzer einen weiteren Benutzer + Passwort merken. Sobald am Rechner das Passwort geändert werden muss, gilt das neue Passwort automatisch auch bei phpIPAM.
Des Weiteren existiert ein VPN-Einwahlknoten für bestimmte Benutzer. Die Authentifizierung am Knoten erfolgt über den Active Directorykonto + Passwort + OTP. Nach erfolgreicher Anmeldung werden alle Anwendungen aufgeliste, wofür der Benutzer berechtigt ist. Bei der Konfiguration der Verknüpfung auf dem VPN-Knoten gibt es die Möglichkeit den Benutzer + Paswort an die URL-Adresse zu hängen, Beispiel:

http://ipam/phpipam/?page=login&section=timeout&username=${session:username}&password=${session:password}

Standardmäßig erlaubt phpIPAM nicht die Übergabe von Benutzer und Passwort. Um dieses Verhalten zu ändern, muss die Datei „site/login/loginForm.php“ angepasst werden.

Bisher:

<input type="text" id="username" name="ipamusername" class="login form-control input-sm" placeholder="<?php print _('Username'); ?>" autofocus="autofocus" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"></input>

Neu:

<input type="text" id="username" name="ipamusername" class="login form-control input-sm" placeholder="<?php print _('Username'); ?>" autofocus="autofocus" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false" value="<?php print $_GET['username']; ?>"></input>

Bisher:

<input type="password" id="password" name="ipampassword" class="login form-control input-sm" placeholder="<?php print _('Password'); ?>" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"></input>

Neu:

<input type="password" id="password" name="ipampassword" class="login form-control input-sm" placeholder="<?php print _('Password'); ?>" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"  value="<?php print urldecode( $_GET['password'] ); ?>"></input>

Ruft man die gepostete URL nochmals auf, wird automtaisch der Benutzer und Passwort eingetragen. Somit muss nur noch auf Anmeldung geklickt werden.
Eine kleine Falle gibt es: Werden Passwörter mit Sonderzeichen z.B. ? oder ! genutzt, muss noch ein Regular Expression Ausdruck in der Datei „functions/functions-common.php“ erweitert werden.

Bisher:

if(preg_match('/[^A-Za-z0-9_.#\\-$]/', $g)) {

Neu:

if(preg_match('/[^A-Za-z0-9_.#?!\\-$]/', $g)) {

Speichern und den Aufruf nochmals testen.