Rozwiązują różne problemy.
SAML to zestaw standardów, które zostały zdefiniowane w celu udostępniania informacji o tym, kim jest użytkownik, jakie są jego atrybuty, oraz umożliwiają udzielenie / odmowę dostępu do czegoś, a nawet zażądanie uwierzytelnienia.
OAuth bardziej polega na przekazywaniu dostępu do czegoś. Zasadniczo pozwalasz komuś „działać” jak ty. Jest najczęściej używany do przyznawania api dostępu, które mogą zrobić coś w Twoim imieniu.
To dwie zupełnie różne rzeczy.
Kilka przykładów, które mogą pomóc.
OAuth pomyśl o Twitterze. Powiedzmy, że używasz usługi Google Buzz i Twittera i chcesz napisać aplikację, która umożliwi ich synchronizację. Zasadniczo możesz ustanowić zaufanie między swoją aplikacją a Twitterem. Gdy po raz pierwszy łączysz aplikację z twitterem, wykonujesz klasyczny monit, aby zalogować się do Twittera, a następnie pojawia się okno potwierdzenia i pyta „Czy chcesz przyznać dostęp do« nazwa Twojej aplikacji »?” gdy klikniesz „tak”, zaufanie zostało ustanowione i teraz Twoja aplikacja może działać tak jak Ty na Twitterze. Może czytać Twoje posty, a także tworzyć nowe.
SAML - w przypadku SAML pomyśl o pewnym rodzaju „umowy” między dwoma niepowiązanymi systemami członkostwa. W naszym przypadku możemy skorzystać z linii US Airways i Hertz. Nie ma wspólnego zestawu danych uwierzytelniających, które mogłyby przenieść Cię z jednej witryny do drugiej, ale powiedzmy, że Hertz chce zaoferować „umowę” US Airways. (Zgoda, wiem, że to skrajny przykład, ale proszę o cierpliwość). Po zakupie lotu zaoferują członkom przewodniczącego bezpłatny wynajem samochodu. US Airways i Hertz ustanowią jakąś formę zaufania i jakiś sposób identyfikacji użytkownika. W naszym przypadku naszym „federacyjnym identyfikatorem” byłby adres e-mail i byłby to jednokierunkowy zestaw zaufania Hertz ufa, że dostawca tożsamości US Airways dostarczy token, który jest dokładny i bezpieczny. Po zarezerwowaniu lotu dostawca tożsamości US Airways wygeneruje token i zapisze sposób uwierzytelnienia użytkownika, a także „atrybuty” dotyczące osoby, w naszym przypadku najważniejszym atrybutem byłby jej status w US Airways. Po wypełnieniu token przekazuje go przez jakiś rodzaj odniesienia lub zakodowany w adresie URL, a gdy dotrzemy do Hertz, patrzy na token, sprawdza go i może teraz pozwolić na bezpłatne wypożyczenie samochodu.
Problem z tym przykładem SAML polega na tym, że jest to tylko jeden z wielu specjalistycznych przypadków użycia. SAML jest standardem i jest prawie zbyt wiele sposobów na jego implementację.
Alternatywnie, jeśli nie dbasz o autoryzację, możesz prawie spierać się, że zapewnia uwierzytelnianie przez SAML i OpenID .