Konfigurieren von SAML Single Sign-On (SSO) in einer entkoppelten ASP.NET Core-Anwendung
Übersicht
Dieses Handbuch enthält detaillierte Schritte zum Einrichten von SAML Single Sign-On (SSO) in einer ASP.NET Core-Anwendung mit entkoppelter Architektur unter Verwendung eines beliebigen SAML-kompatiblen Identitätsanbieters (IdP). Das Backend (ASP.NET Core) übernimmt die SSO-Authentifizierung, generiert ein JWT-Token und stellt es sicher jedem Frontend (React, Angular, Vue usw.) zur Verfügung.
Plattformunterstützung: Die ASP.NET Core SAML-Middleware unterstützt ASP.NET Core 2.0 und höher. Sie unterstützt alle ASP.NET Core-Plattformen, einschließlich Windows, Linux und macOS.
Voraussetzungen: Download und Installation
- Version .NET 5 und höher
- Version .NET Core 2.1 und .NET Core 3.1
Wenn Sie das bekommen CORS-Probleme Fügen Sie beim Tätigen von API-Aufrufen den folgenden Dienst und die folgende Richtlinie hinzu.
builder.Services.AddCors(options =>
{
options.AddPolicy("<policy-name>",policy =>
{
policy.WithOrigins("<your-origin>",policy)
.AllowAnyHeader()
.AllowAnyMethod()
.AllowCredentials()
});
});
//Add this in the middleware section
app.UseCors("<policy-name>");
Konfigurationsschritte
Schritt-für-Schritt-Anleitung für ASP.NET Core SAML SSO unter Verwendung Ihres Identitätsanbieters.
1. Fügen Sie Middleware zur ASP.NET Core-Anwendung hinzu
- Öffnen Sie nach der Integration Ihren Browser und durchsuchen Sie das Connector-Dashboard mit der folgenden URL:
https://<asp.net-middleware-base-url>/?ssoaction=config
- Wenn die Registrierungs- oder Anmeldeseite angezeigt wird, haben Sie den SAML SSO-Connector für die Authentifizierung der miniOrange ASP.NET-Middleware erfolgreich zu Ihrer Anwendung hinzugefügt.

- Registrieren Sie sich oder melden Sie sich mit Ihrem Konto an, indem Sie auf klicken Registrieren Klicken Sie auf die Schaltfläche, um die Middleware zu konfigurieren.
2. Konfigurieren Sie Ihren Identitätsanbieter
- Unter dem Plugin-Einstellungen Wählen Sie auf der Registerkarte „Identitätsanbieter“ Ihren Identitätsanbieter aus der angezeigten Liste aus.

Im Folgenden werden zwei Möglichkeiten beschrieben, mit denen Sie die SAML SP-Metadaten abrufen können, um sie auf der Seite Ihres Identitätsanbieters zu konfigurieren.
A] Verwenden der SAML-Metadaten-URL oder Metadatendatei
- Im Menü „Plugin-Einstellungen“., suchen Dienstanbietereinstellungen. Darunter finden Sie die Metadaten-URL sowie die Möglichkeit, die SAML-Metadaten herunterzuladen.
- Kopieren Sie die Metadaten-URL oder laden Sie die Metadatendatei herunter, um sie auf der Seite Ihres Identitätsanbieters zu konfigurieren.
- Sie können sich auf den Screenshot unten beziehen:

B] Manuelles Hochladen von Metadaten
- Von dem Dienstanbietereinstellungen Abschnitt können Sie die Metadaten des Dienstanbieters manuell kopieren, wie SP-Entitäts-ID, ACS-URL, Single-Logout-URL und geben Sie es zur Konfiguration an Ihren Identitätsanbieter weiter.
- Sie können sich auf den Screenshot unten beziehen:

3. Konfigurieren Sie ASP.NET Core SAML Middleware als Dienstanbieter
Im Folgenden werden zwei Möglichkeiten beschrieben, mit denen Sie die Metadaten Ihres SAML-Identitätsanbieters in der Middleware konfigurieren können.
A] Metadaten über die Schaltfläche „IDP-Metadaten hochladen“ hochladen:
- Wenn Ihr Identitätsanbieter Ihnen die Metadaten-URL oder die Metadatendatei (nur im XML-Format) bereitgestellt hat, können Sie die Metadaten des Identitätsanbieters einfach in der Middleware konfigurieren, indem Sie Folgendes verwenden: Laden Sie IDP-Metadaten hoch .
- Kopieren Sie die Metadaten-URL oder laden Sie die Metadatendatei herunter, um sie auf der Seite Ihres Identitätsanbieters zu konfigurieren.
- Sie können sich auf den Screenshot unten beziehen:

- Sie können eine der Optionen entsprechend dem verfügbaren Metadatenformat auswählen.
B] Konfigurieren Sie die Metadaten des Identitätsanbieters manuell:
- Nach der Konfiguration Ihres Identitätsanbieter, es bietet Ihnen IDP-Entitäts-ID, IDP-Single-Sign-On-URL und SAML X509-Zertifikat Felder bzw.
- Klicke Gespeichert um Ihre IDP-Daten zu speichern.

