Delen via


ASP.NET Core configureren Identity

ASP.NET Core Identity gebruikt standaardwaarden voor instellingen zoals wachtwoordbeleid, vergrendeling en cookie configuratie. Deze instellingen kunnen worden overschreven bij het opstarten van de applicatie.

Identity Opties

De IdentityOptions klasse vertegenwoordigt de opties die kunnen worden gebruikt om het Identity systeem te configureren. IdentityOptions moet worden ingesteld na het aanroepen van AddIdentity of AddDefaultIdentity.

Aanspraken Identity

IdentityOptions.ClaimsIdentity specificeert de ClaimsIdentityOptions met de eigenschappen die in de volgende tabel worden weergegeven.

Vastgoed Description Verstek
RoleClaimType Hiermee haalt u het claimtype op dat wordt gebruikt voor een rolclaim of stelt u dit in. ClaimTypes.Role
SecurityStampClaimType Hiermee haalt u het claimtype op of stelt u het in dat wordt gebruikt voor de claim van het beveiligingsstempel. AspNet.Identity.SecurityStamp
UserIdClaimType Haalt of stelt het claimtype in dat wordt gebruikt voor de gebruikers-id-claim. ClaimTypes.NameIdentifier
UserNameClaimType Hiermee haalt u het claimtype op of stelt u het in dat wordt gebruikt voor de claim voor de gebruikersnaam. ClaimTypes.Name

Uitsluiting

Vergrendeling is ingesteld in de methode PasswordSignInAsync :

public async Task<IActionResult> OnPostAsync(string returnUrl = null)
{
    returnUrl ??= Url.Content("~/");

    ExternalLogins = (await _signInManager.GetExternalAuthenticationSchemesAsync()).ToList();

    if (ModelState.IsValid)
    {
        // This doesn't count login failures towards account lockout
        // To enable password failures to trigger account lockout, set lockoutOnFailure: true
        var result = await _signInManager.PasswordSignInAsync(Input.Email,
             Input.Password, Input.RememberMe,
             lockoutOnFailure: false);
        if (result.Succeeded)
        {
            _logger.LogInformation("User logged in.");
            return LocalRedirect(returnUrl);
        }
        if (result.RequiresTwoFactor)
        {
            return RedirectToPage("./LoginWith2fa", new { ReturnUrl = returnUrl, RememberMe = Input.RememberMe });
        }
        if (result.IsLockedOut)
        {
            _logger.LogWarning("User account locked out.");
            return RedirectToPage("./Lockout");
        }
        else
        {
            ModelState.AddModelError(string.Empty, "Invalid login attempt.");
            return Page();
        }
    }

    // If we got this far, something failed, redisplay form
    return Page();
}

De voorgaande code is gebaseerd op de LoginIdentity sjabloon.

Vergrendelingsopties zijn ingesteld in Program.cs:

using Microsoft.AspNetCore.Identity;
using Microsoft.EntityFrameworkCore;
using RPauth.Data;

var builder = WebApplication.CreateBuilder(args);

var connectionString = builder.Configuration.GetConnectionString("DefaultConnection");
builder.Services.AddDbContext<ApplicationDbContext>(options =>
    options.UseSqlServer(connectionString));
builder.Services.AddDatabaseDeveloperPageExceptionFilter();

builder.Services.AddDefaultIdentity<IdentityUser>(options =>
                                       options.SignIn.RequireConfirmedAccount = true)
    .AddEntityFrameworkStores<ApplicationDbContext>();
builder.Services.AddRazorPages();

builder.Services.Configure<IdentityOptions>(options =>
{
    // Default Lockout settings.
    options.Lockout.DefaultLockoutTimeSpan = TimeSpan.FromMinutes(5);
    options.Lockout.MaxFailedAccessAttempts = 5;
    options.Lockout.AllowedForNewUsers = true;
});

var app = builder.Build();

if (app.Environment.IsDevelopment())
{
    app.UseMigrationsEndPoint();
}
else
{
    app.UseExceptionHandler("/Error");
    app.UseHsts();
}

