Microservices - Security Architecture
|Word Count:163|Reading Time:1mins
Option 1
Access Token 为透明令牌,API 网关需要去授权服务器集中校验并兑换成 JWT(自校验),然后再传递到后续的微服务
缺点:授权服务器压力比较大
Option 2
全链路无状态,API 网关与授权服务器约定一致的 secret,API 网关可以直接解密 JWT(对称/非对称)
缺点:缺少集中校验 Token 的环节,无法通过授权服务器及时吊销,只能等 Token 自然过期
Option 3
生产环境最为常用:原理与 Option 1 类似,只是增加了 Redis 缓存
Reference
Author: zhongmingmao
Copyright Notice: All articles on this blog are licensed under CC BY-NC-SA 4.0 unless otherwise stated.
Cloud NativeArchitectureMicroservicesSpringSecurityMicroservices GovernanceOauth2Spring SecuritySpring Security OAuth2
Related Articles
2022-09-20
Oauth2 - Github
Module 模块 描述 spring-security-oauth2-core OAuth2 授权框架 + OIDC 核心数据结构及接口 spring-security-oauth2-jose 支持 JOSE 协议组JWT: JSON Web TokenJWS: JSON Web SignatureJWE: JSON Web EncryptionJWK: JSON Web Key spring-security-oauth2-client 支持 OAuth2 和 OIDC 的客户端 Register application callback: /login/oauth2/code/github Config callback template: {baseUrl}/login/oauth2/code/{registrationId} 12345678910server: port: 9000spring: security: oauth2: client: ...

2022-09-17
Oauth2 - JWT
Token Type JWT 资源服务器自解释和自校验,无需再跟授权服务器交互 结构 验签 issue + audience issue:令牌签发人audience:目标接收人 CodeAuthorization ServerMaven12345678910111213141516171819<dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-security</artifactId> </dependency> ...

2022-09-14
Oauth2 - Authorization Code Flow
Authorization ServerMaven12345678910111213141516171819<dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-security</artifactId> </dependency> <dependency> <groupId>org.springframework.security.oauth</groupId> <artif...

2022-09-13
Spring Security OAuth2 - Authorization Server
授权服务器 Introspection Endpoint:校验 Access Token 的合法性 Spring Security OAuth2 架构 Authorization flowAuthorization Code Flow Maven12345678<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-security</artifactId></dependency><dependency> <groupId>org.springframework.security.oauth</groupId> <artifactId>spring-security-oauth2</artifactId></dependency> API1234567@Data@Builder@FieldDefaults(level = ...

2022-09-12
Oauth2 - Overview
问题域 开放系统间授权 账号密码 不安全 万能钥匙 适用于公司内部 特殊令牌 核心挑战是令牌的生命周期管理 微服务安全 核心是 Token OAuth2最简向导 正式定义 Token 是核心,可类比为仆从钥匙(给应用授予有限的访问权限,让应用代表用户去访问用户数据) 优劣主要优势 OAuth2 使用代理授权的方式解决密码共享的反模式问题 主要劣势 OAuth2 不是认证协议,而是一个代理授权框架 OAuth2 提供一个宽泛的协议框架,具体安全场景需要定制 主要角色 主要术语 Token 类型 常见误区 典型 Flow https://www.rfc-editor.org/rfc/rfc6749 Authorization Code Flow 最复杂 + 最安全 + 应用最广泛 Implicit Grant Flow 减少了授权码兑换的过程(通过 Script 解析 Access Token),适用于单页应用(无后端) Resource Owner Password Credentials Flow 适用于公司内部应用等风险可控的场景 Client ...
2022-09-25
Apollo - HA + Monitoring
Architecture Deployment HA Scene Influence Downgrade Reason 某台 Config Service 下线 无影响 Config Service 无状态 所有 Config Service 下线 Client 无法获取最新配置 Client 重启可获取本地缓存配置 某台 Admin Service 下线 无影响 Admin Service 无状态 所有 Admin Service 下线 用户无法管理配置 某台 Portal 下线 无影响 Portal 无状态 所有 Portal 下线 用户无法管理配置 数据库宕机 用户无法管理配置 Config Service 开启缓存Client 不受影响 Monitoring CAT + Prometheus Reference 微服务架构实战 160 讲
Announcement
Things are always unexpected!








