Różnice między SSO zainicjowanym przez SP i SSO zainicjowanym przez IDP


107

Czy ktoś może mi wyjaśnić, jakie są główne różnice między SSO zainicjowanym przez SP i SSO zainicjowanym przez IDP , w tym, które byłoby lepszym rozwiązaniem do implementacji pojedynczego logowania w połączeniu z ADFS + OpenAM Federation?


2
Wyjaśnienie dla wszystkich nowych koncepcji jednokrotnego logowania: SP = usługodawca (system, z którego chce korzystać użytkownik) i IdP = identyfikacja dostawcy (system, który uwierzytelnia użytkownika)
— Seafish

Odpowiedzi:


72

W przypadku usługi IDP Init SSO (niezamawiane logowanie jednokrotne w sieci Web) proces federacji jest inicjowany przez dostawcę tożsamości wysyłającego niezamówioną odpowiedź SAML do dostawcy usług. W SP-Init SP generuje żądanie AuthnRequest, które jest wysyłane do dostawcy tożsamości jako pierwszy krok w procesie federacji, a następnie dostawca tożsamości odpowiada odpowiedzią SAML. Obsługa IMHO ADFSv2 dla SAML2.0 Web SSO SP-Init jest silniejsza niż jego obsługa IDP-Init w zakresie: integracji z produktami Fed innej firmy (głównie z obsługą RelayState), więc jeśli masz wybór, będziesz chciał użyć SP- Init, ponieważ prawdopodobnie ułatwi to życie dzięki ADFSv2.

Oto kilka prostych opisów logowania jednokrotnego z przewodnika wprowadzającego do PingFederate 8.0, które również mogą pomóc - https://documentation.pingidentity.com/pingfederate/pf80/index.shtml#gettingStartedGuide/task/idpInitiatedSsoPOST.html


81

SSO zainicjowane przez IDP

Z dokumentacji PingFederate: - https://docs.pingidentity.com/bundle/pf_sm_supportedStandards_pf82/page/task/idpInitiatedSsoPOST.html

W tym scenariuszu użytkownik jest logowany do dostawcy tożsamości i próbuje uzyskać dostęp do zasobu na zdalnym serwerze SP. Asercja SAML jest przesyłana do dostawcy usług za pośrednictwem protokołu HTTP POST.

Kroki przetwarzania:

  1. Użytkownik zalogował się do dostawcy tożsamości.
  2. Użytkownik żąda dostępu do chronionego zasobu SP. Użytkownik nie jest zalogowany na stronie SP.
  3. Opcjonalnie dostawca tożsamości pobiera atrybuty z magazynu danych użytkownika.
  4. Usługa SSO dostawcy tożsamości zwraca formularz HTML do przeglądarki z odpowiedzią SAML zawierającą potwierdzenie uwierzytelnienia i wszelkie dodatkowe atrybuty. Przeglądarka automatycznie wysyła formularz HTML z powrotem do SP.

SSO zainicjowane przez SP

Z dokumentacji PingFederate: - http://documentation.pingidentity.com/display/PF610/SP-Initiated+SSO--POST-POST

W tym scenariuszu użytkownik próbuje uzyskać dostęp do chronionego zasobu bezpośrednio w witrynie sieci Web SP bez logowania się. Użytkownik nie ma konta w witrynie SP, ale ma konto federacyjne zarządzane przez zewnętrznego dostawcę tożsamości. SP wysyła żądanie uwierzytelnienia do dostawcy tożsamości. Zarówno żądanie, jak i zwrócone potwierdzenie SAML są wysyłane przez przeglądarkę użytkownika za pośrednictwem protokołu HTTP POST.

Kroki przetwarzania:

  1. Użytkownik żąda dostępu do chronionego zasobu SP. Żądanie jest przekierowywane do serwera federacyjnego w celu obsługi uwierzytelniania.
  2. Serwer federacyjny wysyła formularz HTML z powrotem do przeglądarki z żądaniem SAML w celu uwierzytelnienia od dostawcy tożsamości. Formularz HTML jest automatycznie wysyłany do usługi logowania jednokrotnego dostawcy tożsamości.
  3. Jeśli użytkownik nie jest jeszcze zalogowany w witrynie dostawcy tożsamości lub jeśli wymagane jest ponowne uwierzytelnienie, dostawca tożsamości pyta o dane uwierzytelniające (np. Identyfikator i hasło), a użytkownik loguje się.
  4. Dodatkowe informacje o użytkowniku można pobrać z magazynu danych użytkownika w celu uwzględnienia w odpowiedzi SAML. (Te atrybuty są z góry określone w ramach umowy federacyjnej między dostawcą tożsamości i dostawcą usług)

  5. Usługa SSO dostawcy tożsamości zwraca formularz HTML do przeglądarki z odpowiedzią SAML zawierającą potwierdzenie uwierzytelnienia i wszelkie dodatkowe atrybuty. Przeglądarka automatycznie wysyła formularz HTML z powrotem do SP. UWAGA: specyfikacje SAML wymagają, aby odpowiedzi POST były podpisane cyfrowo.

  6. (Nie pokazano) Jeśli podpis i potwierdzenie są prawidłowe, SP ustanawia sesję dla użytkownika i przekierowuje przeglądarkę do zasobu docelowego.


