微服务架构下访问控制需分层设计:API网关统一拦截并鉴权(JWT/OAuth2、路径策略、动态权限校验);服务间通信强制mTLS双向认证,配合证书自动轮换;服务内通过RBAC+ABAC混合授权实现资源级细粒度控制;注册与配置中心须独立加固鉴权及敏感信息加密。
微服务架构下的服务器访问控制,不是配一个开关就能生效的事,而是要分层、分角色、分通信链路来设计和落地。核心思路是:入口统一拦截、服务间可信通信、资源级细粒度校验。
所有外部请求必须经过网关,这是第一道防线。网关不只做路由和限流,更要承担身份鉴权与粗粒度权限裁决。
/admin/**只允许ROLE_ADMIN角色内部服务调用不能依赖网络隔离,默认视为不可信环境,必须加密+双向认证。
dubbo.protocol.ssl=true,gRPC需设置ChannelCredentials
网关放行后,具体业务操作是否允许执行,由服务自身判断——这才是真正的权限落地点。
@PreAuthorize("hasRole('ROLE_EDITOR')")控制控制器方法,角色信息从认证服务同步或本地缓存@PreAuthorize("@authService.canDeleteOrder(#id, #principal.username)")
注册中心(ZooKeeper/Nacos)和配置中心(Apollo/Nacos Config)本身也是攻击面,必须单独设防。
world:anyone权限,仅允许服务节点IP白名单读写nacos.core.auth.enabled=true),对接LDAP或内置用户体系,禁止默认账号(nacos/nacos)直接使用