问题描述
使用ASP.NET Core 5,Angular 10和Identity Server 4,我创建了4个应用程序:
- 使用Identity Server 4进行身份验证;
- Asp.Net Core 5 API
- Asp.Net Core 5 MVC
- Angular 10 SPA
在Angular应用程序(4)上,我正在使用OIDC Client JS和代码授予类型。
Asp.Net Core 5 MVC应用程序(3)也需要访问API ...
我正在使用Identity Model,但是在MVC应用程序中应该使用哪种授权类型?
代码,就像在Angular应用程序中一样(这可能吗?)? 客户凭证?
解决方法
-
如果您在MVC应用程序上登录用户,并且想要代表用户调用API,请使用
Code
流。 在这种情况下,MVC和角度应用程序之间的唯一区别是Asp.Net Core 5 MVC
是机密客户端,您可以使用Code
流。但是Angular 10 SPA
客户是公共客户,您应该编码+ PKCE。 尽管建议在两种情况下都使用PKCE。 -
如果您只是通过MVC和作为应用程序本身而不是代表用户来调用API,则可以使用“客户端凭据”流程。此流程适用于服务器到服务器方案,并且很安全。 在这种情况下,您也应该对MVC应用进行授权。