Security 管理内部多API集中身份验证/授权的最佳方法?
我试图为不同的目的创建多个API,我指的是微服务模式。我在考虑2 API,但在未来,它将增加 我发现Oauth被推荐用于这种微服务模式。但这是我自己的API,可能是我设计过度了 (下图是一个示例)我正在考虑创建我的API,将身份验证/授权内容集中在另一个API中,然后从我的API访问它(思考CORS策略) 如果我在SPA 1中,并且我想要传递到SPA 2,我可能会检测到一个cookie来询问用户信息,向电子邮件发送验证码并自动登录。(最后一部分可以使用同一个域cookie来完成,或者可能是1 SPA从两个API获取数据) 我避免OAuth和API网关授权,因为我需要制作自己的服务器,而且可能会很昂贵 这是个好办法吗Security 管理内部多API集中身份验证/授权的最佳方法?,security,design-patterns,oauth-2.0,microservices,single-page-application,Security,Design Patterns,Oauth 2.0,Microservices,Single Page Application,我试图为不同的目的创建多个API,我指的是微服务模式。我在考虑2 API,但在未来,它将增加 我发现Oauth被推荐用于这种微服务模式。但这是我自己的API,可能是我设计过度了 (下图是一个示例)我正在考虑创建我的API,将身份验证/授权内容集中在另一个API中,然后从我的API访问它(思考CORS策略) 如果我在SPA 1中,并且我想要传递到SPA 2,我可能会检测到一个cookie来询问用户信息,向电子邮件发送验证码并自动登录。(最后一部分可以使用同一个域cookie来完成,或者可能是1 S
编辑1:“用户”是一个API,我将在其中管理所有用户配置文件、权限、角色等,以访问其他API。您可以在场景中使用JSON Web令牌(JWT)。您可以为每个资源/API创建JWT并交换它们 警告:JWT有一个弱点,重新使用被盗的JWT可能是一个糟糕的情况。您必须将JWT与另一个验证、cookie和SSL结合使用,并在短时间内保持JWT验证
在某种程度上,您拥有中央授权服务是正确的。但是写你自己的可能不是一个好主意。您是否考虑过auth0、Okta、Azure AD等服务?什么是用户?该图不清楚,您希望实现什么?@KapishM Users是一个API,我将在其中管理所有用户的配置文件、权限、角色等,并将其添加到其他API中access@ImranArshad是的,我考虑过,但是你有开源的替代方案吗?我知道Auth0或Okta可能会很昂贵,请检查Auth0中的免费层。实现自己的身份验证层可能不是一个好主意。您需要实现开放id连接协议(OIDC),除非您了解这方面的详细信息,否则将非常困难。