Zasadniczo chcę tylko wiedzieć, jak działa system pojedynczego logowania StackExchange?
W sieci SE musisz zaloguj się tylko raz na jednej ze stron, aby automatycznie zalogować się na innych stronach podczas odwiedzin.
Jak powinienem wdrożyć taką funkcję w mojej własnej sieci witryn?
Zakładam, że używa pliku cookie, który znajduje się w przeglądarce użytkownika, a następnie uwierzytelnia go w witrynie źródłowej. Jeśli jest to zgodne z prawem, automatycznie loguje użytkownika.
Odpowiedzi:
0 dla odpowiedzi № 1Musisz zaimplementować SAML lub oauth2, aby umożliwić sso w twojej sieci.
W przypadku SAML strony podrzędne będą dostawcami usług lub serwerami zasobów.
Podczas gdy musisz skonfigurować i dostawca tożsamości.
Sekwencja wydarzeń będzie taka. 1. Użytkownik trafia na adres URL strony z piosenkami, ta strona jest serwerem zasobów i nie obsługuje uwierzytelniania. 2. Aby uwierzytelnić serwer zasobów, po podpisaniu go zbuduje żądanie uwierzytelnienia SAML i przekieruje do dostawcy tożsamości. Idp weryfikuje podpis po otrzymaniu żądania autoryzacji. 3. Użytkownik otrzyma formularz logowania, użytkownik musi zakończyć poświadczenia logowania. 4. Po uwierzytelnieniu użytkownika idp wygeneruje token SAMl i przekieruje z powrotem na serwer zasobów. 5. Serwer zasobów wyodrębni informacje o tożsamości z tokena SAML, serwer zasobów zaloguje użytkownika za pomocą sesji lub pliku cookie.
Zależy od tego, w jakiej technologii pracujesz, zaimplementowałem ją w PHP przy użyciu simplesamlphp.