SSO

Mechanizm pozwalający zalogować się raz i uzyskać dostęp do wielu powiązanych aplikacji bez ponownego podawania danych logowania.

SSO (Single Sign-On) to mechanizm uwierzytelniania, który pozwala zalogować się raz, jednym kontem, a potem korzystać z wielu osobnych aplikacji bez podawania hasła za każdym razem. Logujesz się np. kontem firmowym i masz od ręki dostęp do poczty, Slacka, Jiry i wewnętrznego panelu — bez czterech różnych loginów i bez karteczek z hasłami przyklejonych do monitora.

Jak to działa i po co

Sednem SSO jest oddzielenie uwierzytelniania (kim jesteś) od samych aplikacji. Tożsamość trzyma jedno centralne miejsce — Identity Provider (IdP), np. Keycloak, Okta, Microsoft Entra ID czy Google Workspace. Poszczególne aplikacje (Service Provider) nie sprawdzają już Twojego hasła samodzielnie — odsyłają Cię do IdP, a w zamian dostają podpisany token albo assertion potwierdzający, że jesteś tym, za kogo się podajesz.

W praktyce stoją za tym dwa standardy: starszy SAML 2.0 (wymiana podpisanych dokumentów XML, popularny w korporacjach) oraz nowszy OpenID Connect zbudowany na OAuth 2.0 (lekkie tokeny JWT, króluje w aplikacjach webowych i mobilnych). Po pierwszym logowaniu IdP utrzymuje sesję, więc kolejne aplikacje wpuszczają Cię „po cichu”, bez kolejnego ekranu logowania.

Przykład z praktyki

Załóżmy, że stawiasz Keycloak jako IdP i podpinasz pod niego firmową aplikację przez OpenID Connect. W konfiguracji klienta ustawiasz redirect_uri, a aplikacja kieruje użytkownika na endpoint autoryzacji:

GET /realms/firma/protocol/openid-connect/auth?client_id=panel&response_type=code&scope=openid&redirect_uri=https://panel.firma.pl/callback

Po zalogowaniu Keycloak odsyła code, który aplikacja wymienia na id_token i access_token. Otwierasz potem drugą aplikację podpiętą pod ten sam realm — i wchodzisz od razu, bo sesja w IdP już istnieje. To jest właśnie ten moment „działa magia”.

Częste błędy i mity

Mit numer jeden: SSO to to samo co menedżer haseł. Nie. Menedżer haseł nadal trzyma osobne hasła do każdej usługi i podstawia je za Ciebie. SSO sprawia, że osobnych haseł w ogóle nie ma — jest jedna tożsamość.

Pułapka numer dwa: SSO to single point of failure. Skoro jeden login otwiera wszystko, to jeden przejęty login otwiera wszystko atakującemu. Dlatego SSO bez MFA (drugiego składnika) to proszenie się o kłopoty. Pamiętaj też o Single Logout — wylogowanie z jednej aplikacji nie zawsze kończy sesję wszędzie, jeśli tego świadomie nie skonfigurujesz.

Pojęcia powiązane: OAuth 2.0, OpenID Connect, SAML, Identity Provider, MFA, federacja tożsamości, JWT, LDAP, RBAC.