Authentication 微服务-管理外部系统身份验证令牌
假设我有2个微服务(客户和支付),它们都使用外部系统的API(例如Stripe) API认证Authentication 微服务-管理外部系统身份验证令牌,authentication,microservices,Authentication,Microservices,假设我有2个微服务(客户和支付),它们都使用外部系统的API(例如Stripe) API认证 假设在使用Stripe的任何业务API之前,API使用者(在我的例子中是客户和支付服务)必须首先使用API密钥(AppId和secret)进行身份验证 Stripe提供访问令牌,必须将其传递到HTTP头中,并进入到Stripe的后续API调用中 以下是可能的方法 方法1 方法2: 方法1 通过条带帐户的多个身份验证令牌是单个的(每个服务实例) 用于管理身份验证令牌到期/续订的每个服务 方法2
- 假设在使用Stripe的任何业务API之前,API使用者(在我的例子中是客户和支付服务)必须首先使用API密钥(AppId和secret)进行身份验证
- Stripe提供访问令牌,必须将其传递到HTTP头中,并进入到Stripe的后续API调用中
- 通过条带帐户的多个身份验证令牌是单个的(每个服务实例)
- 用于管理身份验证令牌到期/续订的每个服务
- 所有服务都存在单个身份验证令牌
- 对身份验证服务的依赖
- 由单个服务管理的身份验证令牌到期/续订(身份验证服务)
想知道哪一个应该最适合微服务架构?还有其他建议吗?如果更多的服务需要API访问外部API,那么方法2的可扩展性和可维护性会稍微好一些。 但是,正确的实现是为所有外部API调用提供一个出口网关。 如果您打算花时间构建一个身份验证服务,那么您也可以全力以赴,集中您的外部API路由。 好处:
- 单个内部端点用于外部API,减少了重复
- 使用外部API为您的服务处理所有authn和authz
- 集中所有日志记录、审核、灾难恢复、负载平衡等