Události
Mistrovství Světa v Power BI DataViz
14. 2. 16 - 31. 3. 16
Se 4 šance na vstup, můžete vyhrát konferenční balíček a udělat to na LIVE Grand Finale v Las Vegas
Další informaceTento prohlížeč se už nepodporuje.
Upgradujte na Microsoft Edge, abyste mohli využívat nejnovější funkce, aktualizace zabezpečení a technickou podporu.
Tento kurz ukazuje, jak uživatelům umožnit přihlášení pomocí zprostředkovatele ověřování WS-Federation, jako je Active Directory Federation Services (AD FS) (ADFS) nebo Microsoft Entra ID. Používá ukázkovou aplikaci ASP.NET Core popsanou v ověřování externího poskytovatele na Facebooku, Googlu a externím poskytovateli.
Pro aplikace ASP.NET Core poskytuje podpora WS-Federation microsoft.AspNetCore.Authentication.WsFederation. Tato komponenta je portována z Microsoft.Owin.Security.WsFederation a sdílí mnoho z mechaniky této komponenty. Komponenty se ale liší několika důležitými způsoby.
Ve výchozím nastavení nový middleware:
AllowUnsolicitedLogins
.CallbackPath
přihlášení. CallbackPath
Ve výchozím nastavení je /signin-wsfed
možné je změnit prostřednictvím zděděné RemoteAuthenticationOptions.CallbackPath vlastnosti WsFederationOptions třídy. Tuto cestu můžete sdílet s dalšími zprostředkovateli ověřování tím, že tuto SkipUnrecognizedRequests možnost povolíte.Zadejte zobrazovaný název předávající strany. Název není pro aplikaci ASP.NET Core důležitý.
Microsoft.AspNetCore.Authentication.WsFederation nemá podporu šifrování tokenů, proto nekonfigurujte šifrovací certifikát tokenu:
Poznámka
Musí se jednat o adresu URL HTTPS. Služba IIS Express může poskytnout certifikát podepsaný svým držitelem při hostování aplikace během vývoje. Kestrel vyžaduje ruční konfiguraci certifikátu. Další podrobnosti najdete v Kestrel dokumentaci .
Klikněte na Tlačítko Další v rest průvodci a na konci zavřete .
ASP.NET Core Identity vyžaduje deklaraci ID názvu . Přidejte ho z dialogového okna Upravit pravidla deklarací identity:
MetadataAddress
WS-Federation:Wtrealm
WS-Federation:Middleware WS-Federation lze použít bez Identity. Příklad:
public void ConfigureServices(IServiceCollection services)
{
services.AddAuthentication(sharedOptions =>
{
sharedOptions.DefaultScheme = CookieAuthenticationDefaults.AuthenticationScheme;
sharedOptions.DefaultChallengeScheme = WsFederationDefaults.AuthenticationScheme;
})
.AddWsFederation(options =>
{
options.Wtrealm = Configuration["wsfed:realm"];
options.MetadataAddress = Configuration["wsfed:metadata"];
})
.AddCookie();
services.AddControllersWithViews();
services.AddRazorPages();
}
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
app.UseDatabaseErrorPage();
}
else
{
app.UseExceptionHandler("/Home/Error");
app.UseHsts();
}
app.UseHttpsRedirection();
app.UseStaticFiles();
app.UseRouting();
app.UseAuthentication();
app.UseAuthorization();
app.UseEndpoints(endpoints =>
{
endpoints.MapControllerRoute(
name: "default",
pattern: "{controller=Home}/{action=Index}/{id?}");
endpoints.MapRazorPages();
});
}
public void ConfigureServices(IServiceCollection services)
{
services.AddAuthentication(sharedOptions =>
{
sharedOptions.DefaultScheme = CookieAuthenticationDefaults.AuthenticationScheme;
sharedOptions.DefaultSignInScheme = CookieAuthenticationDefaults.AuthenticationScheme;
sharedOptions.DefaultChallengeScheme = WsFederationDefaults.AuthenticationScheme;
})
.AddWsFederation(options =>
{
options.Wtrealm = Configuration["wsfed:realm"];
options.MetadataAddress = Configuration["wsfed:metadata"];
})
.AddCookie();
services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_1);
}
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
app.UseDatabaseErrorPage();
}
else
{
app.UseExceptionHandler("/Home/Error");
app.UseHsts();
}
app.UseHttpsRedirection();
app.UseStaticFiles();
app.UseCookiePolicy();
app.UseAuthentication();
app.UseMvc(routes =>
{
routes.MapRoute(
name: "default",
template: "{controller=Home}/{action=Index}/{id?}");
});
}
Startup.ConfigureServices
:public void ConfigureServices(IServiceCollection services)
{
services.AddDbContext<ApplicationDbContext>(options =>
options.UseSqlServer(
Configuration.GetConnectionString("DefaultConnection")));
services.AddDefaultIdentity<IdentityUser>(options => options.SignIn.RequireConfirmedAccount = true)
.AddEntityFrameworkStores<ApplicationDbContext>();
services.AddAuthentication()
.AddWsFederation(options =>
{
// MetadataAddress represents the Active Directory instance used to authenticate users.
options.MetadataAddress = "https://<ADFS FQDN or AAD tenant>/FederationMetadata/2007-06/FederationMetadata.xml";
// Wtrealm is the app's identifier in the Active Directory instance.
// For ADFS, use the relying party's identifier, its WS-Federation Passive protocol URL:
options.Wtrealm = "https://localhost:44307/";
// For AAD, use the Application ID URI from the app registration's Overview blade:
options.Wtrealm = "api://bbd35166-7c13-49f3-8041-9551f2847b69";
});
services.AddControllersWithViews();
services.AddRazorPages();
}
public void ConfigureServices(IServiceCollection services)
{
services.AddDbContext<ApplicationDbContext>(options =>
options.UseSqlServer(
Configuration.GetConnectionString("DefaultConnection")));
services.AddDefaultIdentity<IdentityUser>()
.AddEntityFrameworkStores<ApplicationDbContext>();
services.AddAuthentication()
.AddWsFederation(options =>
{
// MetadataAddress represents the Active Directory instance used to authenticate users.
options.MetadataAddress = "https://<ADFS FQDN or AAD tenant>/FederationMetadata/2007-06/FederationMetadata.xml";
// Wtrealm is the app's identifier in the Active Directory instance.
// For ADFS, use the relying party's identifier, its WS-Federation Passive protocol URL:
options.Wtrealm = "https://localhost:44307/";
// For AAD, use the Application ID URI from the app registration's Overview blade:
options.Wtrealm = "api://bbd35166-7c13-49f3-8041-9551f2847b69";
});
services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_1);
}
Přetížení AddAuthentication(IServiceCollection, String) nastaví DefaultScheme vlastnost. Přetížení AddAuthentication(IServiceCollection, Action<AuthenticationOptions>) umožňuje konfigurovat možnosti ověřování, které lze použít k nastavení výchozích schémat ověřování pro různé účely. Další volání k AddAuthentication
přepsání dříve nakonfigurovaných AuthenticationOptions vlastností
AuthenticationBuilder metody rozšíření, které registrují obslužnou rutinu ověřování, mohou být volána pouze jednou pro každé schéma ověřování. Existují přetížení, která umožňují konfigurovat vlastnosti schématu, název schématu a zobrazovaný název.
Přejděte do aplikace a klikněte na odkaz Přihlásit se v navigačním záhlaví. Možnost přihlášení pomocí WsFederation:
S ADFS jako poskytovatelem se tlačítko přesměruje na přihlašovací stránku ADFS:
S ID Microsoft Entra jako poskytovatelem se tlačítko přesměruje na přihlašovací stránku Microsoft Entra ID:
Úspěšné přihlášení nového uživatele se přesměruje na stránku registrace uživatele aplikace:
Zpětná vazba k produktu ASP.NET Core
ASP.NET Core je open source projekt. Vyberte odkaz pro poskytnutí zpětné vazby:
Události
Mistrovství Světa v Power BI DataViz
14. 2. 16 - 31. 3. 16
Se 4 šance na vstup, můžete vyhrát konferenční balíček a udělat to na LIVE Grand Finale v Las Vegas
Další informaceŠkolení
Modul
Zabezpečení webové aplikace .NET pomocí architektury ASP.NET Core Identity Framework - Training
Zjistěte, jak přidat ověřování a autorizaci do webové aplikace .NET pomocí architektury ASP.NET Core Identity Framework.
Certifikace
Microsoft Certified: Přidružení správce identit a přístupu - Certifications
Předveďte funkce Microsoft Entra ID pro modernizaci řešení identit, implementaci hybridních řešení a implementaci zásad správného řízení identit.
Dokumentace
Konfigurace ověřování OpenID Connect Web (UI) v ASP.NET Core
Zjistěte, jak nastavit ověřování OpenID Connect v aplikaci ASP.NET Core.
Konfigurace ověřování Windows v ASP.NET Core
Zjistěte, jak nakonfigurovat ověřování systému Windows v ASP.NET Core pro službu IIS a HTTP.sys.