asp.net-mvc - 从 ASP.NET MVC 到 SharePoint 的联合身份验证

标签 asp.net-mvc sharepoint adfs federated-identity

场景:

  • 我们当前的堆栈是 SharePoint 2013 Web 应用程序
  • 用户使用 ADFS 基于声明的联合身份验证登录 SP2013:当用户在 SP 站点中单击“登录”时,他们会通过 ADFS 重定向到对用户进行身份验证的身份提供商,并使用内置支持联合身份验证的 SP通过身份验证,我们获得存储在 SharePoint 安全 token 服务中的 SAML token 。用户的浏览器会获取一个 FedAuth cookie(如果我理解正确的话),该 cookie 引用存储在 SharePoint 中的 token 。
  • 我们希望逐步从 SP 迁移到基于 ASP.NET MVC 的堆栈
  • 这里的关键是逐步迁移:我们希望将页面和 REST 服务从 SP 逐步迁移到新系统。

例如,URL /thisurl/ 应由旧 SP 应用程序处理,而 /migeratedurl/ 应由新 ASP.NET MVC 应用程序处理。

我有以下疑问/问题:

  • 问题 1:我们如何在新设置中处理身份验证?我想身份验证(即处理用户单击“登录”链接、重定向到 ADFS -> 身份提供商)仍将由旧 SP 站点处理。在这种情况下,新的 ASP.NET MVC 应用程序如何访问经过身份验证的用户的声明?
  • 问题 2:部署此功能的最佳方式是什么?新的 ASP.NET MVC 应用程序应该是 SharePoint 网站下的 IIS Web 应用程序吗?或者应该是一个新的 IIS 网站?请记住,ASP.NET MVC 应用程序需要对 SP 站点进行 AJAX 调用,反之亦然。

我对 SharePoint、联合身份、ADFS 等的理解充其量是有限的,因此我对我们系统的描述可能缺乏,可能有一些我误解的东西,可能有我不正确的术语等。如果我可以对问题进行更改以使其更清晰,请告诉我。

最佳答案

在 ADFS 术语中,您拥有的是两个独立的依赖方 (RP),即。 SP 站点和新的 MVC 应用程序。

ADFS 在它们之间应用 SSO。

您的新应用程序。将基于声明,即您需要通过 WIF(旧版)或 OWIN(新版和 Shiny 版)添加 WS-Fed 功能。

引用:Use the OWIN Security Components in ASP.NET to Implement Web Sign On with ADFS一个很好的 OWIN/ADFS 示例。

所以发生的情况是用户登录到 SP。他们现在拥有 SP 和 ADFS cookie 集。他们现在登录到 MVC 应用程序。他们没有应用程序。 cookie,以便它们被重定向到 ADFS。 ADFS/OWIN 看到他们有 ADFS cookie,因此创建应用程序。 cookie 和用户无缝登录。

最干净的部署方法是制作应用程序。一个新的 IIS 网站。

这有两个优点:

  • 不依赖 SP
  • 将来非常容易迁移到 Azure(只需更改一些 web.config)

关于asp.net-mvc - 从 ASP.NET MVC 到 SharePoint 的联合身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36623766/

相关文章:

sql-server - 等待操作超时

c# - 您的 SQL 语法有错误,适用于 .net 的 mysql 连接器

.net - 从 .net 应用程序创建 Word 文档

adfs - 如何将 SelfSTS 与 ADFS v2.0 联合

ios - ADFS(3.0)与iPad应用程序集成以实现SSO实现

c# - 如何建模实体以在编译时强制执行数据模型约束?

c# - System.Web.Routing.UrlRoutingModule 没有实现 IHttpHandlerFactory 或 IHttpHandler

css - SharePoint 2013 CSS - 在全局导航元素中移动

sharepoint - 事件处理范围事件中的延迟事件 - Windows 工作流共享点

java - 使用 java 将文件上传到由 ADFS SSO 验证的 Sharepoint Online 存储库?