ASP.NET Core Spa Angular模板与IdentityServer4相结合,用于身份验证/授权

Bla*_*ell 5 asp.net asp.net-identity asp.net-core identityserver4 angular

有人可以给我一个简短的解释,说明如何使用AspNetCore Angular Spa模板将ASP.NET核心身份与ASP.NET Core Angular 4应用程序结合使用.

我完全将IdentityServer4设置为自己的项目,并使用ASP.NET身份.我使用IdentityServer4 UI创建了一些用户.我现在在数据库的AspNet表中看到这些用户.

我将ASP.NET Core Angular 4应用程序添加为IdentityServer4的客户端.这样它就可以与之交谈.我在HomeController中添加了[Authorize]属性,因此除非已登录,否则无法访问Angular 4页面.用户将自动轻触到IdentityServer4进行登录.登录后,他们会回到Angular UI.

现在我想更进一步说这个用户只能访问这个(授权).假设我向数据库中的一个用户添加了一堆声明.Angular 4中的服务调用Api来获取数据.我在这个api中的一个方法中添加了这样的属性:

[Authorize(Policy = "Employees")]
Run Code Online (Sandbox Code Playgroud)

当Angular 4服务使用http.get调用此方法时,我无法访问它.我相信这是因为Angular 4对此用户声称的内容一无所知.有没有办法合并所有这些,所以它工作或我卡在前端与oidc-client进行所有身份验证/授权.

我应该使用基于角色的授权吗?基于声明的授权?什么最适合Api和Angular前端?