Iframe 调用Azure AD上具有SSO的外部API 我有一个通过Azure AD进行身份验证的内部网-位于(详细信息,其Sharepoint Online) 在某些页面中,我们需要rest api生成的动态内容-位于(详细说明,.NET WebAPI,使用OpenId的Owin中间件) api.AAD的验证示例 api.example和intranet.example都具有通过管理员同意授予的Windows Azure AD权限 api.example已启用X-Frame-Options、访问控制允许凭据和访问控制允许源站 我需要的是:

Iframe 调用Azure AD上具有SSO的外部API 我有一个通过Azure AD进行身份验证的内部网-位于(详细信息,其Sharepoint Online) 在某些页面中,我们需要rest api生成的动态内容-位于(详细说明,.NET WebAPI,使用OpenId的Owin中间件) api.AAD的验证示例 api.example和intranet.example都具有通过管理员同意授予的Windows Azure AD权限 api.example已启用X-Frame-Options、访问控制允许凭据和访问控制允许源站 我需要的是:,iframe,single-sign-on,internet-explorer-11,azure-active-directory,openid,Iframe,Single Sign On,Internet Explorer 11,Azure Active Directory,Openid,一些页面具有JavaScript逻辑生成的动态内容,从api请求数据 用户将在intranet.example和api.example中进行身份验证。必须具有单点登录行为 必须避免任何类型的提示或授权请求,因为所有这些都必须对最终用户透明 我尝试的是: 我试图简单地在intranet.example中放置一个指向app.example的IFrame,它可以在Chrome/Firefox上运行。但是,IE11不允许这样做,因为我的应用程序会重定向到以X-FRAME-OPTIONS设置为DENY的响

一些页面具有JavaScript逻辑生成的动态内容,从api请求数据

用户将在intranet.example和api.example中进行身份验证。必须具有单点登录行为

必须避免任何类型的提示或授权请求,因为所有这些都必须对最终用户透明

我尝试的是: 我试图简单地在intranet.example中放置一个指向app.example的IFrame,它可以在Chrome/Firefox上运行。但是,IE11不允许这样做,因为我的应用程序会重定向到以X-FRAME-OPTIONS设置为DENY的响应

例子:
  • 用户登录谷歌账户,访问并拥有挂断信息,无需提示或授权请求或其他任何东西,完全透明
  • 用户登录Microsoft个人帐户,访问并让Skype消息启动并运行,无需提示或授权请求或其他内容,完全透明
注1:它必须在我们的领域之外工作。因此,设置Intranet/Trusted Site Zone不是一个选项。 注2:与Sharepoint的分离程度越高越好。
注3:我试过这种方法

  • 我建议将您的问题重新发布到
  • 可能是一个更好的选择,但它现在正在预览中,并且“在生产租户中不受支持”。它还需要新的SharePoint管理中心,该中心仅适用于首次发布的租户

    此外,我发现这些是比现有MS文档更好的AadHttpClient教程:

  • 我建议将您的问题重新发布到
  • 可能是一个更好的选择,但它现在正在预览中,并且“在生产租户中不受支持”。它还需要新的SharePoint管理中心,该中心仅适用于首次发布的租户

    此外,我发现这些是比现有MS文档更好的AadHttpClient教程:


    您需要获取相应的令牌来调用受Azure AD保护的web API。是[此代码示例[()有帮助吗?如果我误解了,请随时告诉我。@FeiXue感谢您的回复。我认为这不会在我的intranet上尽快解决我的问题。example必须重定向到microsoft登录页才能获得访问令牌。它需要打开一个弹出窗口,这意味着用户必须单击某个按钮或放置intranet。example into intranet zone):如果您是通过OpenID connect实现SSO,当用户已经登录时,它不会提示登录页面。您在web应用中需要做的唯一事情是使用
    AuthorizationCodeReceived
    获取相应资源的令牌,如代码示例所示。@guilHerematheuscosta-不他的问题只影响IE11?其他浏览器呢?您需要获取相应的令牌来调用受Azure AD保护的web API。是[此代码示例[()有帮助吗?如果我误解了,请随时告诉我。@FeiXue感谢您的回复。我认为这不会在我的intranet上尽快解决我的问题。example必须重定向到microsoft登录页才能获得访问令牌。它需要打开一个弹出窗口,这意味着用户必须单击某个按钮或放置intranet。example into intranet zone):如果您是通过OpenID connect实现SSO,当用户已经登录时,它不会提示登录页面。您在web应用中需要做的唯一事情是使用
    AuthorizationCodeReceived
    获取相应资源的令牌,如代码示例所示。@guilHerematheuscosta-不他的问题只影响IE11?其他浏览器呢?