代码之家  ›  专栏  ›  技术社区  ›  codeape

来自ASP。NET MVC到SharePoint

  •  2
  • codeape  · 技术社区  · 9 年前

    场景:

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

    例如,URL /thisurl/ 应由传统SP应用程序处理,以及 /migratedurl/ 应由新ASP处理。NET MVC应用程序。

    我有以下问题/问题:

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

    我对SharePoint、联邦身份、ADFS等的理解充其量是有限的,因此我对我们的系统的描述可能会有所欠缺,可能会有我误解的地方,可能有我不正确的术语等。请让我知道我是否可以对问题进行更改,以使其更清晰。

    2 回复  |  直到 9 年前
        1
  •  2
  •   rbrayb    9 年前

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

    ADFS在它们之间应用SSO。

    您的新应用程序。将基于声明,即您需要通过WIF(旧的)或OWIN(新的和闪亮的)添加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 cookies,所以创建了应用程序。cookies和用户无缝登录。

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

    这有两个优点:

    • 不依赖于SP
    • 将来很容易迁移到Azure(只需要一些web.config更改)
        2
  •  1
  •   Salman Siddiqui    9 年前

    如果评论中对我的问题的回答是“是”,那么您的MVC堆栈应该能够访问FedAuth cookie并向联邦站点查询新令牌。

    这意味着MVC堆栈将托管在IIS中相同级别的SharePoint之下。我想这是你第二季度的答案:)

    请看 Sample Federation, delegation and authentication scenarios in SharePoint 2013

    特别是联邦场景;

    1. Fabrikam信任域中的客户端向Contoso信任域中依赖方应用程序发送请求。

    2. 依赖方将客户端重定向到Contoso信任域中的STS。该STS不了解客户。

    3. Contoso STS将客户端重定向到Fabrikam信任域中的STS,Contoso信任域与该STS具有信任关系。

    4. Fabrikam STS验证客户端的身份并向Contoso STS颁发安全令牌。

    5. Contoso STS使用Fabrikam令牌创建自己的令牌,并将其发送给依赖方。

    6. 依赖方从安全令牌中提取客户端的声明并做出认证决定。