app.UseHttpsRedirection();
app.UseStaticFiles();

app.UseRouting();

app.UseAuthentication();
app.UseAuthorization();

app.MapRazorPages();

app.Run();

De voorgaande code stelt de IdentityOptionsLockoutOptions standaardwaarden in.

Een geslaagde verificatie stelt het aantal mislukte toegangspogingen opnieuw in en stelt de klok opnieuw in.

IdentityOptions.Lockout specificeert de LockoutOptions, met de eigenschappen zoals weergegeven in de tabel.

Vastgoed Description Verstek
AllowedForNewUsers Bepaalt of een nieuwe gebruiker kan worden vergrendeld. true
DefaultLockoutTimeSpan De hoeveelheid tijd dat een gebruiker wordt vergrendeld wanneer er een vergrendeling plaatsvindt. 5 minuten
MaxFailedAccessAttempts Het aantal mislukte toegangspogingen totdat een gebruiker is vergrendeld, als vergrendeling is ingeschakeld. 5

Wachtwoord

Identity Standaard moeten wachtwoorden een hoofdletter, kleine letters, een cijfer en een niet-alfanumeriek teken bevatten. Wachtwoorden moeten ten minste zes tekens lang zijn.

Wachtwoorden worden geconfigureerd met:

using Microsoft.AspNetCore.Identity;
using Microsoft.EntityFrameworkCore;
using RPauth.Data;

var builder = WebApplication.CreateBuilder(args);

var connectionString = builder.Configuration.GetConnectionString("DefaultConnection");
builder.Services.AddDbContext<ApplicationDbContext>(options =>
    options.UseSqlServer(connectionString));
builder.Services.AddDatabaseDeveloperPageExceptionFilter();

builder.Services.AddDefaultIdentity<IdentityUser>(options =>
                                options.SignIn.RequireConfirmedAccount = true)
    .AddEntityFrameworkStores<ApplicationDbContext>();
builder.Services.AddRazorPages();

builder.Services.Configure<IdentityOptions>(options =>
{
    // Default Password settings.
    options.Password.RequireDigit = true;
    options.Password.RequireLowercase = true;
    options.Password.RequireNonAlphanumeric = true;
    options.Password.RequireUppercase = true;
    options.Password.RequiredLength = 6;
    options.Password.RequiredUniqueChars = 1;
});

var app = builder.Build();

// Remaining code removed for brevity.

IdentityOptions.Password specificeert de PasswordOptions, met de eigenschappen zoals weergegeven in de tabel.

Vastgoed Description Verstek
RequireDigit Vereist een getal tussen 0 en 9 in het wachtwoord. true
RequiredLength De minimale lengte van het wachtwoord. 6
RequireLowercase Vereist een kleine letter in het wachtwoord. true
RequireNonAlphanumeric Vereist een niet-alfanumerieke teken in het wachtwoord. true
RequiredUniqueChars Alleen van toepassing op ASP.NET Core 2.0 of hoger.

Vereist het aantal afzonderlijke tekens in het wachtwoord.
1
RequireUppercase Vereist een hoofdletter in het wachtwoord. true

Aanmelden

Met de volgende code worden de instellingen SignIn op de standaardwaarden ingesteld.

builder.Services.Configure<IdentityOptions>(options =>
{
    // Default SignIn settings.
    options.SignIn.RequireConfirmedEmail = false;
    options.SignIn.RequireConfirmedPhoneNumber = false;
});

IdentityOptions.SignIn specificeert de SignInOptions, met de eigenschappen zoals weergegeven in de tabel.

Vastgoed Description Verstek
RequireConfirmedEmail Hiervoor is een bevestigd e-mailbericht vereist om u aan te melden. false
RequireConfirmedPhoneNumber Hiervoor is een bevestigd telefoonnummer vereist om u aan te melden. false

Tokens

IdentityOptions.Tokens specificeert de TokenOptions, met de eigenschappen zoals weergegeven in de tabel.

