微服务认证与授权:文档索引
📦 GitHub: https://github.com/geekchow/micro-service-auth
讲解并逐步演示微服务系统中的认证与授权(authn/authz),配套一个示例 mobile-banking PoC。
一段话讲清整体故事
客户端通过Keycloak(IdP)登录并拿到一个 JWT。它经由Kong(网关 / PEP)调用银行 API。Kong先用Keycloak对令牌做内省(introspection),再询问OPA(PDP)该调用方是否被允许执行此操作。若允许,Kong将请求转发给banking-api-service(资源服务器),后者在返回数据前会独立地再次校验该 JWT。alice只能读取自己的账户;ops-admin可以读取任意账户。
阅读地图
第一部分 — 基础
- 01 — 概念 — 认证/授权、IdP、PEP、PDP、JWT(从这里开始)
- 02 — 本项目架构 — 概念如何映射到组件
- 03 — 请求流程 — 端到端的完整故事
- 04 — 本地演示指南 — 跑起来,亲眼看它工作
第二部分 — 组件深入
- 05 — 组件巡览 — 一段话概括全部五个组件
- 06 — Keycloak / IdP — 签发令牌的身份提供方
- 07 — Kong — 网关 / PEP 及其 OPA 插件
- 08 — OPA — 策略决策点(PDP)及其 Rego 策略
- 09 — banking-api-service — 会再次校验的资源服务器
- 10 — identity-bootstrap-service — 演示用户的初始化
第三部分 — 令牌机制
- 11 — JWT 签名、校验与内省 — 签名、校验、内省
- 12 — JWKS 深入解析 — JWK/JWKS 以及如何按
kid选择密钥 - 13 — 访问令牌与刷新令牌的生命周期 — 访问/刷新令牌与续期
第四部分 — 参考
- 14 — 请求与响应细节 — 线级(wire-level)的请求头、请求体与声明
从哪里开始
- 初次接触该主题 → 01 — 概念
- 想快速看懂系统 → 02 — 架构 + 03 — 请求流程 + 04 — 演示指南
- 需要线级的报文细节 → 14 — 请求与响应细节
