Metoda uwierzytelniania SAML 2.0
Metoda uwierzytelniania SAML 2.0 w FoxIDs, która ufa zewnętrznemu dostawcy tożsamości SAML 2.0 (IdP).
SAML (Security Assertion Markup Language) 2.0 to otwarty standard wymiany danych uwierzytelniania i autoryzacji pomiędzy dostawcą tożsamości (IdP) a dostawcą usług (SP). Umożliwia Single Sign-On (SSO), dzięki czemu użytkownicy logują się raz i uzyskują dostęp do wielu aplikacji bez ponownego uwierzytelniania. Obsługiwane są dwa przepływy SAML 2.0. SP-Initiated Login, który jest domyślny, najczęstszy i zalecany, oraz IdP-Initiated Login.
SAML 2.0 jest szeroko używany w środowiskach korporacyjnych, umożliwiając bezpieczną federację tożsamości między różnymi organizacjami i aplikacjami.
Konfigurując metodę uwierzytelniania SAML 2.0 oraz rejestrację aplikacji OpenID Connect, FoxIDs staje się mostem pomiędzy SAML 2.0 i OpenID Connect. FoxIDs obsłuży wtedy połączenie SAML 2.0 jako strona ufająca (RP) lub dostawca usług (SP), a Ty musisz zadbać tylko o OpenID Connect w aplikacji.
Można skonfigurować wiele metod uwierzytelniania SAML 2.0, które mogą być następnie wybierane przez rejestracje aplikacji OpenID Connect oraz rejestracje aplikacji SAML 2.0.
Skonfiguruj IdP-Initiated Login i przekazuj logowanie do aplikacji SAML 2.0 i OpenID Connect.
FoxIDs obsługuje powiązania SAML 2.0 redirect i post. Obsługiwane są profile SAML 2.0 dla logowania, wylogowania i single logout. Profil Artifact nie jest obsługiwany.
Metoda uwierzytelniania udostępnia metadane SAML 2.0 i może być skonfigurowana przy użyciu metadanych SAML 2.0 lub przez ręczne dodanie szczegółów konfiguracji.
Metadane SAML 2.0 generowane przez FoxIDs zawierają informacje o wylogowaniu i single logout tylko wtedy, gdy wylogowanie jest skonfigurowane w metodzie uwierzytelniania SAML 2.0.
FoxIDs obsługuje wszystkich dostawców tożsamości SAML 2.0 (IdP) i zostało przetestowane z szeroką gamą IdP.
FoxIDs obsługuje zarówno certyfikaty RSA, jak i ECDSA jako certyfikaty walidacji podpisu SAML dla zewnętrznego IdP. Walidacja podpisu może akceptować wiele dozwolonych algorytmów, dzięki czemu identity providers mogą podpisywać SAML responses certyfikatami RSA lub ECDSA, a starszy RSA-SHA-1 pozostaje domyślnie wyłączony.
Poradniki:
- Połącz Microsoft Entra ID
- Połącz PingIdentity / PingOne
- Połącz Google Workspace
- Połącz Microsoft AD FS
- Połącz NemLog-in (duński IdP)
- Połącz Context Handler (duński broker tożsamości)
Połącz środowiska FoxIDs
Środowiska FoxIDs można połączyć na dwa sposoby:
- Environment Link dla środowisk w tym samym tenancie.
- OpenID Connect dla środowisk w tym samym lub różnych tenantach.
Wybierz Environment Link, gdy oba środowiska są w tym samym tenancie i chcesz najprostszej konfiguracji. Wybierz OpenID Connect, gdy musisz połączyć różne tenanty lub oddzielne wdrożenia FoxIDs.
Konfiguracja
Jak skonfigurować zewnętrznego dostawcę tożsamości SAML 2.0 (IdP).
Punkt końcowy metadanych metody uwierzytelniania SAML 2.0 w FoxIDs to
https://foxids.com/tenant-x/environment-y/(some_external_idp)/saml/spmetadata. Jeśli IdP jest skonfigurowany w tenancietenant-xi środowiskuenvironment-yz nazwą metody uwierzytelnianiasome_external_idp.
Poniższy zrzut ekranu pokazuje konfigurację metody uwierzytelniania SAML 2.0 w FoxIDs Control Client.
Konfiguracja jest tworzona na podstawie metadanych zewnętrznego IdP. Przekazywane oświadczenia są ograniczone do skonfigurowanego zestawu; domyślnie wszystkie oświadczenia są przekazywane z użyciem notacji *.
Więcej opcji konfiguracji staje się dostępnych po kliknięciu Show advanced.

Możesz zmieniać oświadczenia i wykonywać zadania oświadczeń za pomocą transformacji oświadczeń i zadań oświadczeń.
Konfiguracja ręczna staje się dostępna po wyłączeniu Automatic update. Wtedy IdP nie musi wystawiać ani wysyłać pliku metadanych, a konfigurację można wprowadzić ręcznie.

