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网关的认证和授权的主要内容,如果未能解决你的问题,请参考以下文章