首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >asp.net内核3.1中基于租户的注册认证方案

asp.net内核3.1中基于租户的注册认证方案
EN

Stack Overflow用户
提问于 2020-01-20 11:54:38
回答 3查看 2.2K关注 0票数 14

目前,我已经创建了一个身份服务器4 web应用程序与默认客户端id和秘密的外部登录提供者。但我的目标是注册认证提供商,如Azure,Google,Facebook,基于租户。

我已经使用了SaasKit多租户程序集,这里我尝试过中间件.但是UseGoogleAuthentication()方法已经过时,所以我无法使用这个usepertenant中间件来实现多租户身份验证。

目前的代码,

代码语言:javascript
复制
services.AddAuthentication(CookieAuthenticationDefaults.AuthenticationScheme)
   .AddMicrosoftAccount(option =>
     {
        option.ClientId = "clientid";
        option.ClientSecret = "clientsecret";
        option.SaveTokens = true;
     });

预期的代码如下,

代码语言:javascript
复制
var authentication = services.AddAuthentication(CookieAuthenticationDefaults.AuthenticationScheme);

if (tenant.hasMicrosoft)
{
   authentication.AddMicrosoftAccount(option =>
   {
        option.ClientId = "clientid";
        option.ClientSecret = "clientsecret";
        option.SaveTokens = true;
   });
}

if (tenant.hasGoogle)
{
   authentication.AddGoogle(option =>
   {
        option.ClientId = "clientid";
        option.ClientSecret = "clientsecret";
        option.SaveTokens = true;
   });
}

authentication.AddCookie( options =>
 {
    options.SlidingExpiration = true;
    options.ExpireTimeSpan = new TimeSpan(7, 0, 0, 0);
 });
EN

回答 3

Stack Overflow用户

发布于 2020-03-17 04:43:08

见正式的MS文档,每个租户的身份验证提供者

ASP.NET核心框架没有用于多租户身份验证的内置解决方案。虽然客户当然可以使用内置特性编写果园核,但我们建议客户为此目的查看。

票数 3
EN

Stack Overflow用户

发布于 2020-01-29 10:41:14

由于身份验证需要在DI注册期间进行配置,所以在身份验证注册期间,通常必须设置所有外部登录提供程序。

在这一步中,您需要添加所有方案。一个方案有一个固定的客户端id/机密,因此您需要使用所有外部登录提供程序凭据引导您的IdentityServer,从而为所有客户端提供支持。方案名称必须是唯一的。

例如,租户A可能有一个方案"A_microsoft",租户B可能有一个方案"B_microsoft",等等。

然后,您可以在IdentityServer中调用方法时引用这些身份验证方案。SignIn,挑战,SignOut等。

请注意,这将需要引导IdentityServer --一组完整的租户。根据您的场景,如果租户定期更新,则还需要定期重新启动IdentityServer,以了解新的身份验证方案。

如果这是一个问题,您可能可以在IdentityServer运行时以某种方式增强已注册的身份验证方案,但这并不容易。它可能需要AspNetCore附带的身份验证中间件的更大的自定义实现。

票数 0
EN

Stack Overflow用户

发布于 2020-02-05 09:21:00

您的意思是要添加对多个身份验证提供程序的支持吗?本文件已经指定了如何在配置服务中添加多个auth提供程序。不再需要使用app.UseXXX来自己配置管道

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59822749

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档