当使用Azure AD进行使用OpenID Connect的身份验证时,可以在身份验证请求中包含domain_hint
参数,以将用户重定向到其品牌化的Azure登录页面(类似于使用whr
- 请参阅http://login.microsoftonline.com/和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以进行身份验证。这是通过调用影响到:
context.HttpContext.GetOwinContext().Authentication.Challenge(properties, "AzureAd");
因为我不知道在应用程序启动的DomainHint
(它会根据用户的组织变革),是有办法通过DomainHint
参数作为部分Challenge
方法的属性或类似?