10,6 → 10,71 |
define ("ALCASAR_RADIUS_SITE", "/etc/raddb/sites-available/alcasar"); |
define ("ALCASAR_RADIUS_MODULE_LDAP", "/etc/raddb/modules/ldap"); |
|
/**************************************************************** |
* Choice of language * |
*****************************************************************/ |
|
$Language = 'en'; |
if(isset($_SERVER['HTTP_ACCEPT_LANGUAGE'])){ |
$Langue = explode(",",$_SERVER['HTTP_ACCEPT_LANGUAGE']); |
$Language = strtolower(substr(chop($Langue[0]),0,2)); } |
if($Language == 'fr'){ |
$l_file = "Fichier "; |
$l_not_found = " non présent"; |
$l_no_writing_right_on_file = "Vous n'avez pas les droits d'écriture sur le fichier "; |
$l_ldap_update_sucess = "Mise à jour des paramètres LDAP réalisée avec succès"; |
$l_ldap_title = "Authentification externe : LDAP"; |
$l_ldap_legend = "Authentification LDAP"; |
$l_ldap_auth_enable_label = "Activer l'authentification LDAP:"; |
$l_ldap_YES = "OUI"; |
$l_ldap_NO = "NON"; |
$l_ldap_server_label = "Nom du serveur LDAP:"; |
$l_ldap_server_text = "Nom ou IP du serveur LDAP éventuel."; |
$l_ldap_base_dn_label = "DN de la base LDAP:"; |
$l_ldap_base_dn_text = "DN est le 'Distinguished Name', il situe les informations utilisateurs, exemple: 'o=Mon entreprise, c=FR'."; |
$l_ldap_filter_label = "Identifiant LDAP:"; |
$l_ldap_filter_text = "Clé utilisée pour la recherche d'un identifiant de connexion, exemple: 'uid', 'sn', etc. Pour un AD mettre 'sAMAccountName'."; |
$l_ldap_base_filter_label = "Filtre de l'utilisateur LDAP:"; |
$l_ldap_base_filter_text = "Sur option, vous pouvez en plus limiter les objets recherchés avec des filtres additionnels. Par exemple 'objectClass=posixGroup' aurait comme conséquence l'utilisation de '(&(uid=username)(objectClass=posixGroup))'"; |
$l_ldap_user_label = "Utilisateur LDAP:"; |
$l_ldap_user_text = "Laissez vide pour utiliser un accès invité. Si renseigné, ALCASAR se connectera au serveur LDAP en tant qu'un utilisateur spécifié, exemple: 'uid=Utilisateur,ou=MonUnité,o=MaCompagnie,c=FR'. Requis pour les serveurs possédant un Active Directory."; |
$l_ldap_password_label = "Mot de passe LDAP:"; |
$l_ldap_password_text = "Laissez vide pour un accès invité. Sinon, indiquez le mot de passe de connexion. Requis pour les serveurs possédant un Active Directory."; |
$l_ldap_submit = "Enregistrer"; |
$l_ldap_reset = "Annuler"; |
$l_ldap_test_network_failed = "Pas de connectivité réseau avec le serveur LDAP."; |
$l_ldap_test_connection_failed = "Impossible de se connecter au serveur LDAP."; |
$l_ldap_test_bind_ok = "Connexion LDAP réussie..."; |
$l_ldap_test_bind_failed = "Echec d'authentification sur le serveur LDAP...Vérifiez votre configuration ldap..."; |
} else { |
$l_file = "File "; |
$l_not_found = " not found"; |
$l_no_writing_right_on_file = "You have no writting permission on the file "; |
$l_ldap_update_sucess = "Successfull LDAP settings update"; |
$l_ldap_title = "External authentication : LDAP"; |
$l_ldap_legend = "LDAP authentication"; |
$l_ldap_auth_enable_label = "Use LDAP authentication :"; |
$l_ldap_YES = "YES"; |
$l_ldap_NO = "NO"; |
$l_ldap_server_label = "LDAP server name:"; |
$l_ldap_server_text = "This is the hostname or IP address of the LDAP server."; |
$l_ldap_base_dn_label = "LDAP base dn:"; |
$l_ldap_base_dn_text = "This is the 'Distinguished Name', locating the user information, e.g. 'o=My Company,c=US'."; |
$l_ldap_filter_label = "LDAP uid:"; |
$l_ldap_filter_text = "This is the key under which to search for a given login identity, e.g. 'uid', 'sn', etc.. For AD use 'sAMAccountName'."; |
$l_ldap_base_filter_label = "LDAP user filter:"; |
$l_ldap_base_filter_text = "Optionally you can further limit the searched objects with additional filters. For example 'objectClass=posixGroup' would result in the use of '(&(uid=username)(objectClass=posixGroup))'"; |
$l_ldap_user_label = "LDAP user dn:"; |
$l_ldap_user_text = "Leave blank to use anonymous binding. If filled, ALCASAR uses the specified distinguished name on login attempts to find the correct user, e.g. 'uid=Username,ou=MyUnit,o=MyCompany,c=US'. Required for Active Directory Servers."; |
$l_ldap_password_label = "LDAP password:"; |
$l_ldap_password_text = "Leave blank to use anonymous binding. Else fill in the password for the above user. Required for Active Directory Servers."; |
$l_ldap_submit = "Save"; |
$l_ldap_reset = "Reset"; |
$l_ldap_test_network_failed = "LDAP server is not reachable."; |
$l_ldap_test_connection_failed = "LDAP connexion failed..."; |
$l_ldap_test_bind_ok = "LDAP connexion success..."; |
$l_ldap_test_bind_failed = "LDAP authentication failed...Check your ldap setup..."; |
} |
/******************************************************** |
* TEST DES FICHIERS DE CONFIGURATION * |
*********************************************************/ |
16,16 → 81,16 |
|
//Test de présence et des droits en lecture des fichiers de configuration. |
if (!file_exists(ALCASAR_RADIUS_SITE)){ |
exit("Fichier ".ALCASAR_RADIUS_SITE." non présent"); |
exit($l_file.ALCASAR_RADIUS_SITE.$l_not_found); |
} |
if (!file_exists(ALCASAR_RADIUS_MODULE_LDAP)){ |
exit("Fichier ".ALCASAR_RADIUS_MODULE_LDAP." non présent"); |
exit($l_file.ALCASAR_RADIUS_MODULE_LDAP.$l_not_found); |
} |
if (!is_readable(ALCASAR_RADIUS_SITE)){ |
exit("Vous n'avez pas les droits d'écriture sur le fichier ".ALCASAR_RADIUS_SITE); |
exit($l_no_writing_right_on_file.ALCASAR_RADIUS_SITE); |
} |
if (!is_readable(ALCASAR_RADIUS_MODULE_LDAP)){ |
exit("Vous n'avez pas les droits d'écriture sur le fichier ".ALCASAR_RADIUS_MODULE_LDAP); |
exit($l_no_writing_right_on_file.ALCASAR_RADIUS_MODULE_LDAP); |
} |
|
/******************************************************** |
43,7 → 108,7 |
}else{ |
if ($update){ |
$message = "<div align=\"center\"><br>"; |
$message.="<strong><font color=\"green\">Mise à jour des paramètres ldap réalisé avec succès</font><br></strong>"; |
$message.="<strong><font color=\"green\">$l_ldap_update_sucess</font><br></strong>"; |
$message.="<br></div>"; |
} |
} |
88,62 → 153,6 |
$ldap_filter = $ldap->uid;// others options only in alcasar 3.x ($ldap->filter) |
$ldap_base_filter = $ldap->base_filter; |
|
|
# Choice of language |
$Language = 'en'; |
if(isset($_SERVER['HTTP_ACCEPT_LANGUAGE'])){ |
$Langue = explode(",",$_SERVER['HTTP_ACCEPT_LANGUAGE']); |
$Language = strtolower(substr(chop($Langue[0]),0,2)); } |
if($Language == 'fr'){ |
$l_ldap_title = "Authentification externe : LDAP"; |
$l_ldap_legend = "Authentification LDAP"; |
$l_ldap_auth_enable_label = "Activer l'authentification LDAP:"; |
$l_ldap_YES = "OUI"; |
$l_ldap_NO = "NON"; |
$l_ldap_server_label = "Nom du serveur LDAP:"; |
$l_ldap_server_text = "Nom ou IP du serveur LDAP éventuel."; |
$l_ldap_base_dn_label = "DN de la base LDAP:"; |
$l_ldap_base_dn_text = "DN est le 'Distinguished Name', il situe les informations utilisateurs, exemple: 'o=Mon entreprise, c=FR'."; |
$l_ldap_filter_label = "Identifiant LDAP:"; |
$l_ldap_filter_text = "Clé utilisée pour la recherche d'un identifiant de connexion, exemple: 'uid', 'sn', etc. Pour un AD mettre 'sAMAccountName'."; |
$l_ldap_base_filter_label = "Filtre de l'utilisateur LDAP:"; |
$l_ldap_base_filter_text = "Sur option, vous pouvez en plus limiter les objets recherchés avec des filtres additionnels. Par exemple 'objectClass=posixGroup' aurait comme conséquence l'utilisation de '(&(uid=username)(objectClass=posixGroup))'"; |
$l_ldap_user_label = "Utilisateur LDAP:"; |
$l_ldap_user_text = "Laissez vide pour utiliser un accès invité. Si renseigné, ALCASAR se connectera au serveur LDAP en tant qu'un utilisateur spécifié, exemple: 'uid=Utilisateur,ou=MonUnité,o=MaCompagnie,c=FR'. Requis pour les serveurs possédant un Active Directory."; |
$l_ldap_password_label = "Mot de passe LDAP:"; |
$l_ldap_password_text = "Laissez vide pour un accès invité. Sinon, indiquez le mot de passe de connexion. Requis pour les serveurs possédant un Active Directory."; |
$l_ldap_submit = "Enregistrer"; |
$l_ldap_reset = "Annuler"; |
$l_ldap_test_network_failed = "Pas de connectivité réseau avec le serveur LDAP."; |
$l_ldap_test_connection_failed = "Impossible de se connecter au serveur LDAP."; |
$l_ldap_test_bind_ok = "Connexion LDAP réussie..."; |
$l_ldap_test_bind_failed = "Echec d'authentification sur le serveur LDAP...Vérifiez votre configuration ldap..."; |
} else { |
$l_ldap_title = "External authentication : LDAP"; |
$l_ldap_legend = "LDAP authentication"; |
$l_ldap_auth_enable_label = "Use LDAP authentication :"; |
$l_ldap_YES = "YES"; |
$l_ldap_NO = "NO"; |
$l_ldap_server_label = "LDAP server name:"; |
$l_ldap_server_text = "This is the hostname or IP address of the LDAP server."; |
$l_ldap_base_dn_label = "LDAP base dn:"; |
$l_ldap_base_dn_text = "This is the 'Distinguished Name', locating the user information, e.g. 'o=My Company,c=US'."; |
$l_ldap_filter_label = "LDAP uid:"; |
$l_ldap_filter_text = "This is the key under which to search for a given login identity, e.g. 'uid', 'sn', etc.. For AD use 'sAMAccountName'."; |
$l_ldap_base_filter_label = "LDAP user filter:"; |
$l_ldap_base_filter_text = "Optionally you can further limit the searched objects with additional filters. For example 'objectClass=posixGroup' would result in the use of '(&(uid=username)(objectClass=posixGroup))'"; |
$l_ldap_user_label = "LDAP user dn:"; |
$l_ldap_user_text = "Leave blank to use anonymous binding. If filled, ALCASAR uses the specified distinguished name on login attempts to find the correct user, e.g. 'uid=Username,ou=MyUnit,o=MyCompany,c=US'. Required for Active Directory Servers."; |
$l_ldap_password_label = "LDAP password:"; |
$l_ldap_password_text = "Leave blank to use anonymous binding. Else fill in the password for the above user. Required for Active Directory Servers."; |
$l_ldap_submit = "Save"; |
$l_ldap_reset = "Reset"; |
$l_ldap_test_network_failed = "LDAP server is not reachable."; |
$l_ldap_test_connection_failed = "LDAP connexion failed..."; |
$l_ldap_test_bind_ok = "LDAP connexion success..."; |
$l_ldap_test_bind_failed = "LDAP authentication failed...Check your ldap setup..."; |
} |
|
function ldap_test($f_ldap_server, $f_ldap_identity, $f_ldap_password, $f_ldap_port = "389"){ |
// Test du serveur |
if (!$sock = @fsockopen($f_ldap_server, $f_ldap_port, $num, $error, 2)) { |