Vastgoed Description
AuthenticatorTokenProvider Hiermee haalt u de AuthenticatorTokenProvider op of stelt u deze in die wordt gebruikt voor het valideren van twee-factor authenticatie met een authenticator.
ChangeEmailTokenProvider Hiermee haalt u het ChangeEmailTokenProvider op of stelt u het in dat wordt gebruikt voor het genereren van tokens die worden gebruikt in e-mailwijzigingsbevestigingsmails.
ChangePhoneNumberTokenProvider Stelt het ChangePhoneNumberTokenProvider in of haalt het op, gebruikt om tokens te genereren die worden gebruikt bij het wijzigen van telefoonnummers.
EmailConfirmationTokenProvider Hiermee haalt u de tokenprovider op of stelt deze in, die wordt gebruikt om tokens te genereren voor gebruik in bevestigingsmails van het account.
PasswordResetTokenProvider Stelt het IUserTwoFactorTokenProvider<TUser> in of verkrijgt het, dat wordt gebruikt om tokens te genereren die in e-mailberichten voor wachtwoordherstel worden gebruikt.
ProviderMap Wordt gebruikt om een User Token Provider samen te stellen waarbij de sleutel dient als de naam van de provider.

User

builder.Services.Configure<IdentityOptions>(options =>
{
    // Default User settings.
    options.User.AllowedUserNameCharacters =
            "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-._@+";
    options.User.RequireUniqueEmail = false;

});

IdentityOptions.User specificeert de UserOptions, met de eigenschappen zoals weergegeven in de tabel.

Vastgoed Description Verstek
AllowedUserNameCharacters Toegestane tekens in de gebruikersnaam. abcdefghijklmnopqrstuvwxyz
ABCDEFGHIJKLMNOPQRSTUVWXYZ
0123456789
-._@+
RequireUniqueEmail Vereist dat elke gebruiker een uniek e-mailbericht heeft. false

Configureer de app cookie in Program.cs. ConfigureApplicationCookie moet worden aangeroepen na het aanroepen AddIdentity of AddDefaultIdentity.

builder.Services.ConfigureApplicationCookie(options =>
{
    options.AccessDeniedPath = "/Identity/Account/AccessDenied";
    options.Cookie.Name = "YourAppCookieName";
    options.Cookie.HttpOnly = true;
    options.ExpireTimeSpan = TimeSpan.FromMinutes(60);
    options.LoginPath = "/Identity/Account/Login";
    // ReturnUrlParameter requires 
    //using Microsoft.AspNetCore.Authentication.Cookies;
    options.ReturnUrlParameter = CookieAuthenticationDefaults.ReturnUrlParameter;
    options.SlidingExpiration = true;
});

Zie CookieAuthenticationOptions voor meer informatie.

Opties voor wachtwoord-hasher

PasswordHasherOptions haalt opties voor wachtwoordhashing op en stelt deze in.

Optie Description
CompatibilityMode De compatibiliteitsmodus die wordt gebruikt bij het hashen van nieuwe wachtwoorden. Standaardwaarde is IdentityV3. De eerste byte van een gehasht wachtwoord, een zogenaamde opmaakmarkering, geeft de versie van het hashing-algoritme op dat wordt gebruikt om het wachtwoord te hashen. Wanneer u een wachtwoord verifieert op basis van een hash, selecteert de VerifyHashedPassword methode het juiste algoritme op basis van de eerste byte. Een client kan verifiëren, ongeacht welke versie van het algoritme is gebruikt om het wachtwoord te hashen. Het instellen van de compatibiliteitsmodus is van invloed op de hashing van nieuwe wachtwoorden.
IterationCount Het aantal iteraties dat wordt gebruikt bij het hashen van wachtwoorden met PBKDF2. Deze waarde wordt alleen gebruikt wanneer de CompatibilityMode waarde is ingesteld op IdentityV3. De waarde moet een positief geheel getal zijn en de standaardwaarde 100000is .

In het volgende voorbeeld is het IterationCount ingesteld op 12000 in Program.cs:

// using Microsoft.AspNetCore.Identity;

builder.Services.Configure<PasswordHasherOptions>(option =>
{
    option.IterationCount = 12000;
});

