OpenID Connectを使用した認証にAzure ADを使用する場合は、認証リクエストにdomain_hint
パラメータを含めることができます(whr
を使用するのと同様に - とhttp://login.microsoftonline.com?whr=microsoft.comの違いを参照してください)。 )。マルチテナントAzure ADリクエストのドメインヒントを設定するにはどうすればよいですか?
シングルテナントのためのサービスを提供する場合、のようなもの使用してこれを設定するのは簡単です:しかし、私は、ユーザーの電子メールを要求するマルチテナントアプリケーションに取り組んでいます
app.UseOpenIdConnectAuthentication(
new OpenIdConnectAuthenticationOptions
{
ClientId = clientId,
Authority = authority,
PostLogoutRedirectUri = postLogoutRedirectUri,
Notifications = new OpenIdConnectAuthenticationNotifications()
{
RedirectToIdentityProvider = (context) =>
{
context.ProtocolMessage.DomainHint = "mydomain.com";
return Task.FromResult(0);
},
}
})
をし、構成設定によっては、ユーザーがローカルパスワードを使用してログオンできるようにするか、認証のためにAzureにリダイレクトします。私はアプリの起動時にDomainHint
を知らない(と、それはユーザーの組織に応じて変化します)ので、の一部としてDomainHint
パラメータを渡す方法がある
context.HttpContext.GetOwinContext().Authentication.Challenge(properties, "AzureAd");
:これはへの呼び出しによって行われますChallenge
メソッドのプロパティやそれと類似している