IAM服务架构

作者: 一杯咖啡的能量 | 来源:发表于2019-01-27 10:53 被阅读0次

本文描述的方案在多个SDN产品使用。IAM采用微服务架构,用于支撑多租户、无租户两种业务形态。

IAM服务关键规格

1)统一的会话管理和SSO登录。支持通过CAS协议集成内部系统(含公司内部研发的应用、外包合作开发的应用);

2)单区域支持500TPS登录性能;单区域支持1800TPS鉴权性能;

3)支持租户的基本管理能力,支持租户间通过委托代维方式实现跨租户数据共享;

4)支持SAML SP对接认证能力,可通过配置方式实现与外部SAML IdP服务器的对接认证;

5)微服务可以独立开发、演进、发布、升级;

6)提供独立的WebSite层和Service层,两者支持分区域部署,以满足更高安全诉求的客户。

根据上面的规格要求,IAM服务按下图划分微服务。

IAM微服务划分

微服务说明

  1. IAM化分成Unisession、SSOWebSite、AuthWebSite、DomainWebSite、AuthService、DomainService等微服务。

  2. xxxService为Service 服务,提供业务的原子接口,不随UI或者北向接口的变更而变更。

  3. xxxxWebSite为WebSite服务,只提供UI页面的接口,通常不具备数据库访问能力。

  4. 为了支持无租户场景,AuthService、SSO、Unisession不允许调用Domain微服务接口。即,在无租户场景不部署Domain微服务。

  5. 微服务间通信采用REST接口。

微服务功能范围

  Unisession服务提供会话生命周期的管理,并以CAS客户端身份与SSOWebSite交互;

  SSOWebSite提供SSO单点登录能力,提供基本的CAS Server能力(基于CAS2.0+协议),提供登录页面等;

  AuthWebSite提供用户管理的接口和页面资源,具体业务包括用户管理、角色管理、安全策略等能力;

  DomainWebSite提供租户的管理接口和页面,提供租户的委托配置、代维入口等业务;

  AuthService提供用户管理、认证等基本servic接口;

  DomainService提供租户的CRUD接口、租户的委托授权Service接口。

关键要素

  1. AuthFilter:会话过滤拦截,会话有效性验证。如果会话无效(包括不存在、过期等场景),跳转到Unisession的登录接口,否则继续访问业务;

  2. AuthHelper:提供根据会话获取Token,并解析token信息,并传递给各微服务使用;提供统一的鉴权过滤器拦截。

关键性能提升

  1. AuthFilter在系统的接入点进行认证拦截,提升安全性;具体实现:通过LUA脚本扩展nginx能力;

  2. AuthFilter在校验会话时直接通过LUA脚本操作redis数据库,如:通过LUA脚本校验会话合法性,提升并发性能;

  3. AuthHelper鉴权时,大量处理放到微服务本地,提升性能。

后续本系列将逐一介绍各微服务的实现方案,以及认证鉴权模型,敬请期待。

相关文章

网友评论

    本文标题:IAM服务架构

    本文链接:https://www.haomeiwen.com/subject/vgsgjqtx.html