微服务架构:API网关、安全、容器与日志管理
1. API网关与前端后端模式
在微服务架构应用中,用户界面需与多个Web服务交互。由于服务按业务领域设计,用户操作常跨多个领域,客户端应用需了解服务及交互方式。但在客户端应用中实现过多服务调用逻辑会导致应用臃肿,维护困难。
1.1 API网关
API网关是微服务的统一入口,位于服务与客户端应用之间。它将所有服务集中在一个端点地址后,便于实现API逻辑。请求发送到中央端点后,会路由到相应的微服务。API网关可创建应用中所有端点地址的中央注册表,并按需对请求和响应数据进行中间操作。相关技术有轻量级ASP.NET Core应用Ocelot,云服务可选择Azure API管理。
1.2 前端后端模式
当有多个客户端且各有不同API交互需求时,可采用前端后端模式。此模式需为目标客户端应用提供专门配置的网关。例如,医疗应用若有Web和移动客户端访问,需实现两个网关,每个网关暴露特定API端点供相关客户端使用。
2. 令牌安全
安全是应用开发的关键。在API开发中,无法创建会话或维护状态,用户每次请求安全API端点都需进行身份验证。
2.1 身份验证与令牌生成
使用ASP.NET Core的Identity Core认证库,支持多种认证方法。用户输入用户名和密码进行初始认证,信息验证通过后,获取用户信息(声明)并组合成编码字符串(令牌),在API响应中返回。客户端应用需存储此令牌供后续使用。
2.2 令牌验证
后续API调用需包含令牌,API接收请求时会检查请求头中的令