微服务之间的身份验证

时间:2018-01-25 03:04:38

标签: javascript typescript authentication

我有两个相互通信的微服务(或更多)。现在,我需要在它们之间进行身份验证。

注意: 我不想要与人(用户)进行身份验证。 我不想在两个或更多微服务之间传递用户的令牌。 如果我想要的是服务器中两个或多个应用程序之间的身份验证,实际上没有与用户的交互。

我想做一些与google相似的事情,在那里你可以获得客户端ID api-key 来通过Google API进行身份验证。

我有一个主应用程序,它接收来自其他应用程序的请求以及在其他服务器上运行的自动进程,我需要验证这些应用程序是谁( client-id )以及他们是否有权执行操作

我正在研究打字稿

1 个答案:

答案 0 :(得分:1)

如果您可以控制所有微服务,那么在 共享秘密 之间进行身份验证的一种方法是,您可以使用它来加密对称算法(例如AES)一些信息(如呼叫微服务,目的地,其他信息......)。 接收方可以验证呼叫者是否合法,并且在服务之后还返回一些加密信息以供呼叫者验证。

注意:请注意,此信息应包含一些随机生成的数据(最初应优先增加加密数据中的熵,避免选择密文攻击)和时间戳(以避免重复使用) )。

另一种方法可能是,为所有微服务生成证书并使用双重身份验证加密通道连接它们,您可以获得所需的所有身份验证,以及加密通道以避免拦截。