Azure active directory Asp.net Core 2.1中多租户的动态OpenIdConnectOptions-*

Azure active directory Asp.net Core 2.1中多租户的动态OpenIdConnectOptions-*,azure-active-directory,azure-ad-b2c,asp.net-core-identity,asp.net-core-security,Azure Active Directory,Azure Ad B2c,Asp.net Core Identity,Asp.net Core Security,我正在使用aspnetcore v2.1(最新的开发分支)创建一个多租户应用程序,其中每个租户根据自己的Azure B2C广告租户进行身份验证。选择此aproach是为了确保每个租户的电子邮件/密码选择和社交登录关联是唯一的 我不想在Startup.ConfigureServices中应用静态ClientId,而是希望基于当前租户标识(我根据主机名确定)应用正确的ClientId和权限。基于之前对2.0-*代码的检查,我一直在使用IOptionsSnapshot以允许我应用如下所示的正确选项 在

我正在使用aspnetcore v2.1(最新的开发分支)创建一个多租户应用程序,其中每个租户根据自己的Azure B2C广告租户进行身份验证。选择此aproach是为了确保每个租户的电子邮件/密码选择和社交登录关联是唯一的

我不想在Startup.ConfigureServices中应用静态ClientId,而是希望基于当前租户标识(我根据主机名确定)应用正确的ClientId和权限。基于之前对2.0-*代码的检查,我一直在使用IOptionsSnapshot以允许我应用如下所示的正确选项

在Startup.ConfigureServices中:

services.AddSingleton<IOptionsSnapshot<OpenIdConnectOptions>, OpenIdConnectOptionsSnapshot>();
services.AddAuthentication().AddCookie().AddOpenIdConnect();
实施:

public class OpenIdConnectOptionsSnapshot : IOptionsSnapshot<OpenIdConnectOptions>
public类openidconnectoptions快照:IOptionsSnapshot
但是,现在我发现我的OpenIDConnectOptions快照不再被实例化或引用

在AspNetCore Security 2.1.0-*下,应用每个租户的动态客户端ID、权限等的正确方法是什么


(我愿意接受“你做得完全错误”的说法,以及为没有AzureAD足迹的租户提供多种实现多租户的方法的建议)

尝试改用IOptionsMonitor,我们在2.0中更改了IOptionsSnapshot的工作方式,并将auth切换为使用监视器


作为旁注,我建议投票支持Azure AD B2C中的一流多租户支持:完成-感谢您的指点
public class OpenIdConnectOptionsSnapshot : IOptionsSnapshot<OpenIdConnectOptions>