Globaal vereisen dat alle gebruikers worden geverifieerd

Zie Geverifieerde gebruikers vereisenvoor informatie over het globaal vereisen van verificatie van alle gebruikers.

ISecurityStampValidator en SignOut op alle locaties

Apps moeten reageren op gebeurtenissen met betrekking tot beveiligingsgevoelige acties door de gebruikers ClaimsPrincipalopnieuw te genereren. De ClaimsPrincipal moet bijvoorbeeld opnieuw worden gegenereerd bij het aansluiten van een rol, het wijzigen van het wachtwoord, of andere beveiligingsgevoelige gebeurtenissen. Identity maakt gebruik van de ISecurityStampValidator interface om de ClaimsPrincipal te regenereren. De standaardimplementatie van Identity registreert een SecurityStampValidator met de hoofdtoepassing cookie en de tweeledige cookie. De validator haakt in op de OnValidatePrincipal gebeurtenis van elke cookie om Identity aan te roepen om te verifiëren dat de beveiligingsstempelclaim van de gebruiker onveranderd is gebleven ten opzichte van wat is opgeslagen in de cookie. De validator wordt regelmatig aangeroepen. Het oproepinterval is een compromis tussen het te vaak aanspreken van de datastore en niet vaak genoeg. Controleren met een lang interval resulteert in verouderde claims. Oproep userManager.UpdateSecurityStampAsync(user)om bestaande cookies te dwingen ongeldig te worden wanneer ze de volgende keer worden gecontroleerd. De meeste UI-account- en beheerpagin­a's roepen Identity aan na het wijzigen van het wachtwoord of het toevoegen van een userManager.UpdateSecurityStampAsync(user) login. Apps kunnen aanroepen userManager.UpdateSecurityStampAsync(user) om een afmelding overal te implementeren.

Het wijzigen van het validatie-interval wordt weergegeven in de volgende gemarkeerde code:

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 gebruikt standaardwaarden voor instellingen zoals wachtwoordbeleid, vergrendeling en cookie configuratie. Deze instellingen kunnen in de Startup class worden overschreven.

Identity Opties

De IdentityOptions klasse vertegenwoordigt de opties die kunnen worden gebruikt om het Identity systeem te configureren. IdentityOptions moet worden ingesteld na het aanroepen van AddIdentity of AddDefaultIdentity.

Aanspraken Identity

IdentityOptions.ClaimsIdentity specificeert de ClaimsIdentityOptions met de eigenschappen die in de volgende tabel worden weergegeven.

Vastgoed Description Verstek
RoleClaimType Hiermee haalt u het claimtype op dat wordt gebruikt voor een rolclaim of stelt u dit in. ClaimTypes.Role
SecurityStampClaimType Hiermee haalt u het claimtype op of stelt u het in dat wordt gebruikt voor de claim van het beveiligingsstempel. AspNet.Identity.SecurityStamp
UserIdClaimType Haalt of stelt het claimtype in dat wordt gebruikt voor de gebruikers-id-claim. ClaimTypes.NameIdentifier
UserNameClaimType Hiermee haalt u het claimtype op of stelt u het in dat wordt gebruikt voor de claim voor de gebruikersnaam. ClaimTypes.Name

Uitsluiting

Vergrendeling is ingesteld in de methode PasswordSignInAsync :

public async Task<IActionResult> OnPostAsync(string returnUrl = null)
{
    returnUrl = returnUrl ?? Url.Content("~/");

    if (ModelState.IsValid)
    {
        var result = await _signInManager.PasswordSignInAsync(Input.Email, 
            Input.Password, Input.RememberMe, 
            lockoutOnFailure: false);
        if (result.Succeeded)
        {
            _logger.LogInformation("User logged in.");
            return LocalRedirect(returnUrl);
        }
        if (result.RequiresTwoFactor)
        {
            return RedirectToPage("./LoginWith2fa", new { ReturnUrl = returnUrl,
                Input.RememberMe });
        }
        if (result.IsLockedOut)
        {
            _logger.LogWarning("User account locked out.");
            return RedirectToPage("./Lockout");
        }
        else
        {
            ModelState.AddModelError(string.Empty, "Invalid login attempt.");
            return Page();
        }
    }

    // If we got this far, something failed, redisplay form
    return Page();
}

