asp.net-mvc - por - web api ejemplo
Sin utilizar IdentityServer, quiero una forma de autenticar una aplicación WebApi con otra aplicación ASP.NET MVC que tenga la base de datos de usuarios (0)
Tengo el proyecto Asp.Net MVC que tienen usuarios (utilicé Asp.Net Identity 2 para esto) y tengo otro servicio Asp.Net WebApi.
Quiero autenticar con seguridad el WebApi para dar acceso solo a los usuarios de Asp.Net MVC para llegar a los puntos finales y no quiero usar IdentityServer3 para este fin.
Asp.Net MVC Startup.Auth.cs:
public void ConfigureAuth(IAppBuilder app)
{
// Configure the db context, user manager and signin manager to use a single instance per request
app.CreatePerOwinContext(ApplicationDbContext.Create);
app.CreatePerOwinContext<ApplicationUserManager>(ApplicationUserManager.Create);
app.CreatePerOwinContext<ApplicationSignInManager>(ApplicationSignInManager.Create);
// Enable the application to use a cookie to store information for the signed in user
// and to use a cookie to temporarily store information about a user logging in with a third party login provider
// Configure the sign in cookie
app.UseCookieAuthentication(new CookieAuthenticationOptions
{
AuthenticationType = DefaultAuthenticationTypes.ApplicationCookie,
LoginPath = new PathString("/Account/Login"),
Provider = new CookieAuthenticationProvider
{
// Enables the application to validate the security stamp when the user logs in.
// This is a security feature which is used when you change a password or add an external login to your account.
OnValidateIdentity = SecurityStampValidator.OnValidateIdentity<ApplicationUserManager, ApplicationUser>(
validateInterval: TimeSpan.FromMinutes(30),
regenerateIdentity: (manager, user) => user.GenerateUserIdentityAsync(manager))
}
});
}
Creo que debería usar token bearar y token JWT y puedo usar el modelo de identidad Thinketure en el lado de WebApi para esto, pero busqué encontrar una manera clara de describir cómo hacer eso pero no lo encontré.
Por ejemplo, creo que hay muchas opciones como el flujo de código de autorización de SAML, JWT o OAuth 2, pero ¿cuáles son los pasos de implementación?