LDAP: Prüfung auf Mitgliedschaft in Gruppe

Desöfteren - hier konkret bei der Nutzung einer Weboberfläche - sollen Benutzer aus dem LDAP dahingehend überprüft werden, dass sie Mitglied einer bestimmten Gruppe sind.
Gibt es dafür mittlerweile eine “best practice”-Lösung?
Derzeit gibt es z.B. diesen PHP-Code:

	`function authenticate_user($username, $password) {
	$ldap_dn = "uid=".$username.",".$this->ldapdn;
	
	ldap_set_option($this->ldapconn, LDAP_OPT_PROTOCOL_VERSION, 3);
	ldap_set_option($this->ldapconn,LDAP_OPT_REFERRALS,0);
	
	if(ldap_bind($this->ldapconn, $ldap_dn, $password)){
		
		$filter = "(&(uid=".$username."))";
		$result = ldap_search($this->ldapconn,$this->ldapdn,$filter) or exit("Unable to search");
		$entries = ldap_get_entries($this->ldapconn, $result);
		
		if($entries['count'] == 1){
			return true;
		}else{
			return false;
		}			
	}else{
		return false;
	}
}

`
Die genannten Daten zum bind kommen als JSON-Geraffel aus einer Datenbank.
Wunschtraum: der Benutzer gibt richtige Zugangsdaten ein und es wird geprüft, ob er Mitglied in der Gruppe “p_meinetollegruppe” ist.
Derzeitiges Probllem, welches ich aus anderen Freds zusammengelesen habe: es wird nur die primäre Gruppe ausgegeben.
Hat das irgendjemand mal in funktionieren umgesetzt, Beispielsweise mit einer .htaccess-Datei oder mit radclient als Testszenario?

VG
Kai

Hallo Kai,

Hat das irgendjemand mal in funktionieren umgesetzt, Beispielsweise mit
einer .htaccess-Datei oder mit radclient als Testszenario?

wie das mit der primären Gruppe in einer .htaccess Datei geht steht im wiki.
Wie es mit Radius geht, wo abgeprüft wird, ob der NUtzer in der Gruppe
p_wifi (oder p_wlan) ist, steht auch im wiki.

LG

Holger

Hallo Kai,

mit einer .htaccess geht das für beliebige Gruppen so:

AuthType Basic
AuthName "Nur für Gruppe p_projekt"
AuthBasicProvider ldap
AuthLDAPUrl ldaps://10.16.1.1/dc=server,dc=meine-schule,dc=de?uid
AuthLDAPGroupAttributeIsDN off
AuthLDAPGroupAttribute memberUid
Require ldap-group cn=p_projekt,ou=groups,dc=server,dc=meine-schule,dc=de

In der globalen Konfiguration muss natürlich ein AllowOverride AuthConfig stehen. Und bei LDAPS sollte das Zertifikat zum Servernamen passen.

Beste Grüße

Jörg

1 Like

Ja, steht im Wiki, bei der .htacess klappt es jetzt. Beim RADIUS klappt es auch, beim LDAP mit einer beliebigen Gruppe (primär oder nicht-primär) noch nicht.

Danke, das passt jetzt auch bei mir. Ein Tippfehler hatte sich bei mir eingeschlichen!