4. Testen von SAML SSO
- Klicken Sie auf Testkonfiguration Schaltfläche, um zu testen, ob die von Ihnen vorgenommene SAML-Konfiguration korrekt ist.
- Der Screenshot unten zeigt ein erfolgreiches Ergebnis. Klicke auf SSO-Integration um die SSO-Integration weiter fortzusetzen.

- Wenn auf der Middleware-Seite ein Fehler auftritt, wird ein Fenster angezeigt, das dem folgenden ähnelt.

- Um den Fehler zu beheben, können Sie die folgenden Schritte ausführen:
- Der Problembehandlung Aktivieren Sie auf der Registerkarte den Schalter, um die Plugin-Protokolle zu empfangen.

- Sobald diese Option aktiviert ist, können Sie die Plugin-Protokolle abrufen, indem Sie zu Plugin-Einstellungen Tab und klicken Sie auf Testkonfiguration.
- Laden Sie Logdatei von dem Problembehandlung Registerkarte, um zu sehen, was schief gelaufen ist.
- Sie können die teilen Logdatei bei uns bei aspnetsupport@xecurify.com und unser Team wird sich mit Ihnen in Verbindung setzen, um Ihr Problem zu lösen.
5. Attributzuordnung
- Nachdem Sie die Konfiguration getestet haben, ordnen Sie Ihre Anwendungsattribute den Identitätsanbieterattributen (IdP) zu.
- Hinweis: Alle zugeordneten Attribute werden in der Sitzung gespeichert, sodass Sie in Ihrer Anwendung darauf zugreifen können.

6. Integrationscode
- Mit diesen Schritten können Sie die SSO-Benutzerinformationen in Ihrer Anwendung in Form von Benutzeransprüchen abrufen.
- Hinweis: Diese Test-Middleware unterstützt nur Benutzerinformationen in Ansprüchen. Das Abrufen von Benutzerinformationen in Sitzungen und Headern ist im Premium-Plugin verfügbar.
-
Erstellen Sie auf der .NET-Seite einen GET-Endpunkt, um das JWT-Token nach der Anmeldung zurückzugeben.
Hinweis: Wenn Sie über eine Methode zum Erstellen eines JWT verfügen, müssen Sie nur die Ansprüche aus dem .NET-Cookie auswählen.
Unten ist der Code zu Ihrer Information:
[HttpGet("gettoken")]
public string GetToken()
{
if(User.Identity!=null && User.Identity.IsAuthenticated)
{
var key = new SymmetricSecurityKey(Encoding.UTF8.GetBytes
("Your-JWT-secret-key"));
var creds = new SigningCredentials(key, SecurityAlgorithms.HmacSha256);
var identity = (ClaimsIdentity)User.Identity;
var claims = identity.Claims;
var token = new JwtSecurityToken(
issuer:"<issuer-name>",
audience:"<audience>",
claims:claims,
expires: DateTime.UtcNow.AddHours(1),
signingCredentials: creds
);
return new JwtSecurityTokenHandler().WriteToken(token);
}
return null;
}
7. Schaltfläche „Anmelden“ hinzufügen
- Schweben Wählen Sie Aktionen aus und klicken Sie auf SSO-Link kopieren.

- Verwenden Sie die folgende URL als Link in der Anwendung, von der aus Sie SSO durchführen möchten:
https://<application-url>?ssoaction=login&appid=<app-id>
- Nach dem Login werden Sie zurück zu Ihrem Frontend-Anwendung, dann müssen Sie eine API-Aufruf um das zu bekommen Zeichen und Benutzerinformationen.
- Unten sehen Sie den Beispielcode, den Sie für den API-Aufruf an die Token-Endpunkt um das Token von der Frontend-Seite zu erhalten.
fetch("https://<backend-api-baseurl>/api/gettoken", {
method: "GET",
})
.then((response) => {
//here you will receive the jwt token and the user details
console.log(response);
});
8. Testintegration
- Starten Sie Ihre ASP.NET Core Web-API-Anwendung
- Starten Sie Ihre Frontend-Anwendung
- Klicken Sie in der Frontend-Anwendung auf das SSO-Anmeldung Schaltfläche, die Sie hinzugefügt haben
- Nach SAML-Anmeldung, Sie werden zurück zu Ihrer Frontend-Anwendung geleitet. An diesem Punkt ruft Ihre Frontend-Anwendung die /api/gettoken -Endpunkt, der das Token und die Benutzerdetails zurückgibt. Sie können den JWT-Token um Ihre weiteren API-Aufrufe zu tätigen.

Hinweis: Wenn Sie das Attribut „Authorize“ der API zur Tokenvalidierung verwenden, müssen Sie die Authentifizierungsrichtlinie angeben, da wir jetzt mehrere Richtlinien registriert haben.
Für JWT-Verwendung: [Authorize(AuthenticationSchemes = JwtBearerDefaults.AuthenticationScheme)]
Ähnliche Artikel
Kontaktieren Sie uns
Bitte erreichen Sie uns unter aspnetsupport@xecurify.com, und unser Team unterstützt Sie bei der Einrichtung des ASP.NET Core SAML SSO. Unser Team hilft Ihnen, die am besten geeignete Lösung/den am besten geeigneten Plan entsprechend Ihren Anforderungen auszuwählen.