thepandapi
Goto Top

PHP und Samba AD - auslesen Möglich?

Guten Tag Zusammen!

ich schreibe zur zeit ein Server Dashboard, wo unserem Unternehmen Statistiken und Infos über den lokalen Server geben soll.
Klar kann man hergehen und ein fertiges Dashboard Script nehmen aber entweder kosten diese, oder sehen nicht so gut aus.

Unter anderem haben wir ein Active Directory über Linux, dh Samba laufen. (Fragt mich nicht warum :D, ich hätte es lieber über Windows geregelt)

Jetzt zur meiner Frage:
Ich besitze PHP, HTML und MYSQL Kenntnisse. Ist es möglich diesen Samba dienst so anzusprechen, dass er mir Ausgaben gibt über angelegte AD User, eingeloggte user, und und und...
Von mir aus kann man es auch über "shell_exec" machen, hauptsache die Seite kommt an die Ausgaben/Infos ran.

Würde mich über gutes Feedback freuen face-smile

Content-Key: 297185

Url: https://administrator.de/contentid/297185

Printed on: April 23, 2024 at 13:04 o'clock

Member: wiesi200
wiesi200 Feb 24, 2016 at 06:53:29 (UTC)
Goto Top
Hallo,

ob jetzt Windows oder Linux spielt doch da keine Rolle. In beiden Fällen macht man das per LDAP
http://php.net/manual/de/book.ldap.php
Member: stefaan
stefaan Feb 24, 2016 at 08:47:38 (UTC)
Goto Top
Servus,

offene Verbindungen gibt es per smbstatus, diese Ausgabe kannst du weiterverarbeiten.

Für Zugriffe aufs AD kannst du adLDAP verwenden:
http://adldap.sourceforge.net/

Grüße, Stefan
Member: Larmina
Larmina Apr 11, 2016 at 11:20:11 (UTC)
Goto Top
Hallihallo,
also ja es gibt eine Möglichkeit, die ist sogar in PHP mehr oder weniger nativ drin, man muss nur eine DLL aktivieren (Auf Linux eh kein problem mit apt-get). http://php.net/manual/de/ldap.installation.php

Die Verbindungsherstellung sieht dann so aus:
// using ldap bind
$ldaprdn  = 'domäne\administrator';     // ldap rdn or dn  
$ldappass = 'xxxxxxxxxx';  // associated password  

// connect to ldap server
$ldapconn = ldap_connect("x.y.de") // ersetzen durch deine Domäne  
or die("Could not connect to LDAP server.");  


// these parameters are required for accessing the AD
ldap_set_option($ldapconn, LDAP_OPT_PROTOCOL_VERSION, 3);
ldap_set_option($ldapconn, LDAP_OPT_REFERRALS, 0);

if ($ldapconn) 
{
    // binding to ldap server
    $ldapbind = ldap_bind($ldapconn, $ldaprdn, $ldappass);

    // verify binding
    if ($ldapbind) {
      
    } else {
        echo "LDAP bind failed...";  
    }
}
//Ab hier beginnt die Suche, bei Filter kannst du natürlich einsetzen was du willst
$basedn = "OU=gesuchte OU, dc=x, dc=y, dc=de";  
	$filter = "(&(samaccountname=".$kurzzeichen."*)(ObjectClass=user))"; // Suche nach Benutzernamen mit Kürzel (Rest Wildcard)  
	
	// Suche starten:
	$search=ldap_search($ldapconn,$basedn,$filter);
	// Ergebnis der Suche in der Variablen $info ablegen:
	$info = ldap_get_entries($ldapconn, $search);

In $info hast du dann alle Daten in einem Mordsmehrdimensionalen Array, da heißt es dann mit print_r suchen was du brauchst ;)

Der Spaß geht sowohl über CLI als auch über den Browser.

Getestet und für funktionierend befunden ist es zwar mit einer Windows Domäne, aber da LDAP drunter liegt sollte es so auch bei dir gehen.

LG Larmina