Single Sign-on módszer alkalmazása Windows és Drupal weboldal estére

simonf képe

Hello!

Arról érdeklődnék, hogy bármilyen formában megvalósítható, illetve működőképes lehetne egy olyan elképzelés, miszerint ha a Windowsban és egy adott Drupal weboldalon ugyanazt a felhasználónevet és jelszavat használom, akkor az operációs rendszerbe belépve már ne kelljen a portálra külön bejelentkeznem (egyfajta Single Sign-on megoldás). Milyen rendszer(ek), illetve környezet kellene ennek megvalósításához, ha ez egyáltalán valahogy megvalósítható?

Válaszokat előre is köszönöm!

Üdvözlettel: Simon Ferenc

Drupal verzió: 
Fórum: 
york képe

Szerinted a webszerver honnan tudja, hogy te beleptel egy windowson?

0
0
csg képe

A válasz az NTLM authentikáció. Céges intraneteken elterjedt megoldás.

A lényeg, hogy a felhasználónevedet a böngésző tudja küldeni a HTTP a fejlécben, és ezt aztán elérhetővé lehet tenni a PHP-ban környezeti változóként. Ehhez persze a böngészőt és a webszervert is megfelelően be kell állítani, és a Drupalt is fel kell rá készíteni: http://drupal.org/project/webserver_auth

Ha IIS a webszerver, akkor simán fog menni, de Apache alatt kell hozzá plusz modul (nem Drupal modul, hanem Apache modul értelemszerűen). A böngészőt is be kell állítani hozzá, IE és FF alatt biztos működik, próbáltam.

Egyébként nemrég pont erre készítettem egy Drupal modult, amivel Apache alatt is tud működni az NTLM azonosítás mindenféle plusz beállítás nélkül, amennyiben a PHP Apache modulként fut. Tervezem, hogy majd megosztom a drupal.org-on. Ha esetleg szükséged lenne rá addig is, keress meg magánban.

0
0

--
Csonka Gergely
http://cheppers.com

york képe

Ugyerted, hogy a bongeszo elkuldi a bejelentkezeskori felhasznalo nevem es jelszavam minden honlapnak?
Vagy meg kell mondani milyen oldalnak milyen felhasznaloinevet es jelszot kuldjon?

0
0
csg képe

A jelszót nem küldi el, csak az NT login nevedet, és azt is csak azoknak a honlapoknak, amiket beállítottál a böngésződben.

0
0

--
Csonka Gergely
http://cheppers.com

Paal képe

Abból indul ki az egész, hogy az adott win-es gép windows-os tartományba van léptetve, a felhasználó az adott tartományba van regisztrálva. Nem a szokásos win login ablak jelenik meg ilyenkor:

Felhasználónév:
Jelszó:
Tartomány:

Ellenőrzéskor az adott tartomány AD (Microsoft Active Directory) szerverén ellenőrzi a felhasználót. Ha minden OK, akkor belépteti a lokális gépre. Ha böngészőben megnyitod pl. az intranetes oldalt, akkor a böngésző elküldi a "logged userid"-t az NTLM modult futtató intranetes webszervernek. A szerver ekkor simán hozzáférést enged a védett tartalomhoz, hiszen a windows MÁR ELVÉGEZTE A FELHASZNÁLÓ HITELESÍTÉSÉT, nincs szükség újbóli azonosításra.

0
0

--
Palócz Paal Pál, a drupal.hu admin csoportjának tagja
Ajánlott olvasmány: Eric Steven Raymond - Hogyan kérdezzünk okosan

Paal képe

Mit kell írni a FF about:config-jába hozzá?

0
0

--
Palócz Paal Pál, a drupal.hu admin csoportjának tagja
Ajánlott olvasmány: Eric Steven Raymond - Hogyan kérdezzünk okosan

Paal képe

Mit kell írni a FF about:config-jába hozzá?

0
0

--
Palócz Paal Pál, a drupal.hu admin csoportjának tagja
Ajánlott olvasmány: Eric Steven Raymond - Hogyan kérdezzünk okosan

csg képe

Keresd meg a "network.automatic-ntlm-auth.trusted-uris" sort, és írd be a kívánt címeket így:
http://egyik.hu,http://masik.hu

0
0

--
Csonka Gergely
http://cheppers.com

Paal képe

Tökéletesen működik (bár nem Drupal rendszerhez tudtam kapásból használni) de máshoz nagyon jól jött).

0
0

--
Palócz Paal Pál, a drupal.hu admin csoportjának tagja
Ajánlott olvasmány: Eric Steven Raymond - Hogyan kérdezzünk okosan

simonf képe

Hello!

Írtam levelet a Drupalon keresztül, nem tudom megkaptad-e, de a lényeg, hogy érdekelne a modul (apache webszerver miatt). Egyébként köszi a segítséget mindenkitől, aki hozzászólt.

0
0
aries képe

A neten van jópár megoldás Kerberos és NTLM alapú beléptetésre Apache-hoz, az IIS pedig ezt alapból tudja. A PHP scripted megkapja a $_SERVER['LOGON_USER'], $_SERVER['REMOTE_USER'] vagy hasonló változóban a felhasználó nevét és betöltöd a hook_init() -ben a felhasználó adatait a $GLOBALS['user'] -be, a gyorsaság kedvéért érdemes lehet egy $_SESSION['user'] -be is betölteni, hogy ne kelljen minden oldalletöltésnél egy user_load(). Ha pedig nincs ilyen user, akkor létrehozol egyet a windowsos felhasználói névvel, mented a user_save() -vel, és utána ezt töltöd be. Ahogy előttem is írták szükség lesz a gép beléptetésére a tartományba vagy egy megfelelő jogosultsággal rendelkező Kerberos-felhasználóra.

0
0