使用 Angular SPA 应用程序与 IdentityServer4 通信以接收令牌,然后与 Web API 通信 authentication/authorization

Talking to IdentityServer4 with an Angular SPA application for authentication/authorization receiving a token then talking to Web API

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

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

我想通过向我的解决方案添加类型为 ASP.NET 核心 MVC(带有个人用户帐户)的另一个项目(严格用于身份验证),然后向其中添加 IdentityServer4 来实现此目的。计划是使用现有的身份表来存储用户、角色等

完成所有设置后,我对我的 Angular 4 SPA 应用程序或任何其他第三方如何通过 IdentityServer 应用程序进行身份验证感到有点困惑。我会假设这 returns 是某种标记。然后继续使用该令牌调用我的原始 Web API 项目(即 GetCustomers())。

从我所做的研究看来,我唯一需要的另一件事是 ASP.NET Core 中的 JWT 持有者身份验证。

有人可以向我提供有关如何完成整个过程的一些 links/information 信息吗?还没有找到任何贯穿整个过程的好视频。另外,请确认我所说的上述模式听起来正确。

Identity Server 有不同的 flows/grant types,你说的那个叫 implicit 那么 Identity Server 会 return 一个 jwt token 所以您必须将 jwt token 存储在客户端上,然后在请求安全 webapi 路由时附加该令牌以请求 header。

官方 samples it is very good starting point also checkout their blog 有很多涵盖该主题的有用信息。

在这里谈论关于该主题的好视频是 Dominick Baier

最近的 NDC conf IdentityServer4: New & Improved for ASP.NET Core also if you want to learn stuff more deeply you can checkout this pluralsignt course 中的一个好视频