IdP

Cyber Katalog 9 min czytania Identity Provider Dostawca tożsamości Serwer IdP

Definicja IdP

IdP (Identity Provider, dostawca tożsamości) to usługa, która uwierzytelnia użytkownika i przekazuje aplikacji potwierdzenie jego tożsamości w postaci tokenu SAML lub OpenID Connect. Aplikacja, zwana service providerem (SP), nie musi wtedy przechowywać haseł i ufa wystawcy tokenu zamiast sprawdzać poświadczenia samodzielnie. Na tym opiera się logowanie jednokrotne (SSO).

IdP opisuje rolę w protokole, a nie produkt, więc może ją pełnić usługa w chmurze, serwer utrzymywany we własnej infrastrukturze albo moduł większej platformy. W SAML 2.0 nazywa się ją identity provider, a w OpenID Connect ten sam podmiot to OpenID Provider (OP), aplikacja zaś to Relying Party (RP). Nazwy są różne, ale układ ten sam: jedna strona uwierzytelnia, druga polega na jej wyniku.

Jedna organizacja bywa jednocześnie IdP dla własnych aplikacji i SP wobec zewnętrznego IdP partnera, bo rolę wyznacza kierunek zaufania. Podobnie brzmiący skrót IDPS oznacza zwykle systemy wykrywania i zapobiegania włamaniom, czyli inną klasę narzędzi, opisaną w hasłach IDS i IPS.

IdP SP
Pytanie, na które odpowiada Kim jest ten użytkownik i czy wykazał to poprawnie? Czy ufam temu tokenowi i co wolno temu użytkownikowi w mojej aplikacji?
Widzi hasło i drugi składnik Tak Nie
Wystawia token Tak Nie, tylko go sprawdza
Nazwa w OpenID Connect OpenID Provider (OP) Relying Party (RP)

Jak to działa

Typowy przebieg to logowanie inicjowane przez aplikację (SP-initiated), w którym użytkownik zaczyna od aplikacji, a dopiero ona kieruje go do dostawcy.

Schemat logowania przez dostawcę tożsamości: aplikacja przekierowuje do IdP, IdP sprawdza hasło i drugi składnik, wystawia token, a aplikacja ufa jego podpisowi
Przy logowaniu przez IdP aplikacja nie widzi hasła: dostaje podpisany token i musi tylko zdecydować, czy ufa kluczowi jego wystawcy
  1. Użytkownik otwiera aplikację, która nie ma jego sesji i nie wie, kim jest.
  2. Aplikacja przekierowuje przeglądarkę do IdP z żądaniem uwierzytelnienia.
  3. IdP sprawdza hasło i drugi składnik, o ile polityka go wymaga, a jeżeli użytkownik ma już ważną sesję u dostawcy, pomija ponowne logowanie. Na tym polega SSO.
  4. IdP zwraca token: asercję SAML albo ID Token OpenID Connect.
  5. Aplikacja weryfikuje podpis, sprawdza, czy token jest przeznaczony dla niej, i zakłada własną sesję.

W SAML 2.0 token to asercja, czyli dokument XML z oświadczeniem o użytkowniku, o sposobie jego uwierzytelnienia i o jego atrybutach. W OpenID Connect to ID Token, czyli JSON Web Token (JWT) z danymi o uwierzytelnieniu użytkownika.

Zaufanie powstaje przed pierwszym logowaniem. W SAML IdP i SP wymieniają metadane, czyli adresy punktów końcowych i klucze do weryfikacji podpisów, a w OpenID Connect aplikację rejestruje się u dostawcy i podpis tokenu weryfikuje jego kluczem. Bez tej wymiany aplikacja nie ma podstaw, by uznać cudzy token.

Wariant inicjowany przez dostawcę (IdP-initiated) działa odwrotnie: użytkownik jest już zalogowany u IdP, na przykład w portalu z listą aplikacji, klika jedną z nich, a IdP wysyła asercję do aplikacji bez wcześniejszego żądania z jej strony. Ten wariant opisuje standard SAML, ale nie każde wdrożenie go dopuszcza.

Po zalogowaniu aplikacja prowadzi własną sesję, niezależną od sesji u dostawcy, a czas trwania obu ustawia konfiguracja po każdej stronie. Zakończenie sesji u IdP nie musi więc kończyć sesji w aplikacjach, bo zależy to od obsługi wylogowania po obu stronach.

Struktura i klasyfikacja

IdP można klasyfikować na dwóch niezależnych osiach: według protokołu, którym przekazuje tożsamość, i według tego, kto go utrzymuje.

Protokoły: SAML, OpenID Connect i OAuth 2.0

SAML 2.0 to oparty na XML standard organizacji OASIS z 2005 roku, a OpenID Connect (Core 1.0 z 2014 roku) to warstwa tożsamości zbudowana na OAuth 2.0. OAuth 2.0 (RFC 6749, 2012) to rama autoryzacji, która sama nie opisuje, jak uwierzytelnia się użytkownika.

