Sto utilizzando il provider di autenticazione di Azure AD per l'applicazione Web asp.net e desidero aggiungere ulteriori attestazioni di ruolo (in base alla logica dell'applicazione personalizzata, quelle non possono essere fornite da Azure AD).
Qualcosa come descritto qui:
Sto usando il seguente codice in startup.cs
:
services.Configure<OpenIdConnectOptions>(AzureADDefaults.OpenIdScheme, options =>
{
options.Events = new OpenIdConnectEvents
{
OnTokenValidated = context => SetupExtraRoles(context.Principal)
};
});
static Task SetupExtraRoles(ClaimsPrincipal principal)
{
IEnumerable<Claim> extraRoles = GenerateExtraRoleClaims();
ClaimsIdentity extraIdentity = new ClaimsIdentity(roleClaims);
principal.AddIdentity(extraIdentity);
return Task.CompletedTask;
}
Funziona bene - quando l'utente è connesso e il token è ricevuto, l'identità viene estesa con le rivendicazioni extra del ruolo.
Inoltre, ho notato che in seguito ricevo richieste di ruolo extra ogni volta che l'utente richiede altre pagine o aggiorna la pagina corrente, il che è anche ottimo.
Quindi la mia domanda è: dove sono archiviate le richieste di identità degli utenti in seguito, tra le richieste - Cookie? Memoria del server? Sessione?
L'utente può manomettere queste attestazioni di identità se sono memorizzate in Cookie ed elevare le autorizzazioni inserendo manualmente le attestazioni di ruolo?