IdentityServer3:保护asp.net mvc app免受未经授权的访问

时间:2017-09-26 22:25:44

标签: asp.net-mvc oauth-2.0 identityserver3 claims-based-identity openid-connect

环境是使用identityserver3进行单点登录。我有一个客户端角度应用程序,它使用openid连接身份服务器3.我还有一个文件查看器asp.net mvc应用程序,用于呈现pdfs和其他文件,没有安全性。 angular应用程序在iframe中呈现文件查看器以显示文件的内容。

我尝试将文件查看器添加为客户端以与openid connect进行身份识别,以便当用户登录到角度应用程序时,用户将单独登录到文件查看器应用程序,但它在iframe中不起作用当文件查看器由于x-frame-options sameorigin标头而重定向到标识的授权端点时。如果我打开文件查看器,则url是一个单独的选项卡,然后在角度应用程序中启动文件预览,然后在角度应用程序内调用开始工作,因为文件查看器cookie现在位于浏览器中。

理想情况下,我希望文件查看器像web api一样工作,它只验证传入的令牌,但不确定如何使用身份服务器实现这一点。

如何使用identityserver保护文件查看器应用程序?我是否必须使用管道中的消息处理程序手动解码jwt令牌?

感谢。

enter image description here

1 个答案:

答案 0 :(得分:0)

如果您在本地渲染文件,您可以使用bearer auth,就像webapi一样。但是,因为您在iframe中使用MVC,所以它有点棘手。您需要在新窗口中触发文件查看器的auth - SSO登录永远不会发生在iframe中。当您在iframe中调用文件查看器mvc app时,这应该会为您提供身份验证凭据,通常是Cookie。