ASP.NET Core SAML Single Sign-On (SSO)
Das Modul bietet die Möglichkeit, SAML Single Sign-On für Ihre ASP.NET-Kernanwendungen zu aktivieren. Mit Single Sign-On können Sie nur ein Passwort verwenden, um auf Ihre ASP.NET-Kernanwendung und -Dienste zuzugreifen. Unser Modul ist mit allen SAML-kompatiblen Identitätsanbietern kompatibel. Hier gehen wir eine Schritt-für-Schritt-Anleitung durch, um Single Sign-On (SSO) zwischen ASP.NET Core und PingFederate unter Berücksichtigung von PingFederate als IdP zu konfigurieren. Um mehr über die Funktionen zu erfahren, die wir für ASP.NET Core SSO bereitstellen, klicken Sie auf
hier.
Plattformunterstützung: Die ASP.NET Core SAML-Middleware unterstützt ASP.NET Core 2.1 und höher. Es unterstützt alle ASP.NET Core-Plattformen, einschließlich Windows, Linux und macOS.
Voraussetzungen: Download und Installation
-
Herunterladen
die ASP.NET Core SSO SAML 2.0-Middleware.
-
Um das Modul einzurichten, extrahieren Sie die Datei asp-net-core-saml-middleware-xxx.zip. Dort finden Sie die DLL-Datei miniorange-saml-sso.dll
-
Fügen Sie die Referenz hinzu miniorange-saml-sso.dll in Ihrer Bewerbung ablegen.
using miniorange.saml
public class Startup
{
public void ConfigureServices(IServiceCollection services)
{
services.AddAuthentication(CookieAuthenticationDefaults.AuthenticationScheme).AddCookie();
services.AddControllersWithViews();
}
public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
{
app.UseHttpsRedirection();
app.UseRouting();
app.UseAuthorization();
app.MapRazorPages();
app.UseCookiePolicy();
app.UseAuthentication();
app.UseStaticFiles();
app.UseminiOrangeSAMLSSOMiddleware();
app.Run();
}
}
using Microsoft.AspNetCore.Authentication.Cookies;
using miniOrange.saml;
var builder = WebApplication.CreateBuilder(args);
builder.Services.AddRazorPages();
builder.Services.AddControllersWithViews();
builder.Services.AddAuthentication(options =>
{
options.DefaultAuthenticateScheme = "SSO_OR_Admin";
options.DefaultScheme = "SSO_OR_Admin";
options.DefaultChallengeScheme = "SSO_OR_Admin";
})
.AddCookie("moAdmin", options =>
{
})
.AddCookie(CookieAuthenticationDefaults.AuthenticationScheme, options =>
{
})
.AddPolicyScheme("SSO_OR_Admin", "SSO_OR_Admin", options =>
{
options.ForwardDefaultSelector = context =>
{
foreach (var cookie in context.Request.Cookies)
{
if (cookie.Key.Contains(".AspNetCore.Cookies"))
{
return CookieAuthenticationDefaults.AuthenticationScheme;
}
}
return "moAdmin";
};
});
var app = builder.Build();
if (!app.Environment.IsDevelopment())
{
app.UseExceptionHandler("/Error");
app.UseHsts();
}
app.UseHttpsRedirection();
app.UseRouting();
app.UseAuthorization();
app.MapRazorPages();
app.UseCookiePolicy();
app.UseAuthentication();
app.UseStaticFiles();
app.UseminiOrangeSAMLSSOMiddleware();
app.Run();
Schritte zum Konfigurieren von ASP.NET Core Single Sign-On (SSO) mit PingFederate als IDP
1. Modul zur ASP.NET Core-Anwendung hinzufügen
-
Öffnen Sie nach der Integration Ihren Browser und durchsuchen Sie das Connector-Dashboard mit der folgenden URL:
https://<your-application-base-url>/?ssoaction=config
-
Wenn die Registrierungs- oder Anmeldeseite angezeigt wird, haben Sie den miniOrange ASP.NET-Middleware-Authentifizierungs-SAML-SSO-Connector 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 das Modul zu konfigurieren.
2. Konfigurieren Sie PingFederate als Identitätsanbieter
-
Unter dem Plugin-Einstellungen Registerkarte, wählen Sie PingFederate Wählen Sie aus der angezeigten Liste Ihren Identitätsanbieter aus.
Im Folgenden werden zwei Möglichkeiten beschrieben, mit denen Sie die SAML-SP-Metadaten zur Konfiguration auf der Seite Ihres Identitätsanbieters abrufen können.
A] Verwendung 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 bei Ihrem Identitätsanbieter zu konfigurieren.
- Sie können sich auf den Screenshot unten beziehen:
B] Metadaten manuell hochladen:
-
Von dem Dienstanbietereinstellungen Im Abschnitt können Sie die Metadaten des Dienstanbieters manuell kopieren
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:
- Melden Sie sich bei Ihrem Ping Federate User Admin-Dashboard an.
-
Klicken Sie auf Identitätsanbieter im linken Navigationsmenü.
-
Der SP-ANSCHLUSS, klicke auf
Neu erstellen .
-
Wähle aus Browser-SSO-Profile Verbindungsvorlage auf der Verbindungstyp Tab und klicken Sie auf
Weiter.
-
Wählen Sie „Browser SSO“ aus Anschlussmöglichkeiten Tab und klicken Sie auf
Weiter.
-
Auswählen Reichen Sie das als Methode zum Importieren von Metadaten und klicken Sie auf Auswählen
Datei, um die Metadaten des miniOrange SSO-Plugins auszuwählen Metadaten importieren Tab. Klicken
Weiter.
-
Überprüfen Sie die Informationen auf der Zusammenfassung der Metadaten Tab und klicken Sie Weiter.
-
Im Registerkarte „Allgemeine Informationen“. sicherstellen, dass die
Entitäts-ID des Dienstanbieters, Verbindungsname und
Basis-URL Felder werden basierend auf den Metadaten vorab ausgefüllt. Klicken Weiter.
-
Navigieren Sie zu der Browser-SSO und klicken Sie auf
Konfigurieren Sie Browser-SSO. Sie werden zum Browser-SSO-Setup-Assistenten weitergeleitet.
-
Wähle aus IdP-initiiertes SSO und
SP-initiiertes SSO Optionen auf der SAML-Profile Tab und klicken Sie auf
Weiter.
-
Geben Sie die gewünschte Gültigkeitsdauer Ihrer Behauptung ein
Behauptungslebensdauer Tab und klicken Sie auf Weiter. Standardmäßig ist es konfiguriert 5 Minuten für beide.
-
Navigieren Sie zur Assertionserstellung und klicken Sie auf „Assertionserstellung konfigurieren“. Sie werden zum Einrichtungsassistenten für die Assertionserstellung weitergeleitet.
- Wählen Sie auf der Registerkarte „Identitätszuordnung“ die Option „STANDARD“ aus und klicken Sie auf „Weiter“.
-
Wählen Sie ein Betreffnamenformat für SAML_SUBJECT im aus
Attributvertrag Registerkarte und klicken Sie auf Weiter.
-
Klicken Sie in der Authentifizierungsquellenzuordnung auf Neue Adapterinstanz zuordnen.
-
Wählen Sie eine aus Adapterinstanz und klicken auf
Weiter. Der Adapter muss die E-Mail-Adresse des Benutzers enthalten.
-
Wähle aus
Verwenden Sie in der SAML-Behauptung nur die Adaptervertragswerte Option auf dem Mapping-Methode Tab und klicken Sie auf
Weiter.
-
Wählen Sie Ihre Adapterinstanz als aus
Quelle und die E-Mail als Wert
auf die Attribut Vertragserfüllung Tab und klicken Sie Weiter.
-
(Optional) Wählen Sie die gewünschten Autorisierungsbedingungen aus
Ausgabekriterien Tab und klicken Sie auf
Weiter.
- Klicken Sie auf Kostenlos erhalten und dann auf Installieren. Erledigt
auf die Zusammenfassung.
-
Klicken Sie auf Kostenlos erhalten und dann auf Installieren. Weiter auf die
Authentifizierungsquellenzuordnung Tab.
- Klicken Sie auf Kostenlos erhalten und dann auf Installieren. Erledigt
auf der Registerkarte Zusammenfassung.
-
Klicken Sie auf Kostenlos erhalten und dann auf Installieren. Weiter auf die
Behauptungserstellung
-
Navigieren Sie zur Registerkarte „Protokolleinstellungen“ des Browser-SSO-Assistenten und klicken Sie auf „Protokolleinstellungen konfigurieren“.
-
Wählen Sie POST für Buchbindung und geben Sie das Single Sign-On an Endpunkt-URL im Feld Endpunkt-URL auf
URL des Assertion-Verbraucherdienstes Klicken Sie auf Kostenlos erhalten und dann auf Installieren.
Weiter.
-
Auswählen jetzt lesen auf die
Zulässige SAML-Bindungen Tab und klicken Sie auf
Weiter.
-
Wählen Sie Ihre gewünschten Signaturrichtlinien für Zusicherungen aus
Signaturrichtlinie Tab und klicken Sie auf Weiter.
-
Wählen Sie Ihre gewünschte Verschlüsselungsrichtlinie für Zusicherungen aus
Verschlüsselungsrichtlinie Tab und klicken Sie auf Weiter.
-
Klicken Sie auf Kostenlos erhalten und dann auf Installieren. Erledigt
auf die
Zusammenfassung der Protokolleinstellungen Tab.
-
Navigieren Sie zu der Referenzen und klicken Sie auf
Anmeldeinformationen konfigurieren. Sie werden auf die weitergeleitet
Referenzen Setup-Assistent.
-
Wählen Sie das Signaturzertifikat aus, das mit dem Single Sign-On-Dienst verwendet werden soll, und wählen Sie auf der Registerkarte „Einstellungen für digitale Signaturen“ die Option „Zertifikat in das Signaturelement einbeziehen“ aus. Klicken Sie auf Fertig.
- Klicken Sie auf Kostenlos erhalten und dann auf Installieren. Erledigt
auf die Zusammenfassung.
-
Klicken Sie auf Kostenlos erhalten und dann auf Installieren. Weiter auf die Referenzen.
-
Auswählen Aktives für die
Verbindungsstatus auf die
Aktivierung und Zusammenfassung Tab und klicken Sie auf
Speichern.
-
Navigieren Sie nun zum Dashboard „Ping Federate User Admin“ und „Identity Provide“.
-
Klicken Sie auf Kostenlos erhalten und dann auf Installieren. Alles verwalten für SP-Verbindungen.
-
Klicken Sie auf Kostenlos erhalten und dann auf Installieren. Metadaten exportieren für den gewünschten Dienstanbieteranschluss.
-
Klicken Sie auf Kostenlos erhalten und dann auf Installieren. Exportieren auf die
Export & Zusammenfassung Tab und klicken Sie auf
Fertig.
3. Konfigurieren Sie das ASP.NET SAML-Modul als Dienstanbieter
Im Folgenden werden zwei Möglichkeiten beschrieben, mit denen Sie die Metadaten Ihres SAML-Identitätsanbieters im Modul konfigurieren können.
A] Metadaten über die Schaltfläche „IDP-Metadaten hochladen“ hochladen:
-
Wenn Ihr Identitätsanbieter Ihnen die Metadaten-URL oder Metadatendatei (nur .xml-Format) bereitgestellt hat, können Sie die Metadaten des Identitätsanbieters einfach im Modul mithilfe von konfigurieren
Laden Sie IDP-Metadaten hoch .
- 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 wird Ihnen zur Verfügung gestellt IDP-Entitäts-ID, IDP-Single-Sign-On-URL und
SAML X509-Zertifikat Felder bzw.
- Klicken Sie auf Kostenlos erhalten und dann auf Installieren. Speichern um Ihre IDP-Daten zu speichern.
4. Testen von SAML SSO
-
Klicken Sie auf Testkonfiguration Klicken Sie auf die 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 Modulseite 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.
-
Nach der Aktivierung können Sie Plugin-Protokolle abrufen, indem Sie zu navigieren
Plugin-Einstellungen Tab und klicken Sie auf Testkonfiguration.
-
Laden Sie die Logdatei von dem Problembehandlung Tab, 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.
-
Sie können auch nachschauen Aufbautour um zu verstehen, wie die SSO-Integration in Ihrer asp.net-Middleware-Anwendung funktionieren würde.
-
Kopieren Sie einfach dieses Code-Snippet und fügen Sie es dort ein, wo Sie auf die Benutzerattribute zugreifen möchten.
-
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
- Sie können den Integrationscode auch von unten kopieren:
string name="";
string claimtype="";
string claimvalue="";
if(User.Identity.IsAuthenticated)
{
foreach( var claim in User.Claims)
{
claimtype = claim.Type;
claimvalue = claim.Value;
}
var identity = (ClaimsIdentity)User.Identity;
IEnumerable claims = identity.Claims;
string mobileNumber = identity.FindFirst("mobileNumber")?.Value;
}
Hinweis: Alle zugeordneten Attribute werden in den Ansprüchen gespeichert, auf die in Ihrer Anwendung zugegriffen werden kann.
Wenn Sie Hilfe zum Integrationscode benötigen, kontaktieren Sie uns unter
aspnetsupport@xecurify.com
7. Anmeldeeinstellungen
- 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://asp.net-middleware-base-url/?ssoaction=login
-
Sie können es beispielsweise wie folgt verwenden:
<a href=”https://asp.net-middleware-base-url/?ssoaction=login”>Log
in</a>
7. Anmeldeeinstellungen
- 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://base-url/?ssoaction=login
-
Sie können es beispielsweise wie folgt verwenden:
<a href=”https://asp-net-middlewarebase-url/?ssoaction=login”>Log
in</a>
8. Abmeldeeinstellungen
-
Verwenden Sie die folgende URL als Link zu Ihrer Anwendung, von der aus Sie SLO durchführen möchten:
https://asp-net-middleware-base-url/?ssoaction=logout
-
Sie können es beispielsweise wie folgt verwenden:
<a href=”https://asp-net-middleware-base-url/?ssoaction=logout”>Log
out</a>
Um Ihren IDP zu konfigurieren, finden Sie die Metadaten des Dienstanbieters in der Datei appsetting.json. Informationen zu SP-Metadaten finden Sie im folgenden Screenshot:
Aus miniOrange Kopieren Sie spendityid und acsurl und stellen Sie sie dem Team Ihres Identitätsanbieters zur Verfügung.
-
Sobald die Metadaten des Dienstanbieters auf der IdP-Seite konfiguriert sind, erhalten Sie die IdP-Metadatendatei oder Metadaten-URL oder Metadaten-URLs wie IdP-Entitäts-ID, IdP-SSO-URL usw.
-
Um Ihre IDP-Metadaten zu konfigurieren, navigieren Sie zu
appsettings.json Datei. Die folgenden Einstellungen finden Sie im JSON-Bereich von miniorange
-
Um Ihren IDP direkt zu konfigurieren, navigieren Sie zu
appsettings.json Datei.
-
Konfigurieren Sie die entsprechenden bereitgestellten Metadaten und speichern Sie die Einstellungen.
idp_cert |
Geben Sie in dieses Feld das IDP-Zertifikat ein |
ssourl |
Geben Sie in dieses Feld die SSO-URL ein |
idp_issuer |
Geben Sie in dieses Feld den IDP-Aussteller ein |
Attributzuordnung
-
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.
Integrationscode
-
Kopieren Sie einfach den Codeausschnitt und fügen Sie ihn dort ein, wo Sie auf die Benutzerattribute zugreifen möchten.
-
Hinweis: Alle zugeordneten Attribute werden in der Sitzung gespeichert, sodass Sie in Ihrer Anwendung darauf zugreifen können.
string name="";
string claimtype="";
string claimvalue="";
if(User.Identity.IsAuthenticated) {
name= User.Identity.Name;
foreach( var claim in User.Claims) {
claimtype = claim.Type;
claimValue = claim.Value;
}
}
Sie können das ASP.NET Core SAML 2.0 Single Sign-On (SSO)-Modul mit jedem Identitätsanbieter konfigurieren, z
ADFS, Azure AD, Bitium, Centrify, G Suite, JBoss Keycloak, Okta, OneLogin, Salesforce, AWS Cognito, OpenAM, Oracle, PingFederate, PingOne, RSA SecureID, Shibboleth-2, Shibboleth-3, SimpleSAML, WSO2 oder sogar mit Ihrem eigener benutzerdefinierter Identitätsanbieter. Sehen Sie sich die Liste der Identitätsanbieter an
hier.
Weitere Informationen
Hilfe benötigt?
Sie können Ihren Identitätsanbieter nicht finden? Schicken Sie uns eine E-Mail
aspnetsupport@xecurify.com
Wir helfen Ihnen bei der Einrichtung von SSO mit Ihrem IDP und geben Ihnen eine schnelle Anleitung (per E-Mail/Besprechung) zu Ihren Anforderungen. Unser Team hilft Ihnen bei der Auswahl der für Ihre Anforderungen am besten geeigneten Lösung/Plan.