1
Ponownie zainicjowane SSO przez SP - punkt 3 powyżej mówi: „Jeśli użytkownik nie jest jeszcze zalogowany do witryny dostawcy tożsamości lub jeśli wymagane jest ponowne uwierzytelnienie, dostawca tożsamości pyta o dane uwierzytelniające (np. Identyfikator i hasło), a użytkownik loguje się”. W jaki sposób system ustala, czy użytkownik jest zalogowany w witrynie IdP? Czy na przykład generuje plik cookie?
— Edwardo

1
@Edwardo Twoje założenie jest poprawne. Gdy sesja jest ustanawiana z dostawcą tożsamości, zazwyczaj dostawca tożsamości generuje plik cookie w celu utrzymania tej sesji.
— jekennedy

Mam kolejne pytanie stackoverflow.com/questions/43861315/… . Możesz na to spojrzeć?
— kawadhiya21

49

SSO zainicjowane przez SP

Wystaw rachunek użytkownikowi: „Hej Jimmy, pokaż mi ten raport”

Jimmy SP: „Hej, jeszcze nie jestem pewien, kim jesteś. Mamy tutaj proces, więc najpierw przejdź do weryfikacji u Boba dostawcy tożsamości. Ufam mu”.

Bob the IdP: „Widzę, że wysłał cię tutaj Jimmy. Proszę o podanie swoich danych uwierzytelniających”.

Rachunek użytkownika: „Cześć, jestem Bill. Oto moje poświadczenia”.

Bob the IdP: „Cześć Bill. Wygląda na to, że się wymeldowałeś”.

Bob the IdP: „Hej Jimmy. Ten facet Bill sprawdza, a oto dodatkowe informacje o nim. Z tego miejsca możesz robić, co chcesz”.

Jimmy the SP: „Ok, spoko. Wygląda na to, że Bill jest również na naszej liście znanych gości. Wpuszczę Billa”.

Logowanie jednokrotne zainicjowane przez dostawcę tożsamości

Bill użytkownika: „Hej Bob. Chcę pojechać do domu Jimmy'ego. Tam ochrona jest szczelna”.

Bob the IdP: „Hej Jimmy. Ufam Billowi. Sprawdza i tutaj jest kilka dodatkowych informacji o nim. Z tego miejsca możesz robić, co chcesz”.

Jimmy the SP: „Ok, spoko. Wygląda na to, że Bill jest również na naszej liście znanych gości. Wpuszczę Billa”.


Podaję tutaj więcej szczegółów, ale nadal zachowuję prostotę: https://jorgecolonconsulting.com/saml-sso-in-simple-terms/ .


33
Myślę, że druga rozmowa nie jest dobra… zamiast tego powinna być: IdP: „Hej, tu jest trochę informacji o Sal, wpuść ją” / SP: „Ok, ufam ci, pozwolę jej w "
— Jeff Olson

4
pierwsza rozmowa też się nie zgadza: w pierwszym kroku SP nie wie jeszcze, jakim użytkownikiem jest, tylko w IdP użytkownik zaloguje się i zidentyfikuje się jako "Sal"
— Allie

4
Pierwsza rozmowa powinna brzmieć: SP: "Hej, gdzie jest twój dowód?" IdP: „Poczekaj, sprawdzę. Pokaż mi swój dowód osobisty. Ok stary, wpuść ją, ma na imię Sal i ma 21 lat (opcjonalnie)” SP: „Fajny koleś, jesteś niesamowity! Hej ty, wejdź ! ”
— Erdal G.,

3
Uważam, że ta odpowiedź nie zasługuje na głosy negatywne, jakie otrzymała. Odpowiada na pytanie w twórczy sposób, może nie tak dokładny, jak niektórzy wskazywali, ale nie mniej twórczy.
— Aaron C

2
Byłoby interesujące zobaczyć poprawną odpowiedź w tym formacie. Moje oczy błyszczą, gdy czytam odpowiedzi, które zostały przegłosowane, ten format pomaga bardzo szybko uchwycić ogólną koncepcję. Nie wiem na tyle, aby samodzielnie stworzyć odpowiedź na podstawie komentarzy.
— Sean Connolly
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.