【问题标题】:Security Integration between Windows Authentication Intranet and ASP.NET Identity MVC WebsiteWindows Authentication Intranet 和 ASP.NET Identity MVC 网站之间的安全集成
【发布时间】:2016-05-16 08:22:18
【问题描述】:

我正在寻找一种解决方案,通过该解决方案,经过预身份验证(Windows 身份验证)的 Intranet 用户无需手动登录即可访问 MVC 网站(ASP.NET 身份)。

MVC 站点目前有单独的登录名,用于手动登录访问未经身份验证的用户,这是预期的行为,但我想要实现的是从 Intranet 访问 MVC 站点时的 SSO。通过传递身份验证 cookie 或不记名访问令牌,我可以在我的 MVC 网站中破译它们。

我目前有一个来自 Intranet 的普通旧超链接,其中包含一个指向 MVC 应用程序的 URL,该应用程序受自定义授权属性保护...我已经覆盖了 AuthorizeAttribute 但需要在会话期间持续进行身份验证。

请有人对此提供一些指导,使用示例代码生成 Web 请求和必要的标头并在 MVC AuthorizeCore 方法中验证 windows 用户?

非常感谢,

史蒂夫

【问题讨论】:

  • 不能只使用 IIS 级别的 Windows 身份验证吗?到 MVC 看到请求时,它已经通过了身份验证(或没有)。
  • 很遗憾没有。 Intranet 应用程序驻留在可以访问 LDAP 的内部服务器上,但网站驻留在无法访问内部服务器的 webfarm 上(通过身份验证的 Web API 请求除外)。 ASP.NET 标识在 MVC 站点上实现,因此在从 Web API 返回任何数据之前需要对用户进行身份验证。理想情况下,当请求来自 Intranet 时,我可以授予对管理员登录的访问权限,但我需要保持 100% 的安全,因此我想使用访问令牌或身份验证 cookie。谢谢

标签: c# single-sign-on asp.net-identity intranet


【解决方案1】:

以下是解决问题的步骤。

  1. 打开 Visual Studio 2013,点击 FILE->New->Project。

  2. 在项目下,点击 Web->VisualStudio2012-> ASP.NET MVC4 Web 应用程序。

  1. 输入您的项目名称,选中创建文件夹,选择 Intranet 应用程序并点击确定。

  1. 修改根web.config,在授权标签下添加允许用户标签:

   <authorization>
      <allow users="*" />
      <deny users="?" />
    </authorization>

  1. 使用 Google Chrome 进行测试,应该会显示此主页:

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-11-03
    • 1970-01-01
    • 2021-06-18
    • 2021-04-01
    • 2011-01-01
    • 2017-04-17
    相关资源
    最近更新 更多