身份验证和服务

Authentication and Services

我正在设计一个面向服务的应用程序,其中与数据库的通信分布在多个服务(身份验证服务、一些用于审计的服务和其他用于访问数据库和执行 CRUD 操作等)。

假设用户使用他的 ID 和密码登录应用程序,然后应用程序与身份验证服务对话并确定信息是否正确,完成后用户想要插入一些数据,现在应用程序使用另一个服务来满足用户的要求。既然用户是授权用户,其他服务如何才能使用该服务。

您的用例似乎与 SAML 解决的问题非常相似。 另请参阅 OAuth。 如果这些标准机制对您不起作用,您至少可以开发一种机制,其中:

  • 身份验证服务returns 成功登录时的令牌。这 然后调用方应用程序应该能够使用此令牌访问数据 服务和其他服务。
  • 数据服务应该能够独立验证令牌(可能使用身份验证服务)。
  • 您可能希望确保令牌仅在特定持续时间或特定调用次数内保持有效

这避免了每个后端服务都需要允许在不使用您的登录详细信息的情况下访问该应用程序。

另见:What is token based authentication?