Azure AD Owin与Iframe解决方案

Azure AD Owin与Iframe解决方案,iframe,asp.net-mvc-5,owin,azure-active-directory,Iframe,Asp.net Mvc 5,Owin,Azure Active Directory,我有一个应用程序,它被设置为使用Owin和Azure广告。它工作得很好,但我现在需要在iframe中作为第三方解决方案的一部分运行 除了安全问题,这还可以。不允许在iframe内运行。我的控制器将检查用户是否经过身份验证,如果没有,则调用“HttpContext.GetOwinContext().Authentication.Challenge(…………” 在研究中,我似乎不太可能在框架内做任何事情。我唯一的选择是创建一个登录页面,该页面将重定向到包含iframe的客户端应用程序吗?如果过期,i

我有一个应用程序,它被设置为使用Owin和Azure广告。它工作得很好,但我现在需要在iframe中作为第三方解决方案的一部分运行

除了安全问题,这还可以。不允许在iframe内运行。我的控制器将检查用户是否经过身份验证,如果没有,则调用“HttpContext.GetOwinContext().Authentication.Challenge(…………”


在研究中,我似乎不太可能在框架内做任何事情。我唯一的选择是创建一个登录页面,该页面将重定向到包含iframe的客户端应用程序吗?如果过期,iframe当前将显示一个错误,说明内容无法在框架中显示,这不是很优雅。

AAD不允许fra输入凭据的页面数。此要求源于需要防止点击劫持式攻击。请参阅:。相反,您可以先执行完整帧身份验证,然后使用prompt=none执行I-frame身份验证以刷新票证。prompt=none告诉AAD不允许停止并请求凭据,因此flow将始终在iframe中工作。

作为已接受答案的补充,我可以通过确保iframe URL的大小写与我在Azure AD中的应用程序注册中提供的内容完全匹配来解决此问题。例如,如果Azure AD将iframe URL作为我的回复URL之一,则确保iframe URL的拼写完全相同。我用缩写y将我的iframe URL更改为,并且遇到了上述相同的问题,直到我将大小写更改为。

谢谢Will,您是否有提示参数的示例,并且在上面没有找到任何示例。我使用HttpContext.GetOwinContext().Authentication.Challenge在控制器中,是否存在扩展名或是否必须重定向到手工创建的URL?重定向到IdP时会触发其中一个通知。您应该能够在其中设置context.ProtocolMessage.Prompt=none。请参阅:@SteveNewton“全帧身份验证”是什么意思?无论如何,我无法让它工作。即使使用
prompt=none
,Chrome也会给我“拒绝在帧中显示,因为它将'X-frame-Options'设置为'deny'。“嗨,@RobSiklos。你能解决这个问题吗?我也有同样的问题。