适用于SharePoint 2013内部部署,Power BI和自定义Web应用程序的ADFS单一登录?

Sut*_*ala 8 sharepoint adfs adfs2.0 sharepoint-2013 powerbi

脚本

有一个用户存储,即内部部署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用户进行身份验证.这允许iFrame中的SharePoint内容.

什么不起作用:导航到Power BI或将其包含在iFrame中会将用户重定向到ADFS登录页面.这是因为用户尚未在浏览器中使用ADFS进行身份验证.

解决方案2

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

什么不起作用:Web应用程序无法使用从ADFS为Web应用程序收到的SAML令牌向SharePoint发出REST API请求.我们已尝试使用该SAML令牌代表登录用户从ADFS for SharePoint请求另一个令牌.这也不起作用.同样,SharePoint 2013内部部署可能不会代表请求接受.

有没有办法为所有三个应用程序提供SSO,同时还可以从Web应用程序获得对SharePoint的REST API访问?用户只需登录一次,最好只登录Web应用程序.

Mar*_*SFT 1

通过 Azure Active Directory 注册应用程序可能是实现您所需的最佳方式。您可以在 Azure AD 中注册应用程序,然后按应用程序、租户或策略向用户授予权限。https://learn.microsoft.com/en-us/power-bi/developer/embed-sample-for-customers https://learn.microsoft.com/en-us/power-bi/developer/create-an -azure-active-directory-租户