我正在开发的一个项目包含一个Web API,一个单独的页面反应应用程序和一个移动应用程序。从每个客户端,用户需要提供他们的用户名和密码才能访问Web API的受保护部分。我设置了Identity Server 4身份验证服务器,该服务器使用我自己的IProfileService和IResourceOwnerPasswordValidator接口,因为我使用的是ASP.NET Core Identity。这允许Identity Server访问ASP.NET Core Identity UserManager,RoleManager和SignInManagers以确定提供的用户名和密码是否有效。Identity Server 4和ASP.NET Core Identity
我一直在使用的授予类型是“ResourceOwnerPassword”类型。我还没有完全将授权集成到单页面应用程序中,但是我可以将用户的用户名和密码传递给身份服务器,并且会生成一个令牌,以便将其添加到API请求的标题中。
我已经做了关于Identity Server和相关技术的更多研究,因为我对所有这些都是新手。似乎不希望使用ResourceOwnerPassword授权类型。从我可以告诉它看起来应该使用隐式授权类型,但我不完全理解用户名和密码如何适应该流。有没有人有任何洞察到我应该使用哪种类型?我所描述的系统只能使用ResourceOwnerPassword授权类型吗?