Cytat
czyli z aplikacji A, wchodzę w zaloguj po czym przekierowuje mnie na adres z openID i tam wpisuje login z hasłem, po zalogowaniu (ale specjalnym kontem jaki ma openID, czy danimi z aplikacji?) i poprawnej weryfikacji odsyła mnie z powrotem?
Załóżmy że serwisy korzystające z openid to A B i C a serwis trzymający openid to O:
W A,B lub C masz linki do serwisu O typu
http://o.com/?akcja=pobierz_dane&hash=...om/openidlogin/ na taki link klika user i zostaje przekierowany - jest teraz na serwisie o.com. Tutaj serwis O sprawdza czy user jest na nim zalogowany - jeśli nie jest to pokazuje się form logowania (logowania do systemu O) po zalogowaniu, lub jak user był zalogowany wcześniej następuje przekierowanie na adres:
http://a.com/openidlogin/?hash=funkcja(123...s_email@xxx.yyyNa tej stronie system A sprawdza czy hash został poprawnie przetworzony i czy zgadza się referer (o.com) a następnie sprawdza czy ma już konto dla podanego adresu e-mail. Jeśli konto jest następuję logowanie i przekierowanie do głównej strony a.com. Jeśli nie ma konta to tworzone jest konto dla tego adresu, generowane jakieś hasło i wysyłany mail z tym hasłem na ten adres (tak by user miał możliwość zalogowania się w tradycyjny sposó

. Następnie tak samo jest autologowanie i redir do głównej a.com.
sama idea hashy polega na wygenerowaniu jakiegoś do linku na a.com. Hash ten jest przetwarzany jakąś funkcją na o.com i odsyłany - zarówno a.com jak i o.com muszą znać algorytmu generowania i sprawdzania takiego hasha.
Cytat
Konto openID, musi być nowe czy zrobić to na zasadzie logowania na bazie danych z aplikacji A, tylko po weryfikacji klucza/hashu/czegokolwiek? I czy gdzieś te dane trzymać, czy "openID" ma mieć je u siebie...
Konto openid na serwerze o.com musi być utworzone na samym początku najlepiej. Tam powinny być przechowywane główne dane usera. Po całej procedurze logowania za pośrednictwem o.com na serwisie a.com to Ty decydujesz jakie dane ma wysłać o.com do serwisu a.com - te dane mogą być wtedy zapisane także w a.com. Przykład z życia wzięty:
Jest strona, możesz się na niej zalogować poprzez Google. Klikasz na link, jesteś zalogowany w google, zgadzasz się i wtedy strona ta dostaje jakiś komplet info o Tobie. Google wysyła AFAIK imię, nazwisko, email i coś tam jeszcze. ALE NIGDY HASEŁ itp.
Cała zasada systemów typu openid polega na tzw. poręczeniu. Oznacza to że serwis O bierzę na siebie pełną odpowiedzialność za tożsamość użytkownika. Wchodząc na O logujesz się (tylko ty znasz dane logowania). Serwis A prosi O tylko o to by powiedział jaki user się zalogował - wraz z systemem hashy i tym podobnych mechanizmów może ufać serwisowi O