如何管理消费者的凭证

时间:2019-04-02 11:22:50

标签: express-gateway

我对使用许多微服务和Express-Gateway进行用户身份验证的方式有一个普遍性的疑问。 我有N个微服务。这些微服务之一(简称为“用户个人资料”)将包含所有与用户个人资料相关的数据,例如电子邮件,用户名,注册日期,出生日期等。因此,这里有一些问题:

  1. 如何组织用户注册和身份验证?那么这个工作流程呢:
    • EG的API端点直接暴露给外部世界。这些端点来自此“用户个人资料”微服务。
    • 如果用户要注册或登录,则他/她向该服务发送POST请求。该请求包含所有需要的数据。
    • 为了获得随后用于所有其他请求的JWT accessToken,此微服务将请求发送到EG的Admin API并创建以下内容:
      1. 创建用户
      2. 为此用户创建jwt凭证
    • 在收到EG的回复后,“用户个人资料”微服务基于keyId和keySecret组成了JWT访问令牌
    • 将此令牌发送回用户
    • 用户现在通过传递Bearer accessToken即可访问所有受保护的路由

Here是工作流程图。

  1. 我的第二个问题是-如果上面的工作流程还可以,那么在每个用户创建之后,都会有新创建的keySecret。我需要为secretOrPublicKey中的gateway.config.yml参数设置什么?也许当生成JWT accessToken时,我需要使用某种类型的私钥,而不是凭证创建步骤中的keySecret,然后将相同的密钥放入gateway.config.yml中?

1 个答案:

答案 0 :(得分:0)

对不起,我很抱歉。

您描述的流程看起来不错,而且正是Admin API的目的。

在问题2(您无需触摸secretOrPublicKey)上,您只需设置一次即可,这永远都是一件好事,无论您创建的用户数量如何。该参数用于签名发送到客户端的JWT。保持原样,您应该没有任何问题。