【问题标题】:identity aspnet core microservices身份 aspnet 核心微服务
【发布时间】:2017-11-26 01:00:16
【问题描述】:

我想使用微服务架构开发应用程序。我是微服务的新手,直到现在我只使用单体方法。

我想做的是拥有一个负责用户身份验证的微服务并拥有代理 APIS 来授权请求​​。

在 IdentityServer4 文档中很好地记录了在代理 API 中授权请求,但是,当代理 api 将请求传递到最终微服务时,我如何授权此请求?

我知道,如果我正确设置了端微服务,则可以使用代理 api 中使用的相同令牌来授权端微服务的请求。但是我该如何通过呢?我是否像这样从代理 API 中的请求中获取令牌并将其传递给最终微服务?这样做是个好习惯吗?

或者阻止最终微服务仅接收来自我的代理 api 的请求并且那里没有授权逻辑是更好的选择吗?

PD:我想使用 asp.net-core

【问题讨论】:

    标签: asp.net-core microservices identityserver4


    【解决方案1】:

    我知道如果我正确设置了最终微服务,同样的标记 在代理api中使用,可以在最后授权请求 微服务。但是我该如何通过呢?我是否从 代理 API 中的请求并将其传递给端微服务 像那样?这样做是个好习惯吗?

    是的,通过JWT(或任何)来传递是很常见的,代理-->服务-->代理-->服务。

    并且每一层都可以使用 UniqueId 等额外的细节来增加令牌(例如,当请求第一次命中以跟踪交互链、断路器等时)

    如果您的应用程序由多种语言(框架)组成,这种方法确实很有帮助,因为您不需要重新实现每种语言的身份验证并让代理处理它,这对于容器架构特别有用,只需确保您让代理尽可能轻量级,你可以研究基于 Lyft 的 Envoy 代理的想法。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-03-24
      • 2017-05-23
      • 1970-01-01
      • 2019-09-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多