ASP.NET Core SAML Single Sign-On (SSO)
modulen ger möjlighet att aktivera SAML Single Sign-On för dina ASP.NET-kärnapplikationer. Genom att använda enkel inloggning kan du bara använda ett lösenord för att komma åt din ASP.NET kärnapplikation och tjänster. Vår modul är kompatibel med alla SAML-kompatibla identitetsleverantörer. Här kommer vi att gå igenom en steg-för-steg-guide för att konfigurera Single Sign-On (SSO) mellan ASP.NET Core och PingFederate med tanke på PingFederate som IdP. För att veta mer om funktionerna vi tillhandahåller för ASP.NET Core SSO, klicka
här..
Plattformssupport: ASP.NET Core SAML-mellanvaran stöder ASP.NET Core 2.1 och senare. Den stöder alla ASP.NET Core-plattformar, inklusive Windows, Linux och macOS.
Förutsättningar: Ladda ner och installation
-
Download
ASP.NET Core SSO SAML 2.0 Middleware.
-
För att ställa in modulen, extrahera asp-net-core-saml-middleware-xxx.zip, du hittar en DLL-fil miniorange-saml-sso.dll
-
Lägg till referensen miniorange-saml-sso.dll fil i din ansökan.
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();
Steg för att konfigurera ASP.NET Core Single Sign-On (SSO) med PingFederate som IDP
1. Lägg till modul i ASP.NET Core-applikationen
-
Efter integreringen öppnar du din webbläsare och bläddrar i anslutningspanelen med webbadressen nedan:
https://<your-application-base-url>/?ssoaction=config
-
Om registreringssidan eller inloggningssidan dyker upp har du framgångsrikt lagt till miniOrange ASP.NET middleware autentisering SAML SSO-anslutningen till din applikation.
-
Registrera dig eller logga in med ditt konto genom att klicka på Registrera för att konfigurera modulen.
2. Konfigurera PingFederate som identitetsleverantör
-
Enligt plugin Settings fliken, välj PingFederate som din identitetsleverantör från listan som visas.
Det finns två sätt som beskrivs nedan med vilka du kan få SAML SP-metadata att konfigurera på din identitetsleverantör.
A] Använda SAML-metadata-URL eller metadatafil:
-
I Menyn för plugininställningar, leta efter
Inställningar för tjänsteleverantör. Under det kan du hitta metadata-URLen samt möjligheten att ladda ner SAML-metadata.
-
Kopiera metadata-URL eller ladda ned metadatafilen för att konfigurera densamma på din identitetsleverantör.
- Du kan hänvisa till skärmdumpen nedan:
B] Ladda upp metadata manuellt:
-
Från Inställningar för tjänsteleverantör avsnitt, kan du manuellt kopiera tjänsteleverantörens metadata som
SP Entity ID, ACS URL, Single Logout URL
och dela den med din identitetsleverantör för konfiguration.
- Du kan hänvisa till skärmdumpen nedan:
- Logga in på din Ping Federate User Admin-instrumentpanel.
-
Klicka på Identitetsleverantör i den vänstra navigeringsmenyn.
-
Enligt SP-ANSLUTNING, Klicka på
Skapa ny knapp.
-
Välj Webbläsare SSO-profiler anslutningsmall på Anslutningstyp fliken och klicka
Nästa.
-
Välj Browser SSO på Anslutningsalternativ fliken och klicka
Nästa.
-
Välja Fil som metod för att importera metadata och klicka Välja fil för att välja miniOrange SSO-plugins metadata på Importera metadata flik. Klick
Nästa.
-
Granska informationen på Sammanfattning av metadata fliken och klicka Nästa.
-
I Fliken Allmän information se till att
Tjänsteleverantörens enhets-ID, anslutningsnamnoch
Grundadress fält fylls i förväg baserat på metadata. Klick Nästa.
-
Navigera till Webbläsare SSO fliken och klicka på
Konfigurera webbläsare SSO. Du kommer att omdirigeras till inställningsguiden för webbläsare SSO.
-
Välj IdP-initierad SSO och
SP-initierad SSO alternativ på SAML-profiler fliken och klicka
Nästa.
-
Ange önskad giltighetstid för påståendet från och med den
Assertion Lifetime fliken och klicka Nästa. Som standard är den konfigurerad 5 minuter för båda.
-
Navigera till Assertion Creation och klicka på Configure Assertion Creation. Du kommer att omdirigeras till installationsguiden för att skapa påstående.
- Välj STANDARD på fliken Identitetsmappning och klicka på Nästa.
-
Välj ett ämnesnamnformat för SAML_SUBJECT på
Attributkontrakt fliken och klicka på Nästa.
-
Klicka på Map New Adapter Instance på Authentication Source Mapping.
-
Välj en Adapterinstans och klicka
Nästa. Adaptern måste innehålla användarens e-postadress.
-
Välj
Använd endast adapterkontraktsvärdena i SAML-påståendet alternativ på Kartläggningsmetod fliken och klicka
Nästa.
-
Välj din adapterinstans som
Källa och e-postmeddelandet som Värde
på Attribut Kontraktsuppfyllelse fliken och klicka Nästa.
-
(Valfritt) Välj eventuella auktoriseringsvillkor som du vill ha på
Utgivningskriterier fliken och klicka
Nästa.
- Klicka Färdig
på Sammanfattning.
-
Klicka Nästa på
Mappning av autentiseringskälla fliken.
- Klicka Färdig
på fliken Sammanfattning.
-
Klicka Nästa på
Påstående skapande
-
Navigera till fliken Protocol Settings i Webbläsarens SSO-guide och klicka på Configure Protocol settings.
-
Välj POST för Bindning och ange enkel inloggning slutpunkts-URL i fältet Endpoint URL på
Assertion Consumer Service URL Klicka
Nästa.
-
Välja POST på
Tillåtna SAML-bindningar fliken och klicka
Nästa.
-
Välj önskade signaturpolicyer för påståenden om
Signaturpolicy fliken och klicka Nästa.
-
Välj önskad krypteringspolicy för påståenden om
Krypteringspolicy fliken och klicka Nästa.
-
Klicka Färdig
på
Sammanfattning av protokollinställningar fliken.
-
Navigera till referenser och klicka på
Konfigurera autentiseringsuppgifter. Du kommer att omdirigeras till
referenser installationsguiden.
-
Välj signeringscertifikatet som ska användas med tjänsten Single Sign-On och välj Inkludera certifikatet i signaturelementet på fliken Digital Signature Settings. Klicka på Klar.
- Klicka Färdig
på Sammanfattning.
-
Klicka Nästa på referenser.
-
Välja Aktiva för
Anslutningsstatus på
Aktivering & Sammanfattning fliken och klicka
Save.
-
Navigera nu till Ping Federate User Admin dashboardè Identity Provide.
-
Klicka Hantera alla under SP-anslutningar.
-
Klicka Exportera metadata för den önskade tjänsteleverantörens anslutning.
-
Klicka Exportera på
Export & Sammanfattning fliken och klicka
Klar.
3. Konfigurera ASP.NET SAML-modul som tjänsteleverantör
Det finns två sätt som beskrivs nedan med vilka du kan konfigurera din SAML-identitetsleverantörs metadata i modulen.
A] Ladda upp metadata med knappen Ladda upp IDP-metadata:
-
Om din identitetsleverantör har försett dig med metadata-URL eller metadatafil (endast .xml-format) kan du helt enkelt konfigurera identitetsleverantörens metadata i modulen med hjälp av
Ladda upp IDP-metadata alternativ.
- Du kan hänvisa till skärmdumpen nedan:
-
Du kan välja vilket som helst av alternativen enligt det metadataformat du har tillgängligt.
B] Konfigurera identitetsleverantörens metadata manuellt:
-
Efter att ha konfigurerat din Identitetsleverantör, kommer det att ge dig IDP Entity ID, IDP Single Sign On URL och
SAML X509-certifikat fält respektive.
- Klicka Save för att spara dina IDP-uppgifter.
4. Testa SAML SSO
-
Klicka på Testkonfiguration för att testa om SAML-konfigurationen du har gjort är korrekt.
-
Skärmdumpen nedan visar ett lyckat resultat. Klicka på
SSO-integration för att fortsätta med SSO-integrationen.
-
Om du upplever något fel i modulens ände kommer du att visas med fönstret som liknar nedan.
- För att felsöka felet kan du följa stegen nedan:
-
Enligt
felsöka
fliken, aktivera växeln för att ta emot pluginloggarna.
-
När det är aktiverat kommer du att kunna hämta pluginloggar genom att navigera till
plugin Settings fliken och klicka på Testkonfiguration.
-
ladda ner loggfil från felsöka fliken för att se vad som gick fel.
-
Du kan dela loggfil med oss kl
aspnetsupport@xecurify.com
och vårt team kommer att kontakta dig för att lösa ditt problem.
5. Attributmappning
-
Efter att ha testat konfigurationen, mappa dina applikationsattribut med attributen Identity Provider (IdP).
-
Notera: Alla mappade attribut kommer att lagras i sessionen så att du kan komma åt dem i din applikation.
6. Integrationskod
-
Dessa steg låter dig hämta SSO-användarinformationen i din ansökan i form av användaranspråk.
-
Du kan också titta på installationstur för att förstå hur SSO-integreringen skulle fungera i din asp.net-mellanprogramvara.
-
Bara kopiera och klistra in det kodavsnittet där du vill komma åt användarattributen.
-
Notera:Denna provmellanvara stöder endast användarinformation i anspråk, hämtning av användarinformation i session och rubriker är tillgänglig i premiumplugin
- Du kan också kopiera integrationskoden nedan:
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;
}
Notera: Alla mappade attribut kommer att lagras i anspråken som ska nås i din applikation.
Om du vill ha hjälp med integrationskoden, kontakta oss på
aspnetsupport@xecurify.com
7. Inloggningsinställningar
- Hök på Välj Åtgärder och klicka på Kopiera SSO-länk.
-
Använd följande URL som en länk i applikationen där du vill utföra SSO:
https://asp.net-middleware-base-url/?ssoaction=login
-
Du kan till exempel använda det som:
<a href=”https://asp.net-middleware-base-url/?ssoaction=login”>Log
in</a>
7. Inloggningsinställningar
- Hök på Välj Åtgärder och klicka på Kopiera SSO-länk.
-
Använd följande URL som en länk i applikationen där du vill utföra SSO:
https://base-url/?ssoaction=login
-
Du kan till exempel använda det som:
<a href=”https://asp-net-middlewarebase-url/?ssoaction=login”>Log
in</a>
8. Logga ut Inställningar
-
Använd följande URL som en länk till din applikation där du vill utföra SLO:
https://asp-net-middleware-base-url/?ssoaction=logout
-
Du kan till exempel använda det som:
<a href=”https://asp-net-middleware-base-url/?ssoaction=logout”>Log
out</a>
För att konfigurera din IDP kan du hitta tjänsteleverantörens metadata i filen appsetting.json. För SP-metadata kan du se skärmdumpen nedan:
Från miniOrange sektion, kopiera spendityid, acsurl och tillhandahåll den till din identitetsleverantörs team.
-
När tjänsteleverantörens metadata har konfigurerats på IdP-änden, kommer du att få IdP-metadatafilen eller metadata-URL eller metadata-URL:er som IdP Entity Id, IdP SSO URL etc.
-
För att konfigurera din IDP-metadata, navigera till
appssettings.json fil. Du hittar följande inställningar i minioranges JSON-sektion
-
För att konfigurera din IDP direkt, navigera till
appssettings.json fil.
-
Konfigurera lämplig metadata och spara inställningarna.
idp_cert |
Ange IDP-certifikatet i detta fält |
ssourl |
Ange SSO URL i detta fält |
idp_issuer |
Ange IDP-utgivaren i detta fält |
Attributmappning
-
Mappa dina applikationsattribut med IDP-attributen (identity provider).
-
Notera: Alla mappade attribut kommer att lagras i sessionen så att du kan komma åt dem i din applikation.
Integrationskod
-
Bara kopiera och klistra in kodavsnittet där du vill komma åt användarattributen.
-
Notera: Alla mappade attribut kommer att lagras i sessionen så att du kan komma åt dem i din applikation.
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;
}
}
Du kan konfigurera ASP.NET Core SAML 2.0 Single Sign-On (SSO)-modulen med vilken identitetsleverantör som helst som t.ex.
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 eller till och med med din egen anpassad identitetsleverantör. Kontrollera listan över identitetsleverantörer
här..
Ytterligare resurser
Behöver hjälp?
Kan du inte hitta din identitetsleverantör? Maila oss vidare
aspnetsupport@xecurify.com
och vi hjälper dig att ställa in SSO med din IDP och för snabb vägledning (via e-post/möte) om ditt krav och vårt team hjälper dig att välja den bästa lämpliga lösningen/planen enligt dina krav.