• SAML
  • SSO
  • Identyfikator tożsamości

Uproszczenie integracji aplikacji SAML dla deweloperów

Dowiedz się, czym jest SAML, jak wdrożyć SSO i jakie są szybkie kroki do integracji aplikacji SAML jako Identyfikator tożsamości (IdP) lub Usługodawca (SP).

Ran
Ran
Product & Design

Przestań tracić tygodnie na uwierzytelnianie użytkowników
Uruchamiaj bezpieczne aplikacje szybciej z Logto. Zintegruj uwierzytelnianie użytkowników w kilka minut i skup się na swoim głównym produkcie.
Rozpocznij
Product screenshot

Single Sign-On (SSO) jest kluczowy dla nowoczesnych aplikacji, a SAML umożliwia bezpieczne, przyjazne uwierzytelnianie w systemach tożsamości biznesowej. Ten przewodnik upraszcza SAML dla deweloperów i projektantów, oferując jasne kroki i praktyczne przykłady, które pomogą Ci efektywnie wdrożyć tę technologię.

Czym są SAML SSO i aplikacje SAML?

Security Assertion Markup Language (SAML) to standard oparty na XML, używany do wymiany danych uwierzytelniających i autoryzacyjnych między dwoma kluczowymi elementami: Identyfikator tożsamości (IdP) i Usługodawca (SP). Jest to powszechne rozwiązanie dla Single Sign-On (SSO) w organizacjach, które ułatwia życie użytkownikom przedsiębiorstw poprzez możliwość jednorazowego logowania się i dostępu do wielu aplikacji.

Identyfikator tożsamości (IdP) odpowiada za zarządzanie i weryfikację poświadczeń użytkowników, takich jak nazwy użytkowników i hasła. Gdy użytkownik próbuje uzyskać dostęp do chronionej usługi, IdP potwierdza jego tożsamość i przesyła to potwierdzenie do usługi.

  • Przykład: Wyobraź sobie, że pracujesz dla dużej firmy, która korzysta z Microsoft Azure AD do zarządzania kontami pracowników. Gdy chcesz zalogować się do Salesforce, Azure AD działa jako IdP. Sprawdza Twoje poświadczenia i informuje Salesforce, że jesteś uprawniony do korzystania z niego.

Usługodawca (SP) to aplikacja lub usługa, do której użytkownicy faktycznie próbują uzyskać dostęp. Polega ona na IdP, aby obsłużyć ciężar uwierzytelniania.

  • Przykład: Kontynuując nasz poprzedni scenariusz, Salesforce jest SP. Polega na Microsoft Azure AD (IdP), aby potwierdzić Twoją tożsamość. Gdy Azure AD ręczy za Ciebie, Salesforce wpuszcza Cię.

Mówiąc o „aplikacji SAML”, zazwyczaj ma się na myśli SP.

Za pomocą protokołu SAML możesz skonfigurować swoją usługę jako IdP do obsługi integracji aplikacji (jak Azure Ad / Google Workspace) lub jako SP (jak Salesforce / Slack) do obsługi SSO dla użytkowników.

Zaświadczenie SAML (SAML Assertion) jest sercem protokołu SAML. To cyfrowa „notatka” stworzona przez IdP i wysłana do SP, która mówi: „Potwierdziłem tożsamość tego użytkownika”. Dalej omówimy, jak ten proces działa dla obu IdP i SP.

Kiedy działasz jako SAML Identity Provider

Kiedy Twoja usługa działa jako IdP, umożliwiasz uwierzytelnianie SAML w wielu aplikacjach. Dzięki temu użytkownicy mogą uzyskać dostęp do różnych usług za pomocą jednej tożsamości przedsiębiorstwa.

as_saml_identity_provider_idp.png

Oto typowy przepływ pracy SAML SSO dla IdP:

  1. Użytkownik próbuje uzyskać dostęp do aplikacji (SP), takiej jak Salesforce.
  2. Aplikacja przekierowuje użytkownika do Twojego IdP w celu uwierzytelnienia.
  3. Użytkownik wprowadza swoje poświadczenia na stronie logowania Twojego IdP.
  4. IdP sprawdza poświadczenia.
  5. Jeśli poświadczenia zostaną zweryfikowane, IdP wysyła zaświadczenie SAML z powrotem do SP.
  6. SP przetwarza zaświadczenie, potwierdza jego ważność i przyznaje użytkownikowi dostęp.

