Autor | Zpráva | ||
---|---|---|---|
tomas3333 Profil |
#1 · Zasláno: 17. 7. 2010, 20:36:22
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 |
#2 · Zasláno: 18. 7. 2010, 16:15:27
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 |
#3 · Zasláno: 18. 7. 2010, 18:42:20
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 |
#4 · Zasláno: 18. 7. 2010, 19:27:33
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 |
#5 · Zasláno: 18. 7. 2010, 20:47:47
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 |
#6 · Zasláno: 18. 7. 2010, 21:12:52
tak pak asi použij své řešení - jednu společnou autentizační cookie a sessions oddělené.
|
||
Časová prodleva: 14 let
|
0