与IdentityServer4交谈,使用Angular SPA应用程序进行身份验证/授权,接收令牌,然后与Web API进行通信

时间:2017-05-03 03:30:21

标签: angular asp.net-core asp.net-identity identityserver4 asp.net-core-webapi

我有一个asp.net核心Web API。我目前正在使用Angular 4应用程序直接调用它。

我现在想添加身份验证和授权层。

我想通过向我的解决方案添加另一个类型的项目(严格用于auth):ASP.NET Core MVC(具有个人用户帐户),然后向其添加IdentityServer4来实现此目的。计划是使用现有的Identity表来存储用户,角色等。

一旦完成这一切,我对Angular 4 SPA应用程序或任何其他第三方通过IdentityServer应用程序进行身份验证的方式感到有些困惑。我会假设这会返回某种类型的令牌。然后继续使用该令牌调用我原来的Web API项目(即GetCustomers())。

从我做过的研究看来,我唯一需要的是ASP.NET Core中的JWT承载认证。

有人可以提供一些关于如何进行整个过程的链接/信息。 Haven没有找到任何能够完成整个过程的好视频。另外,请确认我所说的上述模式听起来是正确的。

1 个答案:

答案 0 :(得分:11)

Identity Server有不同的flows/grant types,在这种情况下,您所谈论的implicit Identity Server将返回jwt token,因此您必须存储该jwt token在客户端上webapi,然后在请求您的安全commit 678bd5ba6fc5474c4c61406768bf6cba5937c5d1 Author: thegreendroid Date: Mon Mar 27 09:36:24 2017 +1300 Commit message child_dir1_from_root/file1 | 184 +-- child_dir2_from_root/file2 | 2 +- 路由时将该令牌附加到请求标头。

enter image description here

官方samples这是非常好的起点,也可以查看他们的blog,其中包含大量有关该主题的有用信息。

关于这个主题的好视频在最近的NDC conf IdentityServer4: New & Improved for ASP.NET Core中是一个很好的视频,如果你想更深入地学习东西,你可以通过Dominick Baier结账pluralsignt course