ASP.NET Core Identity verwendet Standardwerte für Einstellungen wie Kennwortrichtlinie, Sperrung und cookie-Konfiguration. Diese Einstellungen können beim Anwendungsstart außer Kraft gesetzt werden.
Die Anzahl fehlerhafter Zugriffsversuche, bevor Benutzer*innen gesperrt werden, wenn die Sperrung aktiviert ist
5
Kennwort
Identity erfordert standardmäßig, dass Kennwörter jeweils mindestens einen Großbuchstaben, einen Kleinbuchstaben, eine Ziffer und ein nicht alphanumerisches Zeichen enthalten. Kennwörter müssen mindestens sechs Zeichen lang sein.
Ruft den zum Generieren von Token, die in Bestätigungs-E-Mails bei Änderungen der E-Mail-Adresse verwendet werden, verwendeten ChangeEmailTokenProvider ab oder legt ihn fest
Ruft den zum Generieren von Token, die bei Änderungen der Telefonnummer verwendet werden, verwendeten ChangePhoneNumberTokenProvider ab oder legt ihn fest
Ruft den zum Generieren von Token, die in E-Mails zur Kennwortzurücksetzung verwendet werden, verwendeten IUserTwoFactorTokenProvider<TUser> ab oder legt ihn fest
Erfordert, dass sämtliche Benutzer*innen eine eindeutige E-Mail haben.
false
Cookie -Einstellungen
Konfigurieren Sie das cookie der App in Program.cs. ConfigureApplication muss nach dem Aufruf von AddIdentity oder AddDefaultIdentity aufgerufen werden.
Der Kompatibilitätsmodus, der bei der Hasherstellung für neue Kennwörter verwendet wird. Wird standardmäßig auf IdentityV3 festgelegt. Das erste Byte eines Hashkennworts wird als Formatmarkierung bezeichnet und gibt die Version des Hashalgorithmus an, der zum Erstellen des Hashwerts für das Kennwort verwendet wird. Beim Überprüfen eines Kennworts anhand eines Hashs wählt die VerifyHashedPassword-Methode den richtigen Algorithmus basierend auf dem ersten Byte aus. Ein Client kann sich unabhängig davon authentifizieren, welche Version des Algorithmus zum Erstellen des Kennworthashs verwendet wurde. Das Festlegen des Kompatibilitätsmodus wirkt sich auf das Erstellen von Hashwerten für neue Kennwörter aus.
Die Anzahl der Iterationen, die beim Erstellen von Kennworthashs mithilfe von PBKDF2 verwendet werden. Dieser Wert wird nur verwendet, wenn CompatibilityMode auf IdentityV3 festgelegt wird. Der Wert muss eine positive ganze Zahl sein und ist standardmäßig auf 100000 festgelegt.
Im folgenden Beispiel wird IterationCount in Program.cs auf 12000 festgelegt:
// using Microsoft.AspNetCore.Identity;
builder.Services.Configure<PasswordHasherOptions>(option =>
{
option.IterationCount = 12000;
});
Globale Erzwingen der Authentifizierung aller Benutzer*innen
Apps müssen auf Ereignisse reagieren, die sicherheitsrelevante Aktionen beinhalten, indem sie den ClaimsPrincipal der Benutzer*innen neu generieren. Beispielsweise sollte der ClaimsPrincipal neu generiert werden, wenn sie einer Rolle beitreten, das Kennwort ändern oder andere sicherheitsrelevante Ereignisse eintreten. Identity verwendet die ISecurityStampValidator-Schnittstelle, um den ClaimsPrincipal neu zu generieren. Die Standardimplementierung von Identity registriert einen SecurityStampValidator beim Standard-cookie der Anwendung und beim cookie für die zweistufige Authentifizierung. Das Validierungssteuerelement wird in das OnValidatePrincipal-Ereignis der einzelnen cookie eingebunden, um bei einem Aufruf von Identity zu überprüfen, ob der Sicherheitsstempelanspruch der Benutzer*innen identisch mit dem in cookie gespeicherten Wert ist. Das Validierungssteuerelement führt in regelmäßigen Abständen Aufrufe durch. Das Aufrufintervall stellt einen Kompromiss zwischen zu häufigen und zu seltenen Aufrufen an den Datenspeicher dar. Eine Überprüfung mit einem zu langen Intervall führt zu veralteten Ansprüchen. Rufen Sie userManager.UpdateSecurityStampAsync(user) auf, um zu erzwingen, dass vorhandene s bei der nächsten Überprüfung ungültig werden. Die meisten Identity-Benutzeroberflächenkonten und Verwaltungsseiten rufen userManager.UpdateSecurityStampAsync(user) auf, nachdem sie das Kennwort geändert oder eine Anmeldung hinzugefügt haben. Apps können userManager.UpdateSecurityStampAsync(user) aufrufen, um eine Aktion zum überall Abmelden zu implementieren.
Das Ändern des Validierungsintervalls wird im folgenden hervorgehobenen Code gezeigt:
using Microsoft.AspNetCore.Identity;
using Microsoft.EntityFrameworkCore;
using WebClaimsPrincipal.Data;
var builder = WebApplication.CreateBuilder(args);
var connectionString = builder.Configuration.GetConnectionString("DefaultConnection")
?? throw new InvalidOperationException("'DefaultConnection' not found.");
builder.Services.AddDbContext<ApplicationDbContext>(options =>
options.UseSqlServer(connectionString));
builder.Services.AddDatabaseDeveloperPageExceptionFilter();
builder.Services.AddDefaultIdentity<IdentityUser>(options =>
options.SignIn.RequireConfirmedAccount = true)
.AddEntityFrameworkStores<ApplicationDbContext>();
// Force Identity's security stamp to be validated every minute.
builder.Services.Configure<SecurityStampValidatorOptions>(o =>
o.ValidationInterval = TimeSpan.FromMinutes(1));
builder.Services.AddRazorPages();
var app = builder.Build();
if (app.Environment.IsDevelopment())
{
app.UseMigrationsEndPoint();
}
else
{
app.UseExceptionHandler("/Error");
app.UseHsts();
}
app.UseHttpsRedirection();
app.UseStaticFiles();
app.UseRouting();
app.UseAuthorization();
app.MapRazorPages();
app.Run();
ASP.NET Core Identity verwendet Standardwerte für Einstellungen wie Kennwortrichtlinie, Sperrung und cookie-Konfiguration. Diese Einstellungen können in der Startup-Klasse außer Kraft gesetzt werden.
Identity-Optionen
Die IdentityOptions-Klasse stellt die Optionen dar, die zum Konfigurieren des Identity-Systems verwendet werden können. IdentityOptions muss nach dem Aufrufen von AddIdentity oder AddDefaultIdentity festgelegt werden.
Die Anzahl fehlerhafter Zugriffsversuche, bevor Benutzer*innen gesperrt werden, wenn die Sperrung aktiviert ist
5
Kennwort
Identity erfordert standardmäßig, dass Kennwörter jeweils mindestens einen Großbuchstaben, einen Kleinbuchstaben, eine Ziffer und ein nicht alphanumerisches Zeichen enthalten. Kennwörter müssen mindestens sechs Zeichen lang sein.
Ruft den zum Generieren von Token, die in Bestätigungs-E-Mails bei Änderungen der E-Mail-Adresse verwendet werden, verwendeten ChangeEmailTokenProvider ab oder legt ihn fest
Ruft den zum Generieren von Token, die bei Änderungen der Telefonnummer verwendet werden, verwendeten ChangePhoneNumberTokenProvider ab oder legt ihn fest
Ruft den zum Generieren von Token, die in E-Mails zur Kennwortzurücksetzung verwendet werden, verwendeten IUserTwoFactorTokenProvider<TUser> ab oder legt ihn fest
Erfordert, dass sämtliche Benutzer*innen eine eindeutige E-Mail haben.
false
Cookie -Einstellungen
Konfigurieren Sie das cookie der App in Startup.ConfigureServices. ConfigureApplication muss nach dem Aufruf von AddIdentity oder AddDefaultIdentity aufgerufen werden.
Der Kompatibilitätsmodus, der bei der Hasherstellung für neue Kennwörter verwendet wird. Wird standardmäßig auf IdentityV3 festgelegt. Das erste Byte eines Hashkennworts wird als Formatmarkierung bezeichnet und gibt die Version des Hashalgorithmus an, der zum Erstellen des Hashwerts für das Kennwort verwendet wird. Beim Überprüfen eines Kennworts anhand eines Hashs wählt die VerifyHashedPassword-Methode den richtigen Algorithmus basierend auf dem ersten Byte aus. Ein Client kann sich unabhängig davon authentifizieren, welche Version des Algorithmus zum Erstellen des Kennworthashs verwendet wurde. Das Festlegen des Kompatibilitätsmodus wirkt sich auf das Erstellen von Hashwerten für neue Kennwörter aus.
Die Anzahl der Iterationen, die beim Erstellen von Kennworthashs mithilfe von PBKDF2 verwendet werden. Dieser Wert wird nur verwendet, wenn CompatibilityMode auf IdentityV3 festgelegt wird. Der Wert muss eine positive ganze Zahl sein und ist standardmäßig auf 10000 festgelegt.
Im folgenden Beispiel wird IterationCount in Startup.ConfigureServices auf 12000 festgelegt:
// using Microsoft.AspNetCore.Identity;
services.Configure<PasswordHasherOptions>(option =>
{
option.IterationCount = 12000;
});
Globale Erzwingen der Authentifizierung aller Benutzer*innen
Die Quelle für diesen Inhalt finden Sie auf GitHub, wo Sie auch Issues und Pull Requests erstellen und überprüfen können. Weitere Informationen finden Sie in unserem Leitfaden für Mitwirkende.
Feedback zu ASP.NET Core
ASP.NET Core ist ein Open Source-Projekt. Wählen Sie einen Link aus, um Feedback zu geben:
Veranschaulichen der Features von Microsoft Entra ID, um Identitätslösungen zu modernisieren sowie Hybridlösungen und Identitätsgovernance zu implementieren