gpt4 book ai didi

c# - 微服务架构中的 ASP.NET 标识

转载 作者:可可西里 更新时间:2023-11-01 08:44:59 30 4
gpt4 key购买 nike

我正在尝试通过将主要组件分解为单独的网络服务器来使用微服务架构来实现网络应用程序。我正在使用 ASP.NET Identity(仅电子邮件/用户名登录,无 Facebook 等)和“主”应用程序服务器实现身份验证服务器。

我当前的挑战是弄清楚应用程序服务器将如何识别用户是否已通过身份验证服务器登录。由于身份验证服务器生成它用来验证用户身份的 token ,我想它们存储在某个地方并且可以由应用程序服务器查询,但我不确定如何去做。理想情况下,我的应用程序服务器 WebAPI 端点将能够使用 [Authorize] 注释。

问:一台服务器如何使用 ASP.NET Identity 通过单独的身份验证服务器控制访问?

最佳答案

我通过执行以下操作(使用 cookie 身份验证)做了类似的事情:

1 - 将 cookie 域设置为所有网站的 TLD

我的 Startup.Auth.cs看起来像这样:

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 - 更新所有网站的 web.config 以使用相同的 <machineKey />

我的看起来像这样:

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

现在我可以对 account.example.com 执行登录操作, 并将用户重定向到 site1.example.com他们将被视为已通过身份验证。

关于c# - 微服务架构中的 ASP.NET 标识,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26309792/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com