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中配置的。
这篇博客文章概述了如何使用域提示:跳过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)
| 归档时间: |
|
| 查看次数: |
1806 次 |
| 最近记录: |