设置默认域提示(家庭领域发现)以跳过Azure AD登录提示

clD*_*clD 3 c# asp.net-mvc azure single-sign-on openid-connect

情境

外部用户登录到我们的Sharepoint网站并导航到我们的Web应用程序时,他们将被重定向到我们的Azure AD租户-完整终结点登录页面,因为他们已经通过Sharepoint网站进行了身份验证,尽管他们没有AzureAD和ADFS输入/选择用户帐户并重定向到Web应用程序。

内部用户导航到Web应用程序时,他们将被定向到我们的Azure AD的完整租户终结点插入页面,因为他们没有通过AzureAD和ADFS进行身份验证,因此必须输入用户名。当用户输入用户名时,将执行Home Realm Discovery,并将其重定向到ADFS服务器,因为他们正在从Intranet访问Web应用程序,因此会自动进行身份验证并重定向回该Web应用程序。

因此,内部用户可以绕过输入用户名,domain_hint可以提供参数,并且此参数可以正常运行,但是我们的内部和外部用户位于不同的租户中,因此域不同。


是否可以为domain_hint尚未通过身份验证的用户设置默认值?

使用OWIN OpenIdConnect,ASP.Net MVC。该Web应用程序是在与本地ADFS联合的AzureAD中配置的。

类似的,但我们不知道家庭领域

Rob*_*ini 5

这篇博客文章概述了如何使用域提示:跳过Azure AD中的Home Realm Discovery页面

基本上是这样的(请注意使用域提示RedirectToIdentityProvider):

app.UseOpenIdConnectAuthentication(
new OpenIdConnectAuthenticationOptions
{
    ClientId = clientId,
    Authority = authority,
    PostLogoutRedirectUri = postLogoutRedirectUri,
    Notifications = new OpenIdConnectAuthenticationNotifications()
    {
        RedirectToIdentityProvider = (context) => 
        {                                                        
            context.ProtocolMessage.DomainHint = "mydomain.com"; 
            return Task.FromResult(0); 
        }, 
    }
});
Run Code Online (Sandbox Code Playgroud)