IdentityServer4:在ASP.NET Core MVC服务器应用程序和JavaScript客户端之间共享身份验证
问题描述:
我有一个托管JavaScript客户端应用程序的ASP.NET Core MVC服务器应用程序。 JS应用程序当前使用带隐式流的Oidc身份验证。 MVC服务器应用程序提供文件下载功能,并需要对用户进行身份验证。IdentityServer4:在ASP.NET Core MVC服务器应用程序和JavaScript客户端之间共享身份验证
当用户登录JS客户端并单击引用MVC服务器后端的下载链接并且服务器应接受已经过身份验证的用户时,是否有方法或示例说明如何配置这两个应用程序以支持方案?
此外,如果用户尚未通过身份验证并在浏览器中导航到下载URL,则MVC后端应在重新导向到身份服务器登录页面之前继续下载。
我已经尝试过几种配置,但是两个客户端的行为都是独立的,第一次登录后,MVC服务器不会在一个浏览器会话内反映JS客户端用户切换。
答
在你的MVC应用程序,其配置为使用适当的设置使用IdentityServer中间件(如app.UseIdentityServerAuthentication
在Startup.Configure)为AllowedScopes
,Authority
等
然后与Authorize
属性装饰你的控制器动作,和请确保从前端到后端的所有呼叫都正确地将Authorization
标头设置为不记名令牌(这是您通过成功登录而获得的前端访问令牌)。