Kiedy działasz jako SAML Service Provider

Jeśli Twoja usługa jest SP, będziesz integrować się z różnymi dostawcami tożsamości, aby zapewnić użytkownikom możliwość SSO. Dzięki temu użytkownicy z różnych organizacji lub najemców mogą bezpiecznie i efektywnie uzyskać dostęp do Twojej aplikacji.

as_saml_service_provider_sp.png

Oto przepływ pracy dla SP-zainicjowanego SSO:

  1. Użytkownik próbuje się zalogować do Twojej aplikacji.
  2. Twoja aplikacja generuje żądanie SAML i przekierowuje użytkownika do strony logowania IdP.
  3. Użytkownik loguje się na IdP (lub pomija ten krok, jeśli już jest zalogowany).
  4. IdP weryfikuje tożsamość użytkownika i po potwierdzeniu pakuje szczegóły użytkownika w zaświadczenie SAML.
  5. IdP wysyła zaświadczenie z powrotem do Twojej aplikacji.
  6. Twoja usługa weryfikuje zaświadczenie. Jeśli jest ono ważne, użytkownik uzyskuje dostęp do Twojej aplikacji.

Kluczowe parametry w SAML SSO

Dla pomyślnej integracji SAML SSO zarówno IdP, jak i SP muszą udostępniać określone parametry. Oto spojrzenie na niezbędne elementy:

Parametry od IdP

  1. IdP Entity ID: Unikalny identyfikator dla IdP w komunikacji SAML, jak cyfrowa etykieta.
  2. SSO URL: Punkt końcowy logowania (URL), na który SP przekierowuje użytkowników w celu uwierzytelnienia.
  3. X.509 Certificate: Klucz publiczny używany do podpisywania zaświadczenia SAML, zapewniający jego bezpieczeństwo. To „pieczęć” potwierdzająca autentyczność.

Wskazówka: Jeśli Twój IdP oferuje SAML Metadata URL, to ułatwia sprawę. Ten URL zawiera wszystkie niezbędne informacje (jak certyfikaty, adresy URL SSO i IdP Entity ID) w jednym miejscu. Minimalizuje ryzyko błędów wynikających z ręcznego kopiowania i wklejania oraz eliminuje konieczność ręcznego aktualizowania plików certyfikatów.

Parametry od SP

  1. SP Entity ID: Unikalny identyfikator SP, podobny do IdP Entity ID.
  2. Assertion Consumer Service (ACS) URL: To punkt końcowy SP, w którym SP oczekuje otrzymania zaświadczenia SAML od IdP.
  3. RelayState (Opcjonalne): Używane do przesyłania danych podczas procesu SAML, takich jak URL, który użytkownik pierwotnie próbował odwiedzić.

Mapowanie atrybutów SAML i szyfrowanie

  1. NameID Format: Definiuje format identyfikatora użytkownika (np. adres e-mail lub nazwa użytkownika).
  2. SAML Attributes: To dodatkowe szczegóły użytkownika, takie jak role, e-mail lub dział, które IdP przesyła do SP.
    • Przykład: Jeśli zaświadczenie SAML podpisane przez IdP zawiera email ([email protected]), role (admin) i department (engineering). SP może użyć role do przypisania uprawnień administratora lub department do zgrupowania użytkownika w odpowiednim zespole. Aby uzyskać te istotne dane użytkownika, zarówno IdP, jak i SP muszą zdecydować, jak mapować atrybuty. Na przykład IdP może definiować „department” jako zespół, podczas gdy SP oczekuje go jako grupę. Prawidłowe mapowanie zapewnia płynność komunikacji.
  3. Encrypted Assertions (Opcjonalne): Aby chronić wrażliwe dane uwierzytelniające, zaświadczenia SAML mogą być szyfrowane.
    • Rola IdP: Szyfruje zaświadczenie używając klucza publicznego SP.
    • Rola SP: Odszyfrowuje zaświadczenie swoim kluczem prywatnym, aby odczytać szczegóły użytkownika.

Do tej pory powinieneś mieć niezbędne informacje, aby skonfigurować połączenie SAML. Aby zintegrować Salesforce (Service Provider) z Azure AD (Identity Provider), postępuj zgodnie z tymi krokami:

  • Uzyskaj IdP Entity ID, adres URL SSO i certyfikat z Azure AD i skonfiguruj je w Salesforce.
  • Podaj IdP Salesforce’a Entity ID i ACS URL do Azure AD.

