Online-Dokumentation (Beta) zu CMS Core/Grid 16.x

 
INFO:Version 16.xZusatzmodul bis Core Prof. 3 Projekte

Externe Benutzerschnittstelle für ActiveDirectory, LDAP, individuelle Datenbanken

In Weblication® CMS GRID können öffentliche Benutzer auch aus verschiedenen externen Benutzersystemen wie z.B. ActiveDirectory, LDAP oder individuelle Benutzerdatenbanken genutzt werden. Die Benutzer aus den externen Benutzerdatenbanken können parallel mit anderen  Benutzerverwaltungen und der internen Weblication® CMS GRID Benutzerverwaltung verwendet werden. Damit entfällt die zeitintensive, mehrfache Pflege von Benutzern in verschiedenen Systemen.

Bedienung

Weblication® CMS GRID bietet Ihnen beim Anbinden externer Benutzerdatenbanken volle Flexibilität. Das Modul für externe Benutzerschnittstellen ist so konzipiert, dass der Software lediglich die Benutzerdaten übergeben werden müssen. Ob Sie nun Benutzer aus Active Directory, OpenLDAP, einer mySQL-Datenbank, etc. im System nutzbar machen wollen, stellt für Weblication® CMS GRID keinen Unterschied dar.

Anhand einer AD-Anbindung haben wir Ihnen eine mögliche Anbindung einer externen Benutzerschnittstelle beispielhaft dargestellt. Die aus der externen Benutzerdatenbank zur Verfügung gestellten Benutzer können Sie dann über das PHP-Framework in Weblication® CMS GRID weiterverwenden.

Beispiel: Testskript für Authentifizierung über Active Directory

Beispiel: Testskript für Authentifizierung über Active Directory

<?php

print "<h3>ADS-PHP Test</h3>";

//
// Dieses Script kann dazu genutzt werden,
// um einen Benutzer gegen ein Active Directory zu authentifizieren
// und so über die Weblication Benutzer-Schnittstelle einzuloggen.
//

// Zu prüfender Benutzer
$loginUserName = "yourUserName";
$loginUserPass = "yourPassword";

// Active Directory Verbindungsdaten (bitte an Ihr System anpassen)
$adData['adServerIp'] = "yourads.dd"; // ADS Server IP-Adresse oder Name
$adData['adServerPort'] = 389; // ADS Server Port
$adData['bindDn'] = 'CN=searchUserName,CN=Users,DC=company,DC=local'; // Search user
$adData['bindPass'] = 'searchUserPassword'; // Search user Passwort
$adData['baseDn'] = 'CN=Users,DC=company,DC=local'; // baseDn

$result = wCheckUserAd($loginUserName, $loginUserPass, $adData);

if(
$result){
$errStr = "Access granted for user <b>$loginUserName</b>!<br>";
print
"<div style="font-family:verdana;font-size:11px;color:#FFFFFF;background-color:green;margin:2px;padding:2px">$errStr</div>";
}
else{
$errStr = "Access denied for user <b>$loginUserName</b>!<br>";
print
"<div style="font-family:verdana;font-size:11px;color:#FFFFFF;background-color:#FF0000;margin:2px;padding:2px">$errStr</div>";
}

//*********************************************************************************/
/**
* @method Boolean wCheckUserAd(String userName, String userPass, Array adData)
*
* @description Prüft, ob sich ein Benutzer einloggen kann
*
* @param String userName Benutzername des zu prüfenden Benutzers
*
* @param String userPass Passwort des zu prüfenden Benutzers
*
* @param Array adData Active Directory Verbindungsdaten
*
* @return Boolean
*
*/
//*********************************************************************************/


function wCheckUserAd($userName, $userPass, $adData){

$login = false;

$ldap = @ldap_connect($adData['adServerIp'], $adData['adServerPort']);
if(!
is_resource($ldap)) {
$errStr = 'AD Connection Error. Check AD-Server availability.';
return
$login;
}
// je nach Umgebung ggf. erforderlich, wenn Fehler (z.B. "LDAP Operations error") auftreten
/*
ldap_set_option ($ldap, LDAP_OPT_REFERRALS, 0);
ldap_set_option($ldap, LDAP_OPT_PROTOCOL_VERSION, 3);
*/

$bind = @ldap_bind($ldap, $adData['bindDn'], $adData['bindPass']);

if(!
$bind){
return
$login;
}

$filter = "(&(objectClass=user)(samaccountName=$userName))";

$attributes = array('dn', 'cn');

$search = @ldap_search($ldap, $adData['baseDn'], $filter, $attributes);

$result = @ldap_get_entries($ldap, $search);

$userDn = $result[0]['dn'];

if(!
$userDn){
return
$login;
}

@
ldap_close($ldap);

$ldap = @ldap_connect($adData['adServerIp'], $adData['adServerPort']);
if(!
is_resource($ldap)) {
$errStr = 'AD Connection Error. Check AD-Server availability.';
return
$login;
}

$bind = @ldap_bind($ldap, $userDn, $userPass);

if(
$bind){
$login = true;
}

@
ldap_close($ldap);

return
$login;
}

?>

Hinweis

Sie befinden sich in der Online-Dokumentation einer älteren CMS-Version!