Porównanie trzech protokołów: SAML 2.0 i OpenID Connect odpowiadają na pytanie, kim jest użytkownik, a OAuth 2.0 na pytanie, co wolno aplikacji
Dwa pierwsze protokoły służą do logowania, trzeci do delegowania dostępu. Pomylenie ich daje logowanie zbudowane na protokole, który o logowaniu nic nie mówi
Protokół Na jakie pytanie odpowiada Token Typowe środowisko
SAML 2.0 Kim jest użytkownik? asercja XML aplikacje firmowe, SaaS
OpenID Connect Kim jest użytkownik? ID Token (JWT) aplikacje webowe i mobilne
OAuth 2.0 Co wolno aplikacji? access token dostęp do API

Model wdrożenia

Drugi podział dotyczy tego, kto utrzymuje IdP, a produkty w tabeli są tylko przykładami.

Model Kto utrzymuje Przykłady
Usługa w chmurze dostawca usługi Microsoft Entra ID, Okta
Serwer własny (self-hosted) organizacja, we własnej infrastrukturze Keycloak (open source), AD FS (rozwiązanie on-premise firmy Microsoft)

Wdrożenia hybrydowe łączą oba modele, na przykład katalog lokalny z IdP w chmurze.

Federacja tożsamości to układ zaufania między IdP i aplikacjami z różnych organizacji: użytkownik loguje się u IdP swojej firmy, a aplikacja partnera honoruje wynik i nie musi przechowywać jego hasła.

W szerszym kontekście

Trzy poziomy pojęć: IAM obejmuje konta, role i cykl życia, IdP uwierzytelnia i wystawia tokeny, a SSO jest efektem widocznym dla użytkownika
Rola IdP kończy się na uwierzytelnieniu. Konta, role i uprawnienia to szersza warstwa, a SSO to tylko to, co z tego widzi użytkownik

Najszerszy poziom to zarządzanie kontami, rolami i uprawnieniami wraz z cyklem życia pracownika, w skrócie IAM. IdP jest komponentem tej warstwy: korzysta z jej kont i atrybutów, a w zamian uwierzytelnia i wystawia tokeny. W produktach funkcje obu poziomów często się zlewają, ale pojęcia pozostają osobne. SSO to efekt widoczny dla użytkownika: jedno logowanie, wiele aplikacji.

  • IdP to miejsce, w którym drugi składnik (MFA) da się wymusić dla wszystkich podpiętych aplikacji naraz. Metody bez hasła, takie jak passkey, działają, o ile dostawca je obsługuje.
  • Zero Trust traktuje tożsamość jako jeden z sygnałów decyzji o dostępie. IdP dostarcza ten sygnał, ale model wymaga też oceny kontekstu i uprawnień przy każdym dostępie.
  • CIAM to odmiana dla klientów i partnerów zewnętrznych. IdP pełni tam tę samą rolę.
  • PAM chroni konta uprzywilejowane. IdP go nie zastępuje: uwierzytelnienie administratora to co innego niż kontrola tego, co robi po zalogowaniu.
  • IdP widzi każde logowanie do podpiętych aplikacji, więc jest naturalnym źródłem zapisów: kto, kiedy, do której aplikacji i z jakim wynikiem. Zwykle trafiają do SIEM, gdzie służą do wykrywania anomalii i do audytu.

Zastosowanie w praktyce

  • Logowanie do aplikacji SaaS. Dostęp do usług zewnętrznych opiera się na jednym koncie firmowym, więc pracownik nie zakłada osobnego hasła do każdej aplikacji.
  • Drugi składnik w jednym miejscu. Polityka MFA ustawiona raz u IdP obejmuje wszystkie aplikacje, które przez niego się logują, a konta lokalne w aplikacji, jeśli nadal istnieją, tej polityki nie widzą.
  • Odebranie dostępu przy odejściu pracownika. Dezaktywacja konta u IdP odcina nowe logowania do wszystkich podpiętych aplikacji naraz, ale nie kończy automatycznie aktywnych sesji, wydanych tokenów ani kont i kluczy API poza IdP, bo ich wygaśnięcie zależy od konfiguracji każdej aplikacji.
  • Federacja z partnerami. Pracownicy partnera korzystają z aplikacji organizacji, logując się u własnego dostawcy.
  • Własne aplikacje. Zespół buduje logowanie na standardowym protokole zamiast własnej bazy haseł, a skoro mniej kodu przechowuje poświadczenia, mniej kodu trzeba chronić.

Najczęstsze nieporozumienia

"IdP to to samo co IAM" - fałsz. IdP uwierzytelnia i wystawia tokeny, a konta, role, uprawnienia i ich cykl życia to szerszy obszar IAM. Produkty często łączą oba w jednym panelu, ale rozróżnienie zostaje.

"OAuth 2.0 służy do logowania" - fałsz. OAuth 2.0 opisuje delegowanie dostępu, a sposób uwierzytelnienia użytkownika zostawia poza zakresem. Logowanie standaryzuje OpenID Connect, który dodaje do OAuth 2.0 ID Token. Access token służy do wywołań API, a nie do ustalania, kim jest użytkownik.

