在ASP.NET Core MVC和Angular4应用程序之间共享身份验证令牌

时间:2018-04-24 14:36:26

标签: c# angular authentication .net-core identityserver4

我们目前有一个ASP.NET Core MVC应用程序与IdentityServer4结合进行身份验证。在访问MVC应用程序之前,用户通过IdentityServer(使用HybridAndClientCredentials流程)对ADFS进行身份验证。 MVC客户端上的SignInScheme设置为值“Cookies”。

我们希望扩展我们的MVC应用程序以托管多个Angular应用程序。有时每MVC视图甚至超过1个Angular应用程序。 角度应用程序将代表用户调用单独的ASP.NET Core Web API。

我的问题是角度应用程序如何知道用户已经在MVC应用程序中进行了身份验证,检索访问令牌并代表用户调用API?

我一直在玩解决方案Scott Brady came up with,但MVC app& amp;角度应用。 Angular应用程序将尝试向identityserver进行身份验证,并期望在特定页面上进行回调。

我正在寻找一个解决方案,如何在MVC应用程序和角度应用程序之间共享accessstokens,但我被卡住了。非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

如果他们必须通过服务器端混合流程登录,那么最简单的方法就是MVC应用程序中的端点,该端点是cookie安全的,客户端应用程序可以调用该端点来获取访问令牌。

另一种方法是使用oidc-client-js并让客户端Angular应用程序获得自己的令牌。

您可以将其从客户端应用程序本身抽象出来,以便在以后需要时更改机制。碰巧我们使用服务器端和客户端流的组合,它工作正常。