J'ai de nombreuses applications et je suis en train de passer l'authentification à ADFS et j'ai besoin d'ajouter des données personnalisées pour dire un tableau de rôles de la base de données après le succès de la connexion.ajouter des données personnalisées à l'authentification ADFS
Scénario Expliqué: chaque application a sa propre base de données de rôles après authentifie l'utilisateur et l'autorisation demandée Application_AuthenticateRequest(object sender, EventArgs e)
sera appelée pour que je puisse ajouter des rôles que ce genre d'affirmation
((ClaimsIdentity)((ClaimsPrincipal)currentUser).Identity)
.AddClaim(new Claim(ClaimTypes.Role, "role1FromDataBase"));
HttpContext.Current.User = currentUser;
mais le mothod Application_AuthenticateRequest sera invoqué pour chaque requête et je ne veux pas demander les rôles de DB pour chaque fois. alors j'ai besoin d'ajouter ces rôles quelque part pour que je puisse les appeler. Bien sûr, les sessions et les cookies ne sont pas la meilleure pratique lorsque je gère l'autorisation basée sur les rôles de l'API.
les applications ont des contrôleurs et des API et mes ADFS sur Windows Server 2012
mon owin démarrage comme celui-ci
app.SetDefaultSignInAsAuthenticationType (CookieAuthenticationDefaults.AuthenticationType);
app.UseCookieAuthentication(new CookieAuthenticationOptions());
app.UseWsFederationAuthentication(
new WsFederationAuthenticationOptions
{
Wtrealm = realm,
MetadataAddress = adfsMetadata,
Notifications = new WsFederationAuthenticationNotifications()
{
RedirectToIdentityProvider = context =>
{
context.ProtocolMessage.Wreply = "https://localhost:44329/";
return Task.FromResult(0);
}
},
});
app.UseStageMarker(PipelineStage.Authenticate);
alors que puis-je faire ??