[PHP] Uitloggen van AD

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • burrug
  • Registratie: April 2005
  • Laatst online: 14-10-2024
Hallo,

Ik heb op mijn werk een intranetsite in welke gebruikers kunnen inloggen door middel van Active Directory. Is het nu ook mogelijk om dmv PHP een gebruiker te laten uitloggen, door bijvoorbeeld de variabelen $_SERVER['REMOTE_USER']; en $_SERVER['REMOTE_PASSWORD']; te unsetten ofzoiets?

Ik kan hier nl. ook niets over vinden op Google etc, maar misschien zoek ik verkeerd, dus heeft iemand hier ervaring mee of een tip waarnaar ik moet zoeken? Alle hulp is welkom

Tannoy Revolution R3 105W 6ohm, Marantz PM-7003 2x70W 8ohm, 2x JVG goud/goud, Marantz CD-6003, Marantz ST-6003


Acties:
  • 0 Henk 'm!

  • burrug
  • Registratie: April 2005
  • Laatst online: 14-10-2024
Ik doe nu het volgende:, wat helaas niet werkt:

<?php
function logoff() {
unset($PHP_AUTH_PW);
unset($AUTH_USER);
unset($_SERVER['REMOTE_USER']);
unset($_SERVER['AUTH_PASSWORD']);
unset($PHP_AUTH_PW);
unset($PHP_AUTH_USER);
unset($PHP_AUTH_USER);
unset($PHP_AUTH_PW);
}
?>
</div>
</td>
<td background="IMG/bckgrnd2.jpg" width="67">
<p align="center"><a href="javascript:parent.frames.close()" onclick="<?=logoff();?>" >Log uit</a></td>
?>

Tannoy Revolution R3 105W 6ohm, Marantz PM-7003 2x70W 8ohm, 2x JVG goud/goud, Marantz CD-6003, Marantz ST-6003


Acties:
  • 0 Henk 'm!

  • MTWZZ
  • Registratie: Mei 2000
  • Laatst online: 13-08-2021

MTWZZ

One life, live it!

Ik vrees dat je pech hebt. Uitloggen op een domein gebeurt via AD specifieke protocollen en die zijn niet (of nogal beta in Samba) op linux aanwezig.

Nu met Land Rover Series 3 en Defender 90


Acties:
  • 0 Henk 'm!

  • StevenK
  • Registratie: Februari 2001
  • Laatst online: 00:10
MTWZZ schreef op maandag 11 december 2006 @ 08:59:
Ik vrees dat je pech hebt. Uitloggen op een domein gebeurt via AD specifieke protocollen en die zijn niet (of nogal beta in Samba) op linux aanwezig.
Als iemand gebruik maakt van AD authenticatie in een intranet, vermoed ik dat 'ie met een IIS server draait. Om uit te loggen zou je de IIS sessie moeten beëindigen,maar ik zou niet weten hoe je dat vanuit php kunt doen.

Was advocaat maar vindt het juridische nog steeds leuk


Acties:
  • 0 Henk 'm!

  • burrug
  • Registratie: April 2005
  • Laatst online: 14-10-2024
Ik draai inderdaad een IIS 5.0 Server op Windows 2000, vergeten erbij te zetten, bij deze dus, sorry
Maar ik zou idd die sessie van IIS moeten beeindigen, maar hoe..? hihi tja

Tannoy Revolution R3 105W 6ohm, Marantz PM-7003 2x70W 8ohm, 2x JVG goud/goud, Marantz CD-6003, Marantz ST-6003


Acties:
  • 0 Henk 'm!

  • burrug
  • Registratie: April 2005
  • Laatst online: 14-10-2024
Ik heb nu mijn functie aangepast, maar dit werkt ook niet:
<?php
function logoff() {
unset($PHP_AUTH_PW);
unset($AUTH_USER);
unset($_SERVER['REMOTE_USER']);
unset($_SERVER['AUTH_PASSWORD']);
unset($PHP_AUTH_PW);
unset($PHP_AUTH_USER);
unset($PHP_AUTH_USER);
unset($PHP_AUTH_PW);

// LDAP variables
$ldaphost = "server"; // your ldap servers
$ldapport = 389; // your ldap server's port number

// Connecting to LDAP
$ldapconn = ldap_connect($ldaphost, $ldapport)
or die("Could not connect to $ldaphost");

// LDAP variables
$ldaphost2 = "server-2"; // secundaire AD-server
$ldapport2 = 389; // your ldap server's port number

// Connecting to LDAP
$ldapconn2 = ldap_connect($ldaphost2, $ldapport2)
or die("Could not connect to $ldaphost2");

ldap_close($ldapconn);
ldap_close($ldapconn2);
}
?>

Tannoy Revolution R3 105W 6ohm, Marantz PM-7003 2x70W 8ohm, 2x JVG goud/goud, Marantz CD-6003, Marantz ST-6003


Acties:
  • 0 Henk 'm!

  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 22:47

Creepy

Tactical Espionage Splatterer

Die unsets gaan niet werken voor AD want dat zin specifieke PHP variabelen. Je zult een functie moeten zoeken die doet wat jij wilt. Het enige wat je nu doet is een verbinding maken met een ldap server en vervolgens sluit je die verbinding gelijk.

