我有一个由angular应用程序使用的.net核心2.2API项目。为了保护API,我使用了JWT。API和SPA都是内部应用程序。
我正在使用具有资源所有者密码授权类型的IdentityServer4。我听说不推荐这样做,但每个用户都分配了不同的角色,这些角色必须放在JWT的角色声明中。这允许.net核心授权数据注释授予和限制对每个路由的访问。
我现在的流程是用户登录到SPA,SPA将凭据发送到API。API使用身份来验证凭据。在成功验证时,API向IdentityServer4发送请求以获取JWT,然后将其发送回SPA。然后将JWT保存到本地存储,以便在每次请求时使用。
我想知道我是否应该直接从IdentityServer4 (IS4可以访问身份上下文并验证un/pw)从SPA请求令牌?此外,我还忽略了流程中的任何其他主要缺陷。
发布于 2019-05-13 11:24:18
你最好把Implicit Flow和Angular一起使用。资源所有者密码授予需要您的应用程序读取用户名和密码,这存在可能会将密码暴露给攻击者的安全问题。
对于使用Implicit的实现,您可以参考this article。
此外,您还可以将授权码与PKCE Flow一起使用:
对于基于
的应用程序,不再推荐使用Implicit。在PKCE中使用授权码。
发布于 2019-05-13 20:08:37
https://stackoverflow.com/questions/56081743
复制相似问题