Co to jest SAML i jak to działa?
Security Assertion Markup Language (SAML) jest otwartym standardem, który pozwala dostawcom tożsamości (IdP) na przekazywanie poświadczeń autoryzacji do dostawców usług (SP). W tym żargonie oznacza to, że można używać jednego zestawu poświadczeń do logowania się do wielu różnych stron internetowych. O wiele prościej jest zarządzać jednym loginem na użytkownika niż oddzielnymi loginami do poczty elektronicznej, oprogramowania do zarządzania relacjami z klientami (CRM), Active Directory, itp.
Transakcje SAML wykorzystują Extensible Markup Language (XML) do ustandaryzowanej komunikacji pomiędzy dostawcą tożsamości a dostawcami usług. SAML jest łącznikiem pomiędzy uwierzytelnieniem tożsamości użytkownika a autoryzacją do korzystania z usługi.
Zdobądź darmową książkę Pen Testing Active Directory Environments EBook
Konsorcjum OASIS zatwierdziło SAML 2.0 w 2005 roku. Standard zmienił się znacznie w stosunku do 1.1, tak bardzo, że wersje są niekompatybilne. Przyjęcie SAML pozwala firmom IT na korzystanie z rozwiązań typu Software as a Service (SaaS) przy jednoczesnym zachowaniu bezpiecznego, federacyjnego systemu zarządzania tożsamością.
SAML umożliwia Single-Sign On (SSO), termin ten oznacza, że użytkownicy mogą zalogować się raz, a te same dane uwierzytelniające mogą być ponownie wykorzystane do zalogowania się u innych dostawców usług.
Do czego służy SAML?
SAML upraszcza federacyjne procesy uwierzytelniania i autoryzacji dla użytkowników, dostawców tożsamości i dostawców usług. SAML dostarcza rozwiązanie pozwalające dostawcy tożsamości i dostawcom usług istnieć niezależnie od siebie, co centralizuje zarządzanie użytkownikami i zapewnia dostęp do rozwiązań SaaS.
SAML implementuje bezpieczną metodę przekazywania uwierzytelniania i autoryzacji użytkowników pomiędzy dostawcą tożsamości a dostawcami usług. Kiedy użytkownik loguje się do aplikacji obsługującej SAML, dostawca usług żąda autoryzacji od odpowiedniego dostawcy tożsamości. Dostawca tożsamości uwierzytelnia poświadczenia użytkownika, a następnie zwraca autoryzację dla użytkownika do dostawcy usług, a użytkownik jest teraz w stanie korzystać z aplikacji.
Uwierzytelnianie SAML jest procesem weryfikacji tożsamości użytkownika i poświadczeń (hasło, uwierzytelnianie dwuskładnikowe, itp.). Autoryzacja SAML mówi dostawcy usług, jaki dostęp przyznać uwierzytelnionemu użytkownikowi.
Co to jest SAML Provider?
Dostawca SAML to system, który pomaga użytkownikowi uzyskać dostęp do usługi, której potrzebuje. Istnieją dwa podstawowe typy dostawców SAML, dostawca usług i dostawca tożsamości.
Dostawca usług potrzebuje uwierzytelnienia od dostawcy tożsamości, aby udzielić autoryzacji użytkownikowi.
Dostawca tożsamości dokonuje uwierzytelnienia, że użytkownik końcowy jest tym, za kogo się podaje i wysyła te dane do dostawcy usług wraz z prawami dostępu użytkownika do usługi.
Microsoft Active Directory lub Azure są powszechnymi dostawcami tożsamości. Salesforce i inne rozwiązania CRM są zazwyczaj dostawcami usług, ponieważ zależą od dostawcy tożsamości w zakresie uwierzytelniania użytkowników.
Co to jest asercja SAML?
Asercja SAML to dokument XML, który dostawca tożsamości wysyła do dostawcy usług, zawierający autoryzację użytkownika. Istnieją trzy różne typy asercji SAML – uwierzytelnienie, atrybut i decyzja autoryzacyjna.
- Autentykacja potwierdza identyfikację użytkownika i podaje czas, w którym użytkownik się zalogował oraz jaką metodę uwierzytelnienia zastosował (np, Kerberos, 2 factor, etc.)
- Atest atrybucji przekazuje atrybuty SAML do dostawcy usług – atrybuty SAML są specyficznymi fragmentami danych, które dostarczają informacji o użytkowniku.
- Atest decyzji autoryzacji mówi, czy użytkownik jest upoważniony do korzystania z usługi lub czy dostawca tożsamości odrzucił jego żądanie z powodu błędu hasła lub braku uprawnień do usługi.
Jak działa SAML?
SAML działa poprzez przekazywanie informacji o użytkownikach, logowaniach i atrybutach pomiędzy dostawcą tożsamości a dostawcami usług. Każdy użytkownik loguje się raz do Single Sign On z dostawcą tożsamości, a następnie dostawca tożsamości może przekazać atrybuty SAML do dostawcy usług, gdy użytkownik próbuje uzyskać dostęp do tych usług. Dostawca usług żąda autoryzacji i uwierzytelnienia od dostawcy identyfikacji. Ponieważ oba te systemy mówią tym samym językiem – SAML – użytkownik musi zalogować się tylko raz.
Każdy dostawca tożsamości i dostawca usług muszą uzgodnić konfigurację dla SAML. Oba końce muszą mieć dokładną konfigurację, aby uwierzytelnianie SAML działało.
Przykład SAML
- Frodo (użytkownik) loguje się do SSO z samego rana.
- Frodo następnie próbuje otworzyć stronę do swojego CRM.
- CRM – dostawca usług – sprawdza poświadczenia Frodo u dostawcy tożsamości.
- Dostawca tożsamości wysyła wiadomości autoryzacji i uwierzytelnienia z powrotem do dostawcy usług, co pozwala Frodo zalogować się do CRM.
- Frodo może korzystać z CRM i wykonywać pracę.
„Potrzebuje 8 ochotników do trudnego projektu…”.
SAML vs. OAuth
OAuth jest nieco nowszym standardem, który został opracowany wspólnie przez Google i Twittera, aby umożliwić usprawnione logowania internetowe. OAuth używa podobnej metodologii jak SAML do udostępniania informacji o logowaniu. SAML zapewnia większą kontrolę przedsiębiorstwom, aby ich loginy SSO były bezpieczniejsze, podczas gdy OAuth jest lepszy na urządzeniach mobilnych i używa JSON.
Facebook i Google to dwaj dostawcy OAuth, których możesz używać do logowania się do innych stron internetowych.
SAML Tutoriale
Kilka zasobów, które pomogą zbadać, jak dokładnie wdrożyć SAML:
- Konfiguracja SAML dla Salesforce
- Konfiguracja OKTA jako SAML IDP
- OneLogin ma przykłady w 5 różnych językach programowania
SAML i SSO są ważne dla każdej strategii cyberbezpieczeństwa przedsiębiorstwa. Najlepsze praktyki zarządzania tożsamością wymagają, aby konta użytkowników były ograniczone tylko do tych zasobów, których użytkownik potrzebuje do wykonywania swojej pracy oraz aby były kontrolowane i zarządzane centralnie. Używając rozwiązania SSO, można wyłączyć konta z jednego systemu i usunąć dostęp do wszystkich dostępnych zasobów za jednym razem, co chroni dane przed kradzieżą.