with net microsoft eshoponcontainers eshop create asp c# asp.net asp.net-web-api asp.net-identity asp.net-identity-2

c# - microsoft - microservices with asp net core



Identidad de ASP.NET en la arquitectura de Microservice (1)

He hecho algo similar al hacer lo siguiente (usando autenticación de cookies):

1: configurar el dominio de cookies para que sea el TLD en todos los sitios web

My Startup.Auth.cs ve así:

app.UseCookieAuthentication(new CookieAuthenticationOptions { AuthenticationType = DefaultAuthenticationTypes.ApplicationCookie, LoginPath = new PathString("/Account/Login"), Provider = new CookieAuthenticationProvider { OnValidateIdentity = SecurityStampValidator.OnValidateIdentity<ApplicationUserManager, ApplicationUser>( validateInterval: TimeSpan.FromMinutes(30), regenerateIdentity: (manager, user) => { var identity = manager.CreateIdentity(user, DefaultAuthenticationTypes.ApplicationCookie); //some additional claims and stuff specific to my needs return Task.FromResult(identity); }) }, CookieDomain = ".example.com" });

2 - actualice la web.config de todos los sitios web para usar la misma <machineKey />

El mío se ve así:

<machineKey decryption="Auto" decryptionKey="my_key" validation="HMACSHA512" validationKey="my_other_key" />

Ahora puedo realizar operaciones de inicio de sesión en, por ejemplo, account.example.com , y redirigir al usuario a site1.example.com y se verán como autenticadas.

Estoy intentando implementar una aplicación web usando una arquitectura de microservicio dividiendo los componentes principales en servidores web separados. Estoy implementando un servidor de autenticación utilizando ASP.NET Identity (solo para el inicio de sesión de correo electrónico / nombre de usuario, sin Facebook, etc.) y un servidor de aplicaciones "principal".

Mi desafío actual es descubrir cómo el servidor de aplicaciones reconocerá si un usuario se ha conectado a través del servidor de autenticación. Dado que el servidor de autenticación genera tokens que los usuarios verifican las identidades de los usuarios, imagino que están almacenados en alguna parte y el servidor de aplicaciones puede consultarlos, pero no estoy seguro de cómo hacerlo. Idealmente, los puntos finales WebAPI de mis servidores de aplicaciones podrán usar la anotación [Autorizar].

P: ¿Cómo puede un servidor controlar el acceso a través de un servidor de autenticación independiente utilizando ASP.NET Identity?