【发布时间】:2018-10-04 20:57:44
【问题描述】:
我们目前有一个 ASP.NET Core MVC 应用程序结合 IdentityServer4 进行身份验证。用户在有权访问 MVC 应用程序之前通过 IdentityServer(使用 HybridAndClientCredentials 流)向 ADFS 进行身份验证。 MVC 客户端上的 SignInScheme 设置为值“Cookies”。
我们希望扩展我们的 MVC 应用程序以托管多个 Angular 应用程序。有时每个 MVC 视图甚至超过 1 个 Angular 应用程序。 Angular 应用程序将代表用户调用单独的 ASP.NET Core Web API。
我的问题是 Angular 应用程序如何知道用户已经在 MVC 应用程序中进行了身份验证、检索访问令牌并代表用户调用 API?
我一直在使用解决方案 Scott Brady came up with,但 MVC 应用程序和 Angular 应用程序之间似乎没有集成。 Angular 应用程序将尝试向身份服务器进行身份验证,并期望在特定页面上进行回调。
我正在寻找如何在 MVC 应用程序和 Angular 应用程序之间共享访问令牌的解决方案,但我被卡住了。非常感谢任何帮助。
【问题讨论】:
-
如果我理解正确,您的 Angular 前端连接到由 ASP.NET Core 提供的后端 REST API。它是否正确?如果是这样,后端如何给你令牌?它设置了cookie吗?还是在响应头中提供?
-
@AndrewRoth 是和否;我有一个 MVC 应用程序正在调用 api(都是 aspnetcore),我有多个角度应用程序代表用户调用 web api。我希望用户在 aspnetcore mvc 应用程序上进行身份验证并与 Angular 应用程序共享其身份/声明,以便他们可以与 api 共享这些声明,而无需任何额外的回调客户端。我希望这个解释有所帮助。
标签: c# angular authentication .net-core identityserver4