Vra

Ek het die volgende kode:

$bind = new COM("LDAP://CN=GroupName,OU=Groups,OU=Division,DC=company,DC=local");

As ek dit vanaf 'n opdragprompt uitvoer, werk dit goed.Wanneer dit onder IIS/PHP/ISAPI loop, breek dit uit.

Fatal error: Uncaught exception 'com_exception' with message 'Failed to create COM object `LDAP://CN=...[cut]...,DC=local':
An operations error occurred. ' in index.php
Stack trace:
  #0 index.php: com->com('LDAP://CN=...')
  #1 {main} thrown

IIS is gekonfigureer vir Windows-verifikasie (geen anoniem, geen basiese, geen opsomming) en ek verbind as dieselfde gebruiker as die opdragprompt.Ek kan geen spesifieke foute in die IIS-loglêers of die gebeurtenislog vind nie.

Die hoofdoel van hierdie oefening is om te weerhou daarvan om gebruikersbewyse in my skrif te hou en op IIS-verifikasie te vertrou om dit na die aktiewe gids deur te gee.Ek verstaan ​​dat jy LDAP kan gebruik om dieselfde ding te bereik, maar sover ek weet kan geloofsbriewe nie deurgegee word nie.

Miskien hou dit op een of ander manier verband met die fout wat ek kry wanneer ek dit na ASP probeer oordra.Ek kry fout 80072020 (wat ek tans opsoek).

Die gebeurtenislogboeke wys niks buitengewoon nie.Geen waarskuwings, geen foute nie.Volle sekuriteitsouditering is geaktiveer (sukses en mislukking op elke item in die sekuriteitsbeleid), en dit wys suksesvolle Windows-aanmeldings vir elke gebruiker wat ek teen die webblad staaf (wat verwag word.)

Was dit nuttig?

Oplossing

Aangesien u Windows-verifikasie in IIS gebruik, kan u sekere sekuriteitsgebeurtenisse in die Windows-gebeurtenislogboek hê.Ek sal die gebeurtenislogboek vir sekuriteitsgebeurtenisse sowel as toepassingsgebeurtenisse nagaan en kyk of u enige soort toestemmingskwessies ondervind.

Ook, aangesien jy basies net met AD kommunikeer via LDAP ... kan jy kyk na die gebruik van die 'n inheemse LDAP-biblioteek vir PHP eerder as 'n COM.

Jy sal die uitbreiding waarskynlik in jou php.ini moet aktiveer.Waarskynlik die moeite werd om na te kyk.

Ander wenke

Dit lyk of dit nou werk.

Ek het "Vertrou hierdie rekenaar vir delegering" vir die rekenaarobjek in Active Directory geaktiveer.Normaalweg kan IIS jou nie beide verifieer en jou dan oor die netwerk verpersoonlik nie (in my geval aan 'n domeinbeheerder om Active Directory navraag te doen) sonder dat die delegeringstrust geaktiveer is.

Jy moet net seker wees dat dit met Kerberos staaf en nie NTLM of een of ander opsommingstawing nie, want die opsomming word nie vertrou om as 'n nabootsingtoken te gebruik nie.

Dit het beide my PHP- en ASP-skrifte reggestel.

Wel, as jy LDAP wil gebruik, laat ek jou wys na die LDAP-verifikasiekode wat ons vir Maia Mailguard gebruik:soek die funksie wat genoem word lauth_ldap

Ek dink dit vereis ldap weergawe 3, so jy moet daardie parameter vir ldap stel.Om die wagwoord te verifieer, gebruik ons ​​die ldap bind-funksie om die ldap-bediener te laat staaf.

Ek is geen AD/COM/IIS deskundige nie, maar dit kan 'n toestemmingsprobleem wees.bv. het die IUSR_computername gebruiker nie toepaslike toegang binne die gids nie, of is jy nie bindend as 'n spesifieke gebruiker nie?

Die alarmklok vir my is die feit dat dit goed werk vanaf die opdragreël (bv.loop met jou toestemmings), maar misluk op IIS (bv.nie jou toestemmings nie).

Gelisensieer onder: CC-BY-SA met toeskrywing
Nie verbonde aan StackOverflow
scroll top