使用iframe解决方案的Azure AD Owin

时间:2016-10-01 08:57:13

标签: iframe asp.net-mvc-5 owin azure-active-directory

我有一个应用程序设置为使用Owin和Azure AD。它运行良好,但我现在需要在iframe内运行作为第三方解决方案的一部分。

除了安全性之外,这是可以的。 https://login.microsoftonline.com不允许在iframe中运行。我的控制器将检查用户是否经过身份验证,如果没有,请调用'HttpContext.GetOwinContext()。Authentication.Challenge(..............'

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

2 个答案:

答案 0 :(得分:6)

AAD不允许框架输入凭据的页面。这一要求源于需要防止点击顶升式攻击。见:https://www.owasp.org/index.php/Clickjacking。相反,您最初可以进行全帧验证,然后使用prompt = none进行身份验证以刷新票证。 Prompt = none告诉AAD不允许停止并请求凭据,因此该流程始终可以在iframe中使用。

答案 1 :(得分:0)

作为已接受答案的附录,我能够通过确保iframe URL的大小写与我在Azure AD中的应用注册中提供的内容完全匹配来解决该问题。例如。如果Azure AD将https://mydomain/My-App/作为我的回复URL之一,则确保iframe URL的拼写完全相同。最初,我的iframe URL为https://mydomain/my-app/my-page,并且遇到了上述相同的问题,直到我将大小写更改为https://mydomain/My-App/my-page