我正在尝试设计一个全新的项目,它将拥有多个服务(提供数据)和 web 应用程序(提供 HTML)。我已经了解了微服务,它们看起来很适合。
问题在于如何实现 SSO(单点登录)。我希望用户只需认证一次就可以访问所有不同的服务和应用程序。
我可以想到几种方法:
添加身份认证服务和应用程序。任何具有受保护资源的服务都会与身份认证服务通信,以确保其凭据有效。如果无效,它将重定向用户进行身份验证。
使用像 OpenID 这样的 Web 标准,并让每个服务处理自己的身份验证。这意味着用户需要单独授权每个服务/应用程序,但之后将是 SSO。
如果有其他想法,我很乐意听取。如果特定的 PaaS(例如 Heroku)有专有解决方案,那也可以接受。