Rejestracja aplikacji SAML 2.0
Rejestracja aplikacji SAML 2.0 w FoxIDs umożliwia podłączenie aplikacji opartej na SAML 2.0.
SAML (Security Assertion Markup Language) 2.0 to oparty na XML standard uwierzytelniania i autoryzacji, który umożliwia bezpieczny single sign-on (SSO) między identity providerem (IdP) a service providerem (SP). FoxIDs obsługuje zarówno logowanie inicjowane przez SP, jak i przez IdP.
Twoja aplikacja staje się SAML 2.0 Relying Party (RP), a FoxIDs działa jako SAML 2.0 Identity Provider (IdP).
FoxIDs obsługuje SAML 2.0 redirect i post bindings.
FoxIDs przekazuje również login hint z adresu URL żądania SAML Authn, używając parametru zapytania login_hint lub LoginHint, gdy żądanie nie zawiera NameID. Dzięki temu relying parties takie jak Microsoft Entra i Okta mogą wstępnie wypełnić identyfikator użytkownika w doświadczeniu logowania FoxIDs.
Rejestracja aplikacji udostępnia metadata SAML 2.0, dzięki czemu aplikacja może odnaleźć SAML 2.0 Identity Providera (IdP).
FoxIDs obsługuje profile SAML 2.0 dla login, logout i single logout. Profil Artifact nie jest obsługiwany.
Metadata SAML 2.0 generowane przez FoxIDs zawierają informacje o logout i single logout tylko wtedy, gdy logout jest skonfigurowany w rejestracji aplikacji SAML 2.0.
Instrukcje:
- Połącz AD FS
- Połącz Amazon IAM Identity Center
- Połącz Google Workspace
- Połącz Microsoft Entra ID
- Połącz Context Handler test IdP (Danish identity broker)
Konfiguracja
Tak konfigurujesz aplikację jako SAML 2.0 Relying Party (RP).
Endpointy metadata
- Metadata IdP:
https://foxids.com/tenant-x/environment-y/application-saml-pr1(*)/saml/idpmetadata(zastąptenant-x,environment-yiapplication-saml-pr1własnymi wartościami). - Alternatywny pojedynczy endpoint: endpoint Authn zwraca również metadata IdP, gdy jest wywołany metodą
GETi bezSAMLRequest. Dzięki temu partnerzy, którzy wymagają jednego adresu URL zarówno do pobierania metadata, jak i do żądań Authn, mogą używać tego samego adresu, na przykładhttps://foxids.com/tenant-x/environment-y/application-saml-pr1(*)/saml/authn. Gdy ten sam endpoint otrzyma SAML AuthnRequest przez redirect lub post binding, wykona normalny flow logowania.
Rejestracja aplikacji może obsługiwać logowanie przez wiele metod uwierzytelniania przez dodanie nazwy metody uwierzytelniania do adresu URL.
Na przykład https://foxids.com/tenant-x/environment-y/application-saml-pr1(login)/saml/idpmetadata lub /saml/authn kieruje do metody logowania login. Możesz też użyć domyślnej notacji *, aby włączyć logowanie wszystkimi metodami uwierzytelniania.
Poniższy zrzut ekranu pokazuje konfigurację rejestracji aplikacji SAML 2.0 w FoxIDs Control Client. Tutaj konfiguracja jest tworzona na podstawie metadata aplikacji. Wydawane claims są ograniczone do skonfigurowanego zestawu claims, a do wydawania wszystkich claims możesz użyć notacji *.
Więcej opcji konfiguracji będzie dostępnych po kliknięciu Show advanced.

Możesz zmienić SAML 2.0 claim collection i implementować claim tasks za pomocą claim transforms i claim tasks. Jeśli tworzysz nowy claim, dodaj claim albo
*do listyIssue claims, aby wydać ten claim swojej aplikacji.
Wymaganie uwierzytelniania wieloskładnikowego (MFA)
SAML 2.0 Relying Party (RP) może wymagać MFA przez dodanie urn:foxids:mfa do RequestedAuthnContext.AuthnContextClassRef. Możesz połączyć tę wartość z bardziej szczegółowymi wartościami, takimi jak urn:foxids:link. Zobacz żądanie MFA z aplikacji.
Przykładowy kod znajdziesz w AspNetCoreSamlSample oraz w pliku SamlController.cs. Właściwość AuthnContextClassRef można ustawić w metodzie Login w SamlController.cs:
public IActionResult Login(string returnUrl = null)
{
var binding = new Saml2RedirectBinding();
binding.SetRelayStateQuery(new Dictionary<string, string>
{
{ relayStateReturnUrl, returnUrl ?? Url.Content("~/") }
});
var saml2AuthnRequest = new Saml2AuthnRequest(saml2Config)
{
// To require MFA
RequestedAuthnContext = new RequestedAuthnContext
{
Comparison = AuthnContextComparisonTypes.Exact,
AuthnContextClassRef = new string[] { "urn:foxids:mfa" },
}
};
return binding.Bind(saml2AuthnRequest).ToActionResult();
}