De voorgaande code is gebaseerd op de LoginIdentity sjabloon.

Vergrendelingsopties zijn ingesteld in StartUp.ConfigureServices:

services.Configure<IdentityOptions>(options =>
{
    // Default Lockout settings.
    options.Lockout.DefaultLockoutTimeSpan = TimeSpan.FromMinutes(5);
    options.Lockout.MaxFailedAccessAttempts = 5;
    options.Lockout.AllowedForNewUsers = true;
});

De voorgaande code stelt de IdentityOptionsLockoutOptions standaardwaarden in.

Een geslaagde verificatie stelt het aantal mislukte toegangspogingen opnieuw in en stelt de klok opnieuw in.

IdentityOptions.Lockout specificeert de LockoutOptions met de eigenschappen zoals weergegeven in de tabel.

Vastgoed Description Verstek
AllowedForNewUsers Bepaalt of een nieuwe gebruiker kan worden vergrendeld. true
DefaultLockoutTimeSpan De hoeveelheid tijd dat een gebruiker wordt vergrendeld wanneer er een vergrendeling plaatsvindt. 5 minuten
MaxFailedAccessAttempts Het aantal mislukte toegangspogingen totdat een gebruiker is vergrendeld, als vergrendeling is ingeschakeld. 5

Wachtwoord

Identity Standaard moeten wachtwoorden een hoofdletter, kleine letters, een cijfer en een niet-alfanumeriek teken bevatten. Wachtwoorden moeten ten minste zes tekens lang zijn.

Wachtwoorden worden geconfigureerd met:

services.Configure<IdentityOptions>(options =>
{
    // Default Password settings.
    options.Password.RequireDigit = true;
    options.Password.RequireLowercase = true;
    options.Password.RequireNonAlphanumeric = true;
    options.Password.RequireUppercase = true;
    options.Password.RequiredLength = 6;
    options.Password.RequiredUniqueChars = 1;
});

IdentityOptions.Password geeft de PasswordOptions met de eigenschappen die in de tabel worden weergegeven.

Vastgoed Description Verstek
RequireDigit Vereist een getal tussen 0 en 9 in het wachtwoord. true
RequiredLength De minimale lengte van het wachtwoord. 6
RequireLowercase Vereist een kleine letter in het wachtwoord. true
RequireNonAlphanumeric Vereist een niet-alfanumerieke teken in het wachtwoord. true
RequiredUniqueChars Alleen van toepassing op ASP.NET Core 2.0 of hoger.

Vereist het aantal afzonderlijke tekens in het wachtwoord.
1
RequireUppercase Vereist een hoofdletter in het wachtwoord. true

Aanmelden

Met de volgende code worden de instellingen SignIn op de standaardwaarden ingesteld.

services.Configure<IdentityOptions>(options =>
{
    // Default SignIn settings.
    options.SignIn.RequireConfirmedEmail = false;
    options.SignIn.RequireConfirmedPhoneNumber = false;
});

IdentityOptions.SignIn specificeert de SignInOptions met de eigenschappen die in de tabel zijn weergegeven.

Vastgoed Description Verstek
RequireConfirmedEmail Hiervoor is een bevestigd e-mailbericht vereist om u aan te melden. false
RequireConfirmedPhoneNumber Hiervoor is een bevestigd telefoonnummer vereist om u aan te melden. false

Tokens

IdentityOptions.Tokens bepaalt de TokenOptions met de eigenschappen die in de tabel worden weergegeven.

