ASP.NET MVC应用程序中的Azure AD / ADFS SSO

时间:2015-01-09 16:58:15

标签: asp.net-mvc azure single-sign-on adfs azure-active-directory

我通过Azure AD阅读了大量关于身份验证的文章。有很多选择,我读过的任何内容似乎都无法解决我的问题。

以下是这种情况: 我有3个不同的Web应用程序(所有ASP.NET MVC 5)。它们都在我们的网络内部托管在同一服务器/ IIS上,并对我们的内部AD使用Windows集成身份验证。

让我们将这些应用程序称为App_A,App_B和App_C。

  • App_A位于我们DNS中的appA.mydomain.com
  • App_B位于我们DNS中的appB.mydomain.com
  • App_C位于我们DNS中的appC.mydomain.com

用例是这样的:

  • 用户导航到App_A会执行某些操作,并最终重定向到App_B
  • 用户在App_B中完成一些工作,最终重定向到App_C
  • 用户在App_C
  • 中完成了一些工作

当用户在加入域的PC上时,系统永远不会提示他们登录.Windows会通过集成身份验证为他们处理这些问题。

现在,当用户想要在非域设备(例如iPad)上进行相同的工作时,无论是在VPN上还是连接到内部WiFi,都会发生这种情况:

  • 当用户加载App_A时,系统会提示他们使用Windows凭据登录并执行此操作
  • 当他们到达App_B时,会再次提示他们(不同的子域名)
  • 当他们到达App_C时,会再次提示他们(不同的子域名)

使用相同的Windows凭据多次登录并不是我们想要移动用户的体验。

我们希望移动用户在点击App_A时进行一次登录,而不是在他们点击App_B或App_C时再次登录。同样,我们仍然希望加入域的PC上的用户不必登录,因为他们已经对他们的计算机进行了身份验证。 仅为了您的信息,我们还将AD与Azure AD同步,因此如果解决方案需要,我们可以对其进行身份验证。我正在寻找我需要做的事情来设置我的MVC应用程序以允许这种身份验证。

您可以提供任何帮助,我们将非常感激。

1 个答案:

答案 0 :(得分:1)

您描述的方案应该可以使所有应用使用Azure AD,如https://github.com/AzureADSamples/WebApp-OpenIDConnect-DotNet所示,并确保它们都跳过主域发现并直接进入您的域,如{{3}所示}