我有两个应用程序。第一个是在iFrame中从第二个加载报告的门户。我将两者分别称为门户应用程序和iFrame应用程序。
门户应用程序使用Oauth2 authz代码授予流。iFrame应用程序使用SAML2。
我已经通过在同一个B2C租户内的两个不同的依赖方文件为两者实现了自定义策略。
有必要不让用户验证2ce-一次用于门户应用程序,第二次用于iFrame应用程序。当然,技术配置文件使用不同的协议(OpenIdConenct和SAML2(,因此令牌和声明将有所不同。
问题:是否可以实现两个应用程序的单一身份验证?
从技术上讲,如果iframe应用程序要使用SSO,这应该可以正常工作,无需配置,因为它将使用AAD B2C在门户应用程序登录时设置的单点登录cookie。关键是SAML流在与AAD B2C服务的整个交互过程中完全使用重定向,没有任何用户交互。
这是因为AAD B2C&AAD不允许在iframe中呈现其页面。所有HTTP 200响应都将从AAD B2C返回到浏览器,并带有X帧选项拒绝标头。
如果用户使用任何联合IdP登录(例如,与AAD B2C联合的ADFS(,则该IdP也不得在iframe中提示用户。如果它是联邦SAML-IdP,则需要使用REDIRECT绑定。