Autor Zpráva
tomas3333
Profil
Riešim jednotné prihlásenie na viac webov. Hneď na úvod - nie, nechce použiť OpenID.

Mám pripravené prostredie pre prácu so službami, pomerne jednoduché, bez WSDL dokumentu ale funkčné. Funguje akýsi centrálny server ktorý sa vie pripojiť na ďalšie weby ak by to bolo potrebné a weby sa môžu na tento server dotazovať.

Zatiaľ som prišiel s niečim takýmto:

Návštevník sa prihlási na webe A. Vytvorí sa SESSION, užívateľ je na webe normálne prihlásený. Následne sa vytvorí token a spolu s ID (už teraz) člena sa uloží na centrálny server do jeho DB. Vytvorí sa cookies s ID a tokenom pre celú doménu.

Návštevník teraz príde na web B. Web si zistí, že existuje cookies s tokenom, zistí si preto z centrálneho serveru info o užívateľovi a vytvorí SESSION, čím užívateľa vlastne prihlási. Zdá sa vám toto riešenie funkčné?
AM_
Profil
tomas3333:
Zdá sa vám toto riešenie funkčné?
to je dost zvláštní otázka - dokud řešení není zkompletované a spuštěné, těžko soudit, zda je funkční. Zřejmě se ptáš na to, zda je to takto realizovatelné. Viz dále.

Web si zistí, že existuje cookies s tokenom
existuje cookie nebo existují cookies? shoda podmětu s přísudkem v čísle...

Web si zistí, že existuje cookies s tokenom
jak si to zjistí? pokud se v prohlížeči vytvoří cookie pro jeden web (example1.com), jiné weby (example2.com) k ní nemají přístup.

šlo by to řešit třeba takto:
1. jeden centrální autentizační server, auth.example.com
2. návštěvník otevře nějakou službu, třeba sluzba1.com
3. zde není přihlášen: přesměruje se na auth.example.com/?login=sluzba.com
4. auth.example.com zjistí, zda je přihlášen centrálně
4a není: zobrazí přihlašovací form
5. (již je přihlášen) do DB uloží nějaký jednorázový ověřovací kód (třeba hash timestampu+už.jména+hesla+salt), řekněme 1234567890
6. přesměruje na sluzba.com/?user=franta&login=1234567890
7. sluzba.com si v databázi ověří kód, ten z databáze smaže (aby někdo URL nemohl ukrást a přihlásit se odjinud) a vytvoří si vlastní cookie
tomas3333
Profil
existuje cookie nebo existují cookies? shoda podmětu s přísudkem v čísle...
myslel som, že tu neriešime gramatiku

jak si to zjistí? pokud se v prohlížeči vytvoří cookie pro jeden web (example1.com), jiné weby (example2.com) k ní nemají přístup.
Cookie s tokenom by bola pre celú doménu (vlastne sa bude jednať len o hlavnú doménu a jej subdomény), to nie je problém nastaviť.
AM_
Profil
tomas3333:
myslel som, že tu neriešime gramatiku
gramaticky špatně napsaná věta může nabrat zcela jiného významu. Je dobré vědět, zda mluvíš o jedné nebo více sušenkách.

Cookie s tokenom by bola pre celú doménu (vlastne sa bude jednať len o hlavnú doménu a jej subdomény), to nie je problém nastaviť.
pokud je to celé v rámci jedné domény, tak si prostě nastav sessions globálně pro celou doménu a je vyřešeno, ne? (sessions se také u klienta identifikují přes cookie, něco jako session.cookie_domain) Pak můžeš přihlášení udělat normálně jako by se jednalo o jeden velký web.
tomas3333
Profil
No tam sa mi ale nepaci, ze budu pristupne uplne vsetky sessions na vsetky subdomeny. Ono to zrejme nicomu vadit nebude, ale... Navyse na to treba siahnut do php.ini, kde nemam pristup.
AM_
Profil
tak pak asi použij své řešení - jednu společnou autentizační cookie a sessions oddělené.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0