Vastgoed Description
AuthenticatorTokenProvider Hiermee haalt u de AuthenticatorTokenProvider op of stelt u deze in die wordt gebruikt voor het valideren van twee-factor authenticatie met een authenticator.
ChangeEmailTokenProvider Hiermee haalt u het ChangeEmailTokenProvider op of stelt u het in dat wordt gebruikt voor het genereren van tokens die worden gebruikt in e-mailwijzigingsbevestigingsmails.
ChangePhoneNumberTokenProvider Stelt het ChangePhoneNumberTokenProvider in of haalt het op, gebruikt om tokens te genereren die worden gebruikt bij het wijzigen van telefoonnummers.
EmailConfirmationTokenProvider Hiermee haalt u de tokenprovider op of stelt deze in, die wordt gebruikt om tokens te genereren voor gebruik in bevestigingsmails van het account.
PasswordResetTokenProvider Stelt het IUserTwoFactorTokenProvider<TUser> in of verkrijgt het, dat wordt gebruikt om tokens te genereren die in e-mailberichten voor wachtwoordherstel worden gebruikt.
ProviderMap Wordt gebruikt om een User Token Provider samen te stellen waarbij de sleutel dient als de naam van de provider.

User

services.Configure<IdentityOptions>(options =>
{
    // Default User settings.
    options.User.AllowedUserNameCharacters =
            "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-._@+";
    options.User.RequireUniqueEmail = false;

});

IdentityOptions.User specificeert de UserOptions, met de eigenschappen zoals weergegeven in de tabel.

Vastgoed Description Verstek
AllowedUserNameCharacters Toegestane tekens in de gebruikersnaam. abcdefghijklmnopqrstuvwxyz
ABCDEFGHIJKLMNOPQRSTUVWXYZ
0123456789
-._@+
RequireUniqueEmail Vereist dat elke gebruiker een uniek e-mailbericht heeft. false

Configureer de app cookie in Startup.ConfigureServices. ConfigureApplicationCookie moet worden geroepen na het aanroepen van AddIdentity of AddDefaultIdentity.

services.ConfigureApplicationCookie(options =>
{
    options.AccessDeniedPath = "/Identity/Account/AccessDenied";
    options.Cookie.Name = "YourAppCookieName";
    options.Cookie.HttpOnly = true;
    options.ExpireTimeSpan = TimeSpan.FromMinutes(60);
    options.LoginPath = "/Identity/Account/Login";
    // ReturnUrlParameter requires 
    //using Microsoft.AspNetCore.Authentication.Cookies;
    options.ReturnUrlParameter = CookieAuthenticationDefaults.ReturnUrlParameter;
    options.SlidingExpiration = true;
});

Zie CookieAuthenticationOptions voor meer informatie.

Opties voor wachtwoordhasher

PasswordHasherOptions haalt en stelt opties voor wachtwoord-hashing in.

Optie Description
CompatibilityMode De compatibiliteitsmodus die wordt gebruikt bij het hashen van nieuwe wachtwoorden. Standaardwaarde is IdentityV3. De eerste byte van een gehasht wachtwoord, een zogenaamde opmaakmarkering, geeft de versie van het hashing-algoritme op dat wordt gebruikt om het wachtwoord te hashen. Wanneer u een wachtwoord verifieert op basis van een hash, selecteert de VerifyHashedPassword methode het juiste algoritme op basis van de eerste byte. Een client kan verifiëren, ongeacht welke versie van het algoritme is gebruikt om het wachtwoord te hashen. Het instellen van de compatibiliteitsmodus is van invloed op de hashing van nieuwe wachtwoorden.
IterationCount Het aantal iteraties dat wordt gebruikt bij het hashen van wachtwoorden met PBKDF2. Deze waarde wordt alleen gebruikt wanneer de CompatibilityMode waarde is ingesteld op IdentityV3. De waarde moet een positief geheel getal zijn en de standaardwaarde 10000is .

In het volgende voorbeeld is het IterationCount ingesteld op 12000 in Startup.ConfigureServices:

// using Microsoft.AspNetCore.Identity;

services.Configure<PasswordHasherOptions>(option =>
{
    option.IterationCount = 12000;
});

Globaal vereisen dat alle gebruikers worden geverifieerd

Zie Geverifieerde gebruikers vereisenvoor informatie over het globaal vereisen van verificatie van alle gebruikers.