SharePoint 2013本地版、Power BI和自定义Web应用程序的ADFS单点登录是什么?

8

场景

有一个用户存储库,即本地AD。 ADFS为SharePoint 2013和Power BI提供身份验证。

自定义Web应用程序需要从AD验证用户。 Web应用程序后端还需要访问SharePoint REST API。

目标是使用单个登录来实现上述目标。如果在这三个应用程序中的任何一个中登录,则用户不必为其他两个应用程序输入凭据。此外,自定义Web应用程序显示来自SharePoint(iFrame和REST API)和Power BI(iFrame)的内容。

我们已经尝试了以下两个解决方案,但在任一情况下都遇到了问题。

解决方案1

  • 用户在Web应用程序中输入凭据。
  • Web应用程序后端使用这些凭据从ADFS获取SAML令牌。
  • Web应用程序后端使用SAML令牌通过基于表单的身份验证对用户进行SharePoint身份验证,并检索FedAuth cookie。
  • Web应用程序后端使用FedAuth cookie向SharePoint发出REST API请求
  • Web应用程序前端使用SAML令牌通过基于表单的身份验证对用户进行SharePoint身份验证。这允许在iFrames中包含SharePoint内容。

有什么问题:导航到Power BI或在iFrame中包含它将重定向用户到ADFS登录页面。这是因为用户尚未在浏览器中通过ADFS进行身份验证。

解决方案2

  • 自定义Web应用程序也使用ADFS SSO。
  • 导航到这三个应用程序中的任何一个都会将用户重定向到ADFS登录页面
  • 用户输入其凭据并返回到具有SAML令牌的应用程序。
  • 导航到其他两个应用程序中的任何一个都将重定向用户到ADFS,而无需再次要求用户登录,ADFS将使用另一个SAML令牌将用户重定向回应用程序。
  • 这允许在Web应用程序中包含SharePoint和Power BI内容的iFrames。

有什么问题:Web应用程序无法使用从ADFS接收的SAML令牌对SharePoint进行REST API请求。我们尝试使用该SAML令牌代表已登录用户向ADFS请求另一个SAML令牌,但也没有成功。此外,本地的SharePoint 2013可能不接受代表请求。

问题

是否有一种方法可以同时实现这三个应用程序的SSO,并且还可以从Web应用程序访问SharePoint的REST API?用户只需登录一次,最好只需登录Web应用程序。

1个回答

1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接