IdentityServer3:保护asp.net mvc应用程序免受未经授权的访问

IdentityServer3:保护asp.net mvc应用程序免受未经授权的访问

问题描述:

环境使用identityserver3进行单点登录。我有一个客户端角应用程序正在使用openid连接身份服务器3.我也有一个文件查看器asp.net mvc应用程序,它用于呈现pdf和其他文件,并没有安全。角度应用程序呈现iframe内的fileviewer以显示文件的内容。IdentityServer3:保护asp.net mvc应用程序免受未经授权的访问

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

理想情况下,我希望文件查看器能够像web api一样工作,它只验证传入令牌,但不知道如何通过身份服务器来实现。

我该如何去保护带有标识服务器的文件查看器应用程序?我必须通过在管道中使用消息处理程序手动解码jwt令牌吗?

谢谢。

enter image description here

如果你渲染本地文件,你可以使用承载权威性,喜欢的WebAPI一样。但是,因为您在iframe中使用MVC,所以它有点棘手。您需要在新窗口中触发文件查看器的身份验证 - SSO登录不应发生在iframe中。这应该会为您提供身份验证凭据,通常是一个cookie,用于在您的iframe中调用文件查看器mvc应用程序时使用。