Uwierzytelnianie z SAML, OpenID i OAuth

Uwierzytelnianie z SAML, OpenID i OAuth – odczarowujemy pojęcia

SAML, OpenID i OAuth to trzy różne standardy uwierzytelniania i/lub autoryzacji, które mogą być wykorzystywane w automatyzacji. Każde z tych rozwiązań zapewnia bezpieczeństwo użytkowników w aplikacjach intranetowych i internetowych. W tym artykule wyjaśnimy różnice między nimi.

SAML, OpenID i OAuth to trzy różne standardy uwierzytelniania i/lub autoryzacji, które mogą być wykorzystywane w automatyzacji. Każde z tych rozwiązań zapewnia bezpieczeństwo użytkowników w aplikacjach intranetowych i internetowych.

Na początku wyjaśnijmy różnice między pojęciami uwierzytelnienie i autoryzacja. Uwierzytelnienie to proces, w którym weryfikowana jest tożsamość podmiotu. Autoryzacja występuje, gdy system sprawdza, czy już uwierzytelniony podmiot posiada uprawnienia do zasobu, na którym chce wykonać określoną operację: odczytu, zapisu, modyfikacji czy usunięcia danych.

SAML – Security Assertion Markup Language

SAML jest protokołem umożliwiającym bezpieczne uwierzytelnianie i przekazywanie informacji o użytkownikach pomiędzy różnymi systemami. Dzięki temu rozwiązaniu możliwe jest zintegrowanie wielu aplikacji i usług w ramach jednego systemu uwierzytelniania, co ułatwia zarządzanie dostępem do różnych zasobów. Obecna wersja SAML 2.0 jest kombinacją trzech standardów: SAML 1.1, ID-FF 1.2 (Identity Federation Framework) i Shibboleth. Najważniejszym zastosowaniem protokołu SAML jest pojedyncze logowanie (ang. Single Sign-On, SSO). SAML może być wykorzystany w automatyzacji, aby umożliwić bezpieczny dostęp do różnych aplikacji i usług z poziomu jednego interfejsu użytkownika.

API logowania EuroSSO umożliwia aplikacjom internetowym integrację z serwerem EuroSSO w celu uwierzytelniania użytkowników m.in. z wykorzystaniem tokenów SAML.

Przykład
Firma chce umożliwić swoim pracownikom dostęp do zasobów sieciowych za pomocą ich własnych kont firmowych. Wykorzystuje SAML do uwierzytelniania tych kont i autoryzacji dostępu do określonych zasobów. Dzięki temu rozwiązaniu pracownicy mogą uzyskać dostęp do zasobów z dowolnego miejsca, bez konieczności logowania się do każdego z nich osobno.

SAML może być również używany w automatyzacji w celu zapewnienia bezpieczeństwa danych wymienianych między systemami informatycznymi, np. poprzez szyfrowanie tych danych przy użyciu kluczy prywatnych.

OpenID i Oauth

OpenID i OAuth są standardami uwierzytelniania i autoryzacji, które umożliwiają użytkownikom korzystanie z jednego konta dla różnych aplikacji i usług internetowych. Dzięki temu rozwiązaniu użytkownicy nie muszą tworzyć osobnych loginów i haseł dla każdej usługi, co znacznie ułatwia korzystanie z sieci i zmniejsza ryzyko utraty danych. Użytkownik może zalogować się na swoje konto na jednej stronie internetowej, a następnie bez konieczności ponownego wpisywania loginu i hasła korzystać z innych usług, które wspierają OpenID.

OpenID rozwiązuje problem dystrybucji składników tożsamości użytkownika (imię, nazwisko, e-mail, adres itd.) pomiędzy wieloma serwisami internetowymi (np. grupami dyskusyjnymi, sklepami internetowymi itd.). Zaletami rozwiązania OpenID są: łatwość korzystania, decentralizacja, łatwość aktualizacji i kontrola prywatności.

OAuth to framework autoryzacyjny, który umożliwia jednej aplikacji dostęp do danych przechowywanych w drugiej aplikacji, bez konieczności udostępniania haseł użytkownika. Został zaprojektowany z myślą o pracy z protokołem HTTP i umożliwia wydawanie tokenów dostępu klientom zewnętrznym poprzez serwer autoryzacji. Klient zewnętrzny wykorzystuje otrzymany token, aby uzyskać dostęp do chronionych zasobów. Rozwiązanie jest przydatne w automatyzacji procesów, ponieważ umożliwia integrację różnych aplikacji bez konieczności przechowywania i przesyłania wrażliwych danych.

Przykład
Jeśli chcemy zautomatyzować proces zamawiania produktów za pomocą naszej ulubionej aplikacji do zakupów, możemy wykorzystać OAuth do uwierzytelnienia naszego konta w tej aplikacji bez ujawniania naszego hasła, korzystając tylko z nazwy użytkownika oraz tokenu. Dzięki temu nasza aplikacja do automatyzacji będzie mogła wykonywać zakupy w naszym imieniu, bez konieczności udostępniania naszych danych logowania innym aplikacjom.

OAuth jest serwisem komplementarnym i odrębnym od OpenID. OAuth różni się także od OATH, który jest architekturą odniesienia dla procesu identyfikacji, a nie standardem. Jednak OAuth jest bezpośrednio powiązany z OpenID Connect (OIDC), ponieważ OIDC jest warstwą identyfikacji zbudowaną w oparciu o OAuth 2.0.

Uwierzytelnianie federacyjne (ang. Federated Identity Management) to kolejne powiązane pojęcie i model, w którym podmiot może korzystać z wielu usług dostarczanych przez różnych dostawców przy użyciu tych samych danych uwierzytelniających. W tym podejściu tożsamość podmiotu jest potwierdzana przez zaufaną stronę. Model ten wykorzystuje SSO, znosząc jednocześnie ograniczenia dotyczące działania w obrębie jednej sieci czy domeny, poprzez dodanie zewnętrznej, zaufanej strony potwierdzającej tożsamość. Jest on powszechnie stosowany przez firmy podczas korzystania z usług chmurowych.

Podsumowanie

Protokoły uwierzytelniające to technologie, które służą do potwierdzania tożsamości użytkownika lub urządzenia. Protokoły autoryzujące służą natomiast do ustalenia, czy dana osoba, lub urządzenie ma dostęp do określonych zasobów lub usług. Są one niezbędne do zapewnienia bezpieczeństwa i prywatności w sieciach komputerowych.

Autorzy

Artykuły na blogu są pisane przez osoby z zespołu EuroLinux. 80% treści zawdzięczamy naszym developerom, pozostałą część przygotowuje dział sprzedaży lub marketingu. Dokładamy starań, żeby treści były jak najlepsze merytorycznie i językowo, ale nie jesteśmy nieomylni. Jeśli zauważysz coś wartego poprawienia lub wyjaśnienia, będziemy wdzięczni za wiadomość.