3

のマルチテナント用の動的OpenIdConnectOptions各テナントがそれぞれのAzure B2C ADテナントに対して認証するマルチテナントアプリケーションを作成するために、aspnetcore v2.1(最新のdevブランチ)を使用しています。 。このaproachは、電子メール/パスワードの選択とソーシャル・ログインの関連付けがテナントごとに異なるように選択されました。Asp.net Core 2.1- *

Startup.ConfigureServicesに静的ClientIdを適用するのではなく、現在のテナントID(ホスト名に基づいて決定)に基づいて適切なClientIdとAuthorityを適用したいと考えています。以前の2.0- *コードの検査に基づいて、私はIOptionsSnapshotを使用して、以下に示す正しいオプションを適用できるようにしていました。 Startup.ConfigureServicesで

:Startup.Configureで

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

app.UseAuthentication(); 

の実装と:

public class OpenIdConnectOptionsSnapshot : IOptionsSnapshot<OpenIdConnectOptions> 

しかし、今、私は私のOpenIdConnectOptionsSnapshotがノーであることがわかりインスタンス化または参照が長くなります。

ダイナミックテナントのClientId、AuthorityなどをAspNetCore Security 2.1.0- *で適用する正しい方法は何ですか?

(私は「あなたは、それは完全に間違ってやっている」と何の既存AzureADフットプリントを持っていないテナントのためのマルチテナントを実現するさまざまな方法の提案を開いています)

+1

、私はアズールADのB2Cでのファーストクラスのマルチテナントサポートに投票お勧めします:https://feedback.azure.com/forums/169401-azure-active-directory/提案/ 9849063-aadb2c-how-on-multi-tenant-applications-based – Saca

+0

done - ポインタありがとう –

答えて

1

代わりIOptionsMonitorを使用してみてください、私たちは変更IOptionsSnapshotが2.0のかなり遅くにどのように働いていたのか、代わりに認証を切り替えてモニターを使用しました。サイドノートとして

OptionsSnapshot is now scoped