Echter heeft PHP wat betreft LDAP eigenlijk alleen zoekfunctionaliteit (zie ook http://nl3.php.net/manual/nl/ref.ldap.php).

Hoe houdt de site bij hoe je bent ingelogd? Dat zie ik nergens terugkomen in je code. Misschien wordt er wel een sessie variabele gezet. Zou je het relevante deel van de inlog code eens kunnen bekijken en kijken of daar iets mee te doen is?

Nog een opmerking: Als je iets toe te voegen hebt vlak nadat je al hebt gepost, gebruik dan aub de edit knop i.p.v. een reply toe te voegen. Zo voorkom je dat je het topic onnodig "omhoog schopt".

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney


Acties:
  • 0 Henk 'm!

  • StevenK
  • Registratie: Februari 2001
  • Laatst online: 00:10
Volgens mij kan het niet vanuit PHP, maar wel vanuit ASP, omdat het de hele sessie tussen client & IIS is de geauthenticeerd is.

Je zou dus een asp pagina kunnen maken waarin je de logout forceert.

Zie hier How To Clear Logon Credentials to Force Reauthentication voor een voorbeeld.

Een alternatief is je applicatie om te bouwen naar NTML authenticatie vanuit php.

[ Voor 28% gewijzigd door StevenK op 11-12-2006 09:23 ]

Was advocaat maar vindt het juridische nog steeds leuk


Acties:
  • 0 Henk 'm!

  • burrug
  • Registratie: April 2005
  • Laatst online: 14-10-2024
Creepy schreef op maandag 11 december 2006 @ 09:21:
Die unsets gaan niet werken voor AD want dat zin specifieke PHP variabelen. Je zult een functie moeten zoeken die doet wat jij wilt. Het enige wat je nu doet is een verbinding maken met een ldap server en vervolgens sluit je die verbinding gelijk.

Echter heeft PHP wat betreft LDAP eigenlijk alleen zoekfunctionaliteit (zie ook http://nl3.php.net/manual/nl/ref.ldap.php).

Hoe houdt de site bij hoe je bent ingelogd? Dat zie ik nergens terugkomen in je code. Misschien wordt er wel een sessie variabele gezet. Zou je het relevante deel van de inlog code eens kunnen bekijken en kijken of daar iets mee te doen is?

Nog een opmerking: Als je iets toe te voegen hebt vlak nadat je al hebt gepost, gebruik dan aub de edit knop i.p.v. een reply toe te voegen. Zo voorkom je dat je het topic onnodig "omhoog schopt".
Ik heb geen inlogscript, je krijgt een apart venster om je username en password in te vullen om te authentiseren met Active Directory. Ik ga even kijken naar de mogelijkheden van ASP

Tannoy Revolution R3 105W 6ohm, Marantz PM-7003 2x70W 8ohm, 2x JVG goud/goud, Marantz CD-6003, Marantz ST-6003


Acties:
  • 0 Henk 'm!

  • Evilbee
  • Registratie: November 2002
  • Laatst online: 22:58
Dus wat je eigenlijk zoekt is een mogelijkheid om uitloggen op de http-authenticatie.

Op http://nl3.php.net/manual/en/features.http-auth.php staan daarvoor wel een aantal suggesties.

LinkedIn - Collega worden?


Acties:
  • 0 Henk 'm!

Anoniem: 3431

Wil je die gebruiker afmelden bij windows, of alleen uitloggen op de intranet-site? Via PHP uitloggen uit windows kan je afaik vergeten (en zou ook niet weten waarom je dat zou willen).

Uitloggen op je intranet-site is afhankelijk van de methode die je gebruikt wsch een sessie of een cookie weggooien.

Acties:
  • 0 Henk 'm!

  • StevenK
  • Registratie: Februari 2001
  • Laatst online: 00:10
Evilbee schreef op maandag 11 december 2006 @ 16:04:
Dus wat je eigenlijk zoekt is een mogelijkheid om uitloggen op de http-authenticatie.

Op http://nl3.php.net/manual/en/features.http-auth.php staan daarvoor wel een aantal suggesties.
Nu ga je er al vanuit dat er geen gebruik wordt gemaakt van de IIS authenticatie, terwijl dat in een intranet echt de makkelijkste oplossing is.

Was advocaat maar vindt het juridische nog steeds leuk


Acties:
  • 0 Henk 'm!

  • frickY
  • Registratie: Juli 2001
  • Laatst online: 09-06 21:17
De browser onthoud de loginnaam en het wachtwoord, en stuurt die bij elke request mee. De enige manier om deze eruit te krijgen is door de browser wijs te maken dat ze fout zijn;
PHP:
1
header("HTTP/1.1 401 Unauthorized");
The request requires user authentication. The response MUST include a WWW-Authenticate header field (section 14.47) containing a challenge applicable to the requested resource. The client MAY repeat the request with a suitable Authorization header field (section 14.8). If the request already included Authorization credentials, then the 401 response indicates that authorization has been refused for those credentials. If the 401 response contains the same challenge as the prior response, and the user agent has already attempted authentication at least once, then the user SHOULD be presented the entity that was given in the response, since that entity might include relevant diagnostic information. HTTP access authentication is explained in "HTTP Authentication: Basic and Digest Access Authentication" [43].

[ Voor 60% gewijzigd door frickY op 11-12-2006 18:30 ]


Acties:
  • 0 Henk 'm!

  • StevenK
  • Registratie: Februari 2001
  • Laatst online: 00:10
frickY schreef op maandag 11 december 2006 @ 18:30:
De browser onthoud de loginnaam en het wachtwoord, en stuurt die bij elke request mee. De enige manier om deze eruit te krijgen is door de browser wijs te maken dat ze fout zijn;
PHP:
1
header("HTTP/1.1 401 Unauthorized");
Hé, dat werkt als een zonnetje.

Was advocaat maar vindt het juridische nog steeds leuk

Pagina: 1