"SSO bez MFA jest bezpieczne" - fałsz. SSO zmniejsza liczbę haseł, ale jedno z nich otwiera wtedy wszystkie podpięte aplikacje, więc siła logowania do IdP wyznacza siłę ochrony całego zestawu. Drugi składnik, najlepiej odporny na phishing, powinien być tam regułą.

"IdP to pojedynczy punkt awarii, więc lepiej go nie wdrażać" - ryzyko jest realne, ale wniosek z niego nie wynika. Alternatywą są osobne hasła w każdej aplikacji, z własnymi słabościami: powtórzeniami, brakiem jednej polityki i ręcznym odbieraniem dostępu. Centralny IdP trzeba za to zaprojektować na dwa różne scenariusze.

Rozgałęzienie skutków: gdy dostawca tożsamości jest niedostępny, nowe logowania do podpiętych aplikacji nie przechodzą, a gdy zostaje przejęty, napastnik loguje się jako dowolny użytkownik wszędzie, gdzie ufa się kluczowi dostawcy
Awaria zamyka drzwi, przejęcie je otwiera. Na pierwszy przypadek pomaga redundancja, na drugi ochrona administratorów IdP i monitoring, a żaden środek nie rozwiązuje obu naraz

Przy niedostępności typowe środki to redundancja IdP, udokumentowana procedura awaryjna i konta typu break-glass dla administratorów, przechowywane poza IdP. Przejęcie jest groźniejsze, bo napastnik, który zdobędzie klucz podpisujący tokeny albo konto administratora dostawcy, może wystawiać tokeny dla dowolnego użytkownika. Dlatego administratorów IdP chroni najsilniejsze uwierzytelnienie, zmiany konfiguracji są ograniczone i rejestrowane, logowania monitorowane, a na wypadek przejęcia przygotowuje się plan wymiany kluczy i unieważniania sesji.

FAQ

IdP co to jest?

IdP to rola w protokole logowania: system, który sprawdza tożsamość użytkownika i potwierdza ją aplikacji podpisanym tokenem. Nie jest osobną kategorią produktów, tylko funkcją, którą pełni usługa w chmurze albo serwer własny. Dzięki niej aplikacje nie muszą przechowywać haseł.

Co to jest Identity Provider i czym różni się od service providera?

Identity Provider uwierzytelnia użytkownika i wystawia token, a service provider to aplikacja, która ten token przyjmuje i na jego podstawie udziela dostępu. Tylko IdP widzi hasło i drugi składnik. W OpenID Connect odpowiednikami są OpenID Provider i Relying Party.

Jak działa SSO z IdP?

Użytkownik otwiera aplikację, a ta przekierowuje go do IdP, który od razu wystawia token, jeśli użytkownik ma tam ważną sesję, a w przeciwnym razie najpierw go uwierzytelnia. Przy kolejnej aplikacji ten sam mechanizm trafia na istniejącą sesję u dostawcy, więc hasło nie jest już potrzebne. Czas ważności sesji ustala konfiguracja.

Czym różni się IdP od IAM?

IAM obejmuje całe zarządzanie dostępem: konta, role, uprawnienia i cykl życia pracownika. IdP jest jego komponentem odpowiedzialnym za uwierzytelnienie i wystawianie tokenów. Wiele produktów łączy obie funkcje, dlatego pojęcia bywają używane zamiennie, choć opisują różne poziomy.

IdP a OAuth i OpenID Connect: czy to to samo?

Nie. IdP to rola, a OAuth 2.0 i OpenID Connect to protokoły, którymi się posługuje. OAuth 2.0 dotyczy autoryzacji, czyli tego, co wolno aplikacji, a OpenID Connect działa na OAuth 2.0 i dodaje uwierzytelnienie: dostawca, w tej odmianie zwany OpenID Provider, wystawia ID Token. Drugą ścieżką jest SAML 2.0.

Powiązane pojęcia

Powiązane pojęcia
  • SSO - logowanie jednokrotne, które opiera się na tokenach wystawianych przez IdP.
  • MFA - drugi składnik uwierzytelniania, najłatwiejszy do wymuszenia w jednym miejscu, u IdP.
  • OAuth 2.0 - rama autoryzacji, na której zbudowano OpenID Connect.
  • Zero Trust - model dostępu, w którym tożsamość z IdP jest jednym z sygnałów decyzji.
  • CIAM - zarządzanie tożsamością klientów i partnerów zewnętrznych.
  • PAM - kontrola kont uprzywilejowanych, której IdP nie zastępuje.

Bezpieczeństwo infrastruktury

Znajdziesz tu powiązane pojęcia dotyczące tożsamości, uwierzytelniania i kontroli dostępu.

Zobacz kategorię

Kanał RSS

Nowe pozycje z tej sekcji w formacie RSS. Adres kanału do subskrypcji w dowolnym czytniku.

Hasła słownika https://cyberkatalog.pl/feed-slownik.xml