SAML 2.0 Anwendungsregistrierung
FoxIDs SAML 2.0 Anwendungsregistrierung ermöglicht es, eine SAML 2.0 basierte Anwendung zu verbinden.
SAML (Security Assertion Markup Language) 2.0 ist ein XML-basierter Standard für Authentifizierung und Autorisierung, der sicheres Single Sign-On (SSO) zwischen einem Identity Provider (IdP) und einem Service Provider (SP) ermöglicht. FoxIDs unterstützt sowohl SP-initiiertes als auch IdP-initiiertes Login.
Ihre Anwendung wird zu einer SAML 2.0 Relying Party (RP), und FoxIDs agiert als SAML 2.0 Identity Provider (IdP).
FoxIDs unterstützt SAML 2.0 Redirect und Post Bindings.
FoxIDs leitet außerdem einen Login Hint aus der URL der SAML Authn-Anfrage weiter, und zwar über den Query-Parameter login_hint oder LoginHint, wenn die Anfrage kein NameID enthält. Dadurch können Relying Parties wie Microsoft Entra ID und Okta die Benutzerkennung in der FoxIDs Anmeldeoberfläche vorbefüllen.
Eine Anwendungsregistrierung stellt SAML 2.0 Metadata bereit, sodass Ihre Anwendung den SAML 2.0 Identity Provider (IdP) entdecken kann.
FoxIDs unterstützt Login-, Logout- und Single Logout-SAML 2.0 Profile. Das Artifact-Profil wird nicht unterstützt.
Die von FoxIDs generierten SAML 2.0 Metadata enthalten nur Logout- und Single Logout-Informationen, wenn Logout in der SAML 2.0 Anwendungsregistrierung konfiguriert ist.
FoxIDs unterstützt sowohl RSA- als auch ECDSA-Zertifikate als SAML Signaturvalidierungszertifikate. Die Signaturvalidierung kann mehrere erlaubte Algorithmen akzeptieren, sodass Relying Parties SAML Requests mit RSA- oder ECDSA-Zertifikaten signieren können, während das ältere RSA-SHA-1 standardmäßig deaktiviert bleibt.
Anleitungen:
- Verbinde AD FS
- Verbinde Amazon IAM Identity Center
- Verbinde Google Workspace
- Verbinde Microsoft Entra ID
- Verbinde Context Handler test IdP (Danish identity broker)
Konfiguration
So konfigurieren Sie Ihre Anwendung als SAML 2.0 Relying Party (RP).
Metadata-Endpunkte
- IdP-Metadata:
https://foxids.com/tenant-x/environment-y/application-saml-pr1(*)/saml/idpmetadata(ersetzen Sietenant-x,environment-yundapplication-saml-pr1durch Ihre Werte). - Alternativer einzelner Endpunkt: Der Authn-Endpunkt gibt die IdP-Metadata auch zurück, wenn er mit
GETund ohneSAMLRequestaufgerufen wird. Dadurch können Partner, die eine URL sowohl für den Download von Metadata als auch für Authn-Anfragen benötigen, dieselbe Adresse verwenden, zum Beispielhttps://foxids.com/tenant-x/environment-y/application-saml-pr1(*)/saml/authn. Wenn derselbe Endpunkt eine SAML AuthnRequest per Redirect oder Post Binding erhält, führt er den normalen Login-Flow aus.
Eine Anwendungsregistrierung kann Login über mehrere Authentifizierungsmethoden unterstützen, indem der Name der Authentifizierungsmethode zur URL hinzugefügt wird.
Zum Beispiel adressiert https://foxids.com/tenant-x/environment-y/application-saml-pr1(login)/saml/idpmetadata oder /saml/authn die Login-Methode login. Sie können auch die Standardnotation * verwenden, um Login mit allen Authentifizierungsmethoden zu aktivieren.
Der folgende Screenshot zeigt die Konfiguration einer FoxIDs SAML 2.0 Anwendungsregistrierung im FoxIDs Control Client. Hier wird die Konfiguration aus den Metadata der Anwendung erstellt. Ausgegebene Claims werden auf die konfigurierte Menge von Claims begrenzt, und Sie können die Notation * verwenden, um alle Claims auszugeben.
Weitere Konfigurationsoptionen werden verfügbar, wenn Sie auf Show advanced klicken.

Sie können die SAML 2.0 Claim Collection ändern und Claim Tasks mit Claim Transforms und Claim Tasks implementieren. Wenn Sie einen neuen Claim erstellen, fügen Sie den Claim oder
*zur ListeIssue claimshinzu, um den Claim an Ihre Anwendung auszugeben.
Sicherheit und Interoperabilität
Erweiterte SAML Sicherheitseinstellungen sind verfügbar, wenn Sie in der SAML 2.0 Anwendungsregistrierung auf Show advanced klicken.
- Signature algorithm steuert den Algorithmus, den FoxIDs beim Signieren von SAML Responses oder Assertions verwendet. RSA-SHA-256 ist der Standard.
- Signature validation algorithms ist eine Allowlist für eingehende signierte SAML Requests und Logout-Nachrichten von der Relying Party. Die Standard-Allowlist enthält die unterstützten RSA-SHA-256/384/512 und ECDSA-SHA-256/384/512 Algorithmen und schließt RSA-SHA-1 aus.
- SAML Signaturvalidierungszertifikate unterstützen sowohl RSA- als auch ECDSA-Zertifikate, sodass eine Relying Party beide Zertifikattypen beim Signieren von SAML Requests und Logout-Nachrichten verwenden kann.
- Encrypt authn response verschlüsselt die Assertion in der SAML Authentication Response. Wenn die Funktion aktiviert ist, muss das Relying Party Encryption Certificate angegeben werden. Falls für Interoperabilität erforderlich, können Encryption algorithm und Key encryption algorithm ausgewählt werden.
Unterstützte Data Encryption Algorithmen sind AES-128-CBC, AES-192-CBC, AES-256-CBC, AES-128-GCM, AES-192-GCM und AES-256-GCM. AES-256-CBC ist der Standard.
Unterstützte Key Encryption Algorithmen sind RSA 1.5, RSA-OAEP und XML Encryption 1.1 RSA-OAEP. RSA-OAEP ist der Standard. Verwenden Sie RSA 1.5 nur, wenn eine ältere Relying Party dies erfordert.
Multi-Faktor Authentifizierung (MFA) anfordern
Die SAML 2.0 Relying Party (RP) kann MFA anfordern, indem urn:foxids:mfa in RequestedAuthnContext.AuthnContextClassRef eingefügt wird. Sie können dies mit spezifischeren Werten wie urn:foxids:link kombinieren. Siehe MFA von Anwendungen anfordern.
Beispielcode finden Sie im AspNetCoreSamlSample und in der Datei SamlController.cs. Die Eigenschaft AuthnContextClassRef kann in der Methode Login in SamlController.cs gesetzt werden:
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();
}