API网关的认证和授权

Posted

技术标签:

【中文标题】API网关的认证和授权【英文标题】:Authentication and Authorization for API Gateway 【发布时间】:2020-01-12 21:01:08 【问题描述】:

我正在使用微服务在 springboot 中构建 Api 网关,并希望实现 API 网关的所有功能/原理

    身份验证/授权 路由(可以使用 spirng 云网关进行路由) 负载平衡(Netflix 功能区) 缓存管理 速率限制 API 性能监控

我已经探索过使用 OAuth2 实现身份验证/授权,但找不到合适的解决方案。

寻找实现这些功能的建议或示例。

通过https://github.com/TechPrimers/spring-security-oauth-example,很好

【问题讨论】:

【参考方案1】:

您可以参考此repo 来满足您的大部分需求。我使用 Spring 安全性添加了安全性。 Zuul 用于网关服务。项目还包括用于服务发现的 Eureka。使用这个 repo 实现缓存应该相当简单。您还可以在我的GitHub profile 中找到其他存储库,这将帮助您使用 spring 实现剩余的功能。

【讨论】:

感谢分享代码,看起来不错。我如何或从哪里开始测试?来自 localhost:8762/** 的所有 url 都是未经授权的。我猜流程是从网关开始的,你写过关于 auth-service 的文档吗? 很遗憾,我还没有编写任何文档,但我期待尽快完成。到目前为止,您使用 localhost:8762/auth 和请求正文 username: "user", password: "password" 登录,这将返回带有 JWT 令牌的用户对象。可以通过使用生成的令牌设置授权标头来访问所有后续受保护的 URL。如果您需要更多帮助,您可以直接 ping。随意分叉代码并做出贡献。 谢谢,它有帮助!,我将路由更改为 StudentController 作为路由: course-service: path: /v1/students in gateway 嗨@Nasruddin 我看到你的项目很棒,它涵盖了spring-boot微服务的基本框架,如果你使用Spring API Gateway 而不是使用Zuul ,你能分享一些链接或项目框架吗?如果您可以指导,我将其替换为 or。 嗨@ParthTiwari 我已经这样做了,但还没有推送到我的 GitHub 存储库。很快就会做。顺便说一句,感谢您的评论:)

以上是关于API网关的认证和授权的主要内容,如果未能解决你的问题,请参考以下文章

微服务架构认证鉴权方案

微服务架构中的认证授权设计

API网关和API微服务之间的相互认证?

OAuth 2.0实现分布式认证授权-网关搭建

API网关和微服务认证

牛棚资讯|全程托管化繁为简,京东云上线API网关服务