Jeśli tworzysz nowe oświadczenie, dodaj oświadczenie lub * (domyślnie) do listy Forward claims, aby przekazać oświadczenie do rejestracji aplikacji.
Bezpieczeństwo i interoperacyjność
Zaawansowane ustawienia bezpieczeństwa SAML są dostępne po kliknięciu Show advanced w metodzie uwierzytelniania SAML 2.0.
- Signature algorithm określa algorytm używany przez FoxIDs podczas podpisywania SAML AuthnRequests i komunikatów logout. Domyślny jest RSA-SHA-256.
- Signature validation algorithms to allowlista dla przychodzących podpisanych SAML responses i komunikatów logout od zewnętrznego IdP. Domyślna allowlista obejmuje obsługiwane algorytmy RSA-SHA-256/384/512 i ECDSA-SHA-256/384/512 oraz wyklucza RSA-SHA-1.
- Certyfikaty podpisujące zewnętrznego IdP mogą być certyfikatami RSA lub ECDSA. FoxIDs obsługuje oba typy certyfikatów jako certyfikaty walidacji podpisu SAML dla podpisanych SAML responses i komunikatów logout.
- XML canonicalisation method określa metodę canonicalisation używaną przez FoxIDs podczas podpisywania komunikatów SAML. FoxIDs waliduje również przychodzące podpisy SAML przy użyciu obsługiwanych exclusive XML canonicalisation methods, aby poprawić interoperacyjność z IdP używającymi innych ustawień canonicalisation.
Włączaj RSA-SHA-1 tylko wtedy, gdy wymaga tego starszy SAML identity provider.
IdP-Initiated Login
SAML 2.0 IdP-Initiated Login to przepływ uwierzytelniania Single Sign-On (SSO), w którym proces rozpoczyna się u dostawcy tożsamości (IdP), a nie u dostawcy usług (SP). Ta metoda jest często używana w środowiskach korporacyjnych, aby umożliwić użytkownikom dostęp do wielu aplikacji po jednorazowym uwierzytelnieniu.
W przeciwieństwie do SP-Initiated Login, SP nie żąda uwierzytelnienia od IdP. IdP wysyła niezamówioną asercję SAML z własnej inicjatywy. Ta kluczowa różnica sprawia, że przepływ IdP-Initiated Login jest mniej bezpieczny niż SP-Initiated Login, dlatego IdP-Initiated Login jest domyślnie wyłączony w FoxIDs.
Włącz IdP-Initiated Login.
- Otwórz metodę uwierzytelniania SAML 2.0 w FoxIDs Control Client
- Kliknij Show advanced
- Przewiń na dół sekcji konfiguracji
- Włącz IdP-Initiated login
- Opcjonalnie zmień IdP-Initiated Login - OpenID Connect grant lifetime
- Kliknij Update

Następnie skonfiguruj metodę uwierzytelniania SAML 2.0 tak, aby ufała IdP w taki sam sposób, jak przy SP-Initiated Login.
IdP Relay State
Zewnętrzny IdP musi wysłać relay state, która określa aplikację, do której uwierzytelnienie ma zostać przekierowane.
Relay state musi zawsze zawierać nazwę aplikacji app_name i typ aplikacji app_type, a w niektórych przypadkach także adres przekierowania aplikacji app_redirect.
Elementy mają każdy nazwę i wartość, a ich kolejność jest rozdzielana przez &. Wartości adresu przekierowania muszą być zakodowane w URL. Wartość typu aplikacji może wynosić saml2 albo oidc.
Przykład .NET dla dostawcy tożsamości SAML 2.0 (IdP) AspNetCoreSamlIdPSample pokazuje, jak utworzyć IdP-Initiated Login z relay state.
Aplikacja SAML 2.0
Jeśli chcesz przekierować uwierzytelnienie do aplikacji SAML 2.0 o nazwie my-saml2-app, relay state to:
app_name=my-saml2-app&app_type=saml2
Spowoduje to przekierowanie żądania uwierzytelnienia do pierwszego punktu końcowego Assertion Consumer Service (ACS) skonfigurowanego dla aplikacji.
Jeśli chcesz przekierować uwierzytelnienie do innego skonfigurowanego punktu ACS https://my-domain.com/auth/acs2, relay state to:
app_name=my-saml2-app&app_type=saml2&app_redirect=https%3A%2F%2Fmy-domain.com%2Fauth%2Facs2
Wywołanie uwierzytelnienia jest przekazywane do aplikacji SAML 2.0 jako IdP-Initiated Login z niezamówioną odpowiedzią SAML 2.0 authn.
Aplikacja OpenID Connect
OpenID Connect nie obsługuje IdP-Initiated Login. Dlatego IdP-Initiated Login jest weryfikowany w metodzie uwierzytelniania i przekazywany do aplikacji OpenID Connect przez
wywołanie aplikacji z adresem przekierowania app_redirect, który powinien uruchomić przepływ logowania (standard OpenID Connect: Initiating Login from a Third Party).
Potrzebujesz strony w aplikacji OpenID Connect, która wymaga uwierzytelnienia i dlatego uruchamia przepływ logowania po wywołaniu.
W zapytaniu przekazywany jest parametr wystawcy iss, który możesz opcjonalnie zweryfikować.
Aplikacja OpenID Connect może wykonać ogólne żądanie logowania z *, a FoxIDs wie, gdzie przekierować żądanie logowania.
Następnie aplikacja OpenID Connect wywołuje FoxIDs, które odczytuje grant IdP-Initiated Login. Alternatywnie, bez grantu IdP-Initiated Login zewnętrzny IdP jest wywoływany przepływem SP-Initiated Login. Zewnętrzny IdP korzysta z kontekstu Single Sign-On (SSO) i odpowiada do FoxIDs.
Zaleca się używanie funkcji grantu IdP-Initiated Login, aby uniknąć dodatkowej rundy do zewnętrznego IdP.
SAML 2.0 IdP-Initiated Login jest następnie tłumaczony na OpenID Connect i przekierowuje uwierzytelnienie do aplikacji OpenID Connect.
Jeśli chcesz przekierować uwierzytelnienie do aplikacji OpenID Connect o nazwie my-oidc-app z adresem inicjującym logowanie https://my-domain.com/secure-page,
relay state to:
app_name=my-oidc-app&app_type=oidc&app_redirect=https%3A%2F%2Fmy-domain.com%2Fsecure-page
Adres przekierowania aplikacji musi być prawidłowym lub skonfigurowanym adresem URL dla aplikacji OpenID Connect.