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.