Logto upraszcza integrację SAML

Logto może działać zarówno jako IdP, jak i SP, wspierając SAML SSO dla Twoich aplikacji.

Korzystanie z Logto jako SAML IdP

Logto pozwala innym aplikacjom polegać na nim do uwierzytelniania federacyjnego tożsamości i wspiera uwierzytelnianie wieloskładnikowe (MFA) dla zwiększenia bezpieczeństwa.

  1. Stwórz aplikację Logto Przejdź do Console Logto > Applications i utwórz nową aplikację SAML.
  2. Skonfiguruj parametry SAML Skonfiguruj aplikację z Assertion Consumer Service URL i SP Entity ID Usługodawcy (SP).
  3. Podaj URL metadanych Logto udostępnia IdP Metadata URL, który SP mogą używać do automatycznego pobierania niezbędnych szczegółów, takich jak URL SSO i certyfikaty.
  4. Zaawansowana konfiguracja (Opcjonalna)
    • Możesz utworzyć wiele nowych certyfikatów z odciskami palców i ustawić daty wygaśnięcia, ale tylko jeden certyfikat może być aktywny naraz.
    • Zmodyfikuj format Name ID, aby dopasować go do wymagań biznesowych.
    • Włącz szyfrowanie zaświadczeń SAML poprzez skopiowanie i wklejenie certyfikatu x509 od swojego usługodawcy, aby zaszyfrować zaświadczenia.
  5. Mapuj atrybuty (Opcjonalne) Łatwo dostosuj udostępnianie atrybutów użytkowników z Usługodawcami (SP).

logto_saml_apps_saml_providers.png

Dla szczegółowych wskazówek, odwiedź oficjalną dokumentację tutaj: SAML App

Korzystanie z Logto jako SAML SP

Logto integruje się także z dowolnymi IdP przedsiębiorstwa za pomocą protokołów SAML lub OIDC. Niezależnie od tego, czy umożliwiasz SP-zainicjowane SSO dla zintegrowanych stron logowania, czy konfigurowanie IdP-zainicjowanego SSO, proces jest prosty.

  1. Stwórz złącze przedsiębiorstwa Przejdź do Console Logto > Enterprise SSO i utwórz nowe złącze przedsiębiorstwa. Wybierz SAML jako standard protokołu.
  2. Skonfiguruj parametry SAML Podaj albo metadata URL albo pliku XML metadanych od swojego IdP. Jeśli metadane nie są dostępne, przełącz się na ręczną konfigurację, wprowadzając IdP Entity ID, adres URL SSO i przesyłając certyfikat podpisu.
  3. Udostępnij ACS URL i SP Entity ID Podaj ACS URL i SP Entity ID Logto swojemu IdP, aby zakończyć proces integracji.
  4. Mapuj atrybuty (Opcjonalne) Skonfiguruj mapowanie danych użytkownika, takich jak e-maile lub nazwiska, aby zapewnić prawidłowe przesyłanie informacji między IdP a Logto.
  5. Dodaj domeny email przedsiębiorstwa W zakładce „SSO Experience” dla złącza przedsiębiorstwa dodaj jedną lub więcej domen email. Zapewnia to, że tylko użytkownicy z określonymi domenami mogą uwierzytelnić się za pomocą SSO.
  6. Włącz IdP-zainicjowane SSO (Opcjonalne) Włącz IdP-zainicjowane SSO tylko wtedy, gdy wymagają tego Twoi klienci korporacyjni. Ta funkcja pozwala użytkownikom logować się do Twoich aplikacji bezpośrednio z pulpitu IdP.

logto-enterprise-saml-sso.png

Dla szczegółowych wskazówek, odwiedź oficjalną dokumentację tutaj: Enterprise SSO documentation.

Podsumowanie

SAML oferuje znormalizowaną, bezpieczną metodę dla SSO, co sprawia, że uwierzytelnianie jest płynniejsze. Logto upraszcza proces, niezależnie od tego, czy konfigurujesz go jako IdP, czy SP. Dzięki łatwemu w użytkowaniu interfejsowi i wsparciu dla wersji zarówno chmurowej, jak i open-source, Logto usuwa zawiłości związane z integracją SAML. Dzięki skonfigurowaniu kilku parametrów, możesz połączyć swoje usługi z dowolnym IdP lub SP SAML i skupić się na budowaniu świetnych doświadczeń dla użytkowników.