SSO方案
SSO介绍
单点登录(SSO)是一种身份验证解决方案,可让用户通过一次性用户身份验证登录多个应用程序和网站。这意味着用户只需输入一次用户名和密码,即可访问所有相互信任的系统,而无需在每个系统中单独登录。
SSO 的主要优点
- 用户体验改进:用户只需记住一个用户名和密码,减少了重复登录的麻烦。
- 安全性增强:通过集中管理认证信息,可以更好地控制和保护用户数据,降低密码泄露的风险。
- 效率提升:减少了因多次登录导致的时间浪费,提高了工作效率。
安全风险
单点故障风险
如果 SSO 系统出现故障,所有依赖于该系统的应用程序或服务将无法使用,可能导致业务中断,影响用户体验和组织的正常运行。
应对措施:
- 部署高可用架构(如负载均衡、主备机制)确保 SSO 系统的稳定性。
- 定期备份系统配置和数据,并制定全面的故障恢复计划(DRP)。
- 在系统维护或故障期间,提供备用的应急认证机制,保障关键业务的持续运行。
系统被攻陷的风险
如果 SSO 系统被攻击或黑客入侵,攻击者可能获得对所有依赖该系统的应用程序和资源的访问权限,带来巨大的安全威胁。
应对措施:
- 确保 SSO 系统的安全性,通过使用最新的安全协议(如 TLS 1.3)和定期安全审计减少漏洞。
- 实现网络隔离和分区,限制对 SSO 系统的访问。
- 监控系统日志和用户行为,设置入侵检测系统(IDS)以识别异常活动。
用户凭证泄露风险
SSO 的最大风险在于,如果用户的凭证(如用户名和密码)被泄露,攻击者可能获得对网络上全部或大部分应用程序和资源的访问权限,造成广泛的影响。
应对措施:
- 密码策略:要求用户创建强密码,定期更新,并使用加密算法安全存储密码(如 PBKDF2、bcrypt)。
- 多因素身份验证 (MFA):将 2FA 或 MFA 融入 SSO 实施流程,要求用户提供额外的身份验证因素(如短信验证码、OTP、人脸识别等)。这可以有效减少凭证泄露导致的风险。
- 登录监控:实时监控登录行为,检测异常活动(如短时间内多个失败的登录尝试)并采取相应措施。
关键概念
在 SSO(单点登录)系统中,身份提供者(Identity Provider,IdP)和服务提供者(Service Provider,SP)是两个关键角色。SSO 依赖于身份提供者(Identity Provider,IdP)和服务提供者(Service Provider,SP)之间的信任关系。
-
身份提供者(Identity Provider, IdP):
定义:IdP 是负责验证用户身份并提供身份信息的实体。它管理用户的认证信息(如用户名、密码、令牌等)并提供这些信息给信任它的服务提供者。
例子:
- 企业内部 IdP:如 Microsoft Active Directory Federation Services(AD FS),它为企业内部应用提供单点登录服务。
- 第三方 IdP:如 南网账号、微信、Okta 等,它们为各种第三方应用提供认证服务。
-
服务提供者(Service Provider, SP):
定义:SP 是提供某种服务或应用的实体,它依赖 IdP 来验证用户身份。SP 信任 IdP 提供的身份验证信息,并根据这些信息决定用户的访问权限。
例子:
- 企业应用:如企业的邮件系统、CRM(客户关系管理)系统、ERP(企业资源计划)系统等,这些系统通过企业内部的 IdP 提供单点登录功能。
- 在线服务:如 网盘、小红书、QQ音乐 等,这些在线服务可以通过第三方 IdP(如 微信 或 支付宝)提供单点登录功能。
SSO 实现原理
总体架构
- **应用系统(SP):**需要登录的系统
- **SSO客户端:**登录、退出(独立jar包给应用系统引用)
- SSO服务端(IdP):
- 登录服务:处理用户登录请求。
- 登录状态:提供登录状态校验和登录信息查询服务。
- 退出服务:处理用户注销。
- **数据库:**存储用户账户信息
- **缓存:**存储用户的登录状态信息
登录流程
Token 方式
- 用户访问应用系统(SP):
- 应用系统检查用户是否已经登录。
- 如果未登录,重定向到SSO服务端。
- SSO服务端处理登录:
- 用户提供用户名和密码,服务端校验信息。
- 校验通过,在缓存中存储用户的登录状态,并与应用系统分享专用Token(每个应用系统使用不同 Token)
- 应用系统获取Token:
- 用户回转到应用系统,应用通过 Token 验证用户身份。
- 验证成功,从 SSO 服务端获取用户信息,用户成功登录应用系统。
Authorization Code 方式
- 用户访问应用系统(SP):
- 应用系统检查用户是否已经登录。
- 如果未登录,重定向到 SSO 服务端,同时传送返回地址。
- SSO服务端处理登录:
- 用户提供用户名和密码,服务端校验信息。
- 校验通过,服务端产生一次性的 Authorization Code,并重定向到应用系统。
- 应用系统使用Authorization Code:
- 应用通过与SSO服务端交互,使用Authorization Code换取用户信息和证书。
- 应用系统根据证书验证用户身份,存储用户状态,实现自行管理。
比较和优缺点
Token 方式
- 优点:
- 实现简单,提供直接的状态分享,进一步降低应用系统的实现难度。
- 通过缓存共享,能够提高性能。
- 易于实现全局管理,例如全局注销功能。
- 缺点:
- Token在缓存中的精确管理需要进一步思考,存在失效和解联的处理复杂性。
- 应用系统依赖SSO服务端较强,灵活性相对较低。
Authorization Code 方式
- 优点:
- 提供更高的安全性,通过一次性Code交换资料,优化了信息传输和中间人攻击防护。
- 应用系统自行管理用户状态,降低了对SSO服务端的依赖。
- 对现有应用系统的改造较少,便于集成。
- 缺点:
- 实现复杂,需要额外设计通信流程,并依赖于SSO服务端的信任和接口通过。
- 无法直接实现全局注销功能,需要额外的设计支持。
注销流程
Token 方式
- 用户访问应用系统的退出功能:
- 应用系统向SSO服务端发起退出请求,提供应用系统中用户的Token。
- SSO服务端处理退出:
- 根据Token在缓存中删除用户的登录状态以及其他相关的Token。
- 应用系统退出处理:
- 下次用户访问其他应用系统时,应用系统向SSO服务端发送Token校验请求时,将收到无效响应,因为过程中所有相关Token已被删除。
Authorization Code 方式
- 用户访问应用系统的退出功能:
- 应用系统向SSO服务端发起退出请求,提供用户的唯一身份标识。
- SSO服务端处理退出:
- 在SSO服务端删除用户相关的登录状态。
- 通知所有应用系统(SP),订阅的用户相关退出信息。
- 应用系统退出处理:
- 应用系统接收到SSO服务端的通知后,删除本地存储的用户相关的登录状态。
- 用户将不再能使用其他应用系统的登录账户。
常见单点登录方案
共享 Session/Cookie
通过在多个应用间共享用户的认证 Session 或 Cookie 来实现单点登录。
优点
- 实现简单,适合同域或子域下的多个应用。
- 性能较好,无需频繁的外部认证请求。
缺点
- 跨域实现复杂,可能需要引入额外的代理或共享存储。
- 安全性较低,容易受到 Session 劫持和 XSS 攻击。
适用场景
同一个组织内部、同一域或子域下的简单应用。
OAuth
开放授权协议,用户通过授权服务器授予客户端访问资源的权限(通常是一个 Access Token)。
优点
- 支持跨域和第三方授权,适合互联网应用。
- 丰富的权限控制机制,可以细化授权范围。
缺点
- 主要用于授权,而非认证;实现 SSO 时需要扩展(如结合 OpenID Connect)。
- 安全性依赖于 Token 的保护和管理。
适用场景
第三方登录、跨组织的资源访问控制。
SAML (Security Assertion Markup Language)
基于 XML 的协议,使用安全断言在身份提供方(IdP)和服务提供方(SP)之间传递用户身份信息。
优点
- 广泛用于企业环境,支持复杂的身份管理需求。
- 跨平台支持好,适合异构系统。
缺点
- 实现复杂,依赖 XML,性能较差。
- 配置繁琐,灵活性不如现代协议(如 OIDC)。
适用场景
企业内部、跨企业系统集成。
OIDC (OpenID Connect)
基于 OAuth 2.0 的认证协议,扩展了 OAuth,提供用户身份的验证和基础信息获取。
优点
- 轻量级,基于 JSON 和 REST API。
- 广泛支持,适合现代 Web 应用和移动端。
- 提供认证功能(ID Token)和授权功能(Access Token)。
缺点
- 需要依赖 OAuth 的基础实现,可能增加初期学习成本。
- 对较旧的系统支持不如 SAML。
适用场景
现代 Web 应用、移动端、跨平台统一登录。
LDAP
轻量目录访问协议,用于集中管理用户信息和认证。
优点
- 适合大规模用户目录的集中管理。
- 可与多种身份认证机制结合。
缺点
- 主要是用户信息管理协议,不是完整的 SSO 方案。
- 需要与其他协议(如 Kerberos)结合才能实现 SSO。
适用场景
企业内部,用户目录统一管理。
Kerberos
基于票据的认证协议,用户通过 KDC(Key Distribution Center)获取访问服务的票据。
优点
- 安全性高,避免密码传输。
- 适合复杂的企业网络和分布式系统。
缺点
- 部署复杂,依赖时间同步。
- 不适合高延迟或不稳定的网络环境。
适用场景
企业内部,安全性要求高的场景(如银行、政府)。
总结对比
方案 | 跨域支持 | 安全性 | 复杂度 | 性能 | 适用场景 |
---|---|---|---|---|---|
共享Session/Cookie | 较差 | 较低 | 低 | 高 | 同域应用 |
OAuth | 较好 | 中高 | 中 | 中 | 第三方登录、授权控制 |
SAML | 较好 | 高 | 高 | 较低 | 企业集成 |
OIDC | 优秀 | 中高 | 中 | 较高 | 现代应用 |
LDAP | 一般 | 中 | 中 | 中 | 用户目录统一管理 |
Kerberos | 较差 | 高 | 高 | 较高 | 企业内高安全性需求 |
使用已有成熟方案
适用场景
- 快速启动:项目需要快速部署且时间紧迫。
- 广泛支持:需要支持多种应用和服务的集成。
- 企业级支持:需要企业级的技术支持和维护。
商业解决方案
Authing.cn
https://docs.authing.cn/v2/concepts/
Authing 是一家国内的身份认证服务提供商,支持多种标准认证协议(如 OIDC、OAuth 2.0、SAML、LDAP 等),适用于多平台的应用集成。它不仅提供强大的身份认证功能,还支持用户管理、权限控制和多因素认证(MFA)。
可以将任意平台的应用接入,支持多种标准认证协议,提供表单代填功能实现老项目接入。支持私有化部署。
优势
- 文档比较丰富
- 提供低代码集成方案,支持快速启动项目。
- 支持表单代填功能,方便老旧系统的接入。
- 提供 SaaS 和私有化部署模式,灵活性强。
- 行业案例多,技术成熟。
技术栈
后端:
- Node.js 14.19.3, Nest.js 6.7.2
- Java8、Java11, Spring-Boot 2.5.15
- Golang 1.21, Gin 1.9.1
前端:React.js 16.13.1
百度智能云 IDaaS
https://cloud.baidu.com/doc/IDaaS/index.html
百度智能云身份管理服务(Identity as a Service,简称 IDaaS),是百度智能云为解决企业客户复杂身份管理诉求,提供的统一身份、单点登录、数据同步、集中权限、应用管理等的服务。 IDaaS主要用于融合本地或云端部署的企业内部IT系统(如OA)、业务系统(如ERP、CRM等),或是当前越来越多的云端SaaS应用。
优势
- 简单易用:支持业界标准的身份认证、单点登录等协议,打通身份系统只需简单的配置,无需额外研发。
- 低成本:IDaaS本身为SaaS化的云端服务,无需进行单独部署、实施和运维,开箱即用,可有效降低企业的运维成本。
- 开放性:IDaaS本着以API-first的设计理念,为客户提供了完整的OpenAPI,可有效赋能企业客户的身份系统构建及集成。
SSO360
SSO360致力于为企业、机构、开发者提供基于云端的身份认证和治理、动态访问控制、以及权限管理的自动化、可视化、可追溯。以数字链接一切的理念,打通人与数字世界的壁垒,帮助构建一站式数字化安全入口,重新定义数字安全边界,赋能用户全场景下的身份治理与数字化服务。
作为国内一体化零信任安全的领导者,派拉软件拥有目前国内最完整的零信任产品体系,从以身份为中心的动态访问控制,逐步延伸到联动终端管理、SDP、微分段、动态授权、API网关、用户行为分析、数据访问安全等为一体的端到端零信任安全解决方案,助力企业应对更加复杂、多变的内外部安全威胁,为企业强化端到端的安全防护能力,已成功为金融、制造、医药、教育、零售、政府、地产、科研院所等各大行业的1400余家企业和机构提供了极致体验的"一体化零信任安全"专业服务。
优势
- 国内一体化零信任安全领域的领导者。拥有国内最完整的零信任产品体系。
- 提供以身份为中心的动态访问控制。
- 产品功能延伸至联动终端管理、SDP、微分段、动态授权、API 网关、用户行为分析、数据访问安全等。
- 帮助企业应对复杂、多变的内外部安全威胁。提供端到端零信任安全解决方案。加强企业端到端安全防护能力。
- 为金融、制造、医药、教育、零售、政府、地产、科研院所等行业的 1400 余家企业提供专业服务。
- 提供极致体验的"一体化零信任安全"解决方案。
美擎统一认证访问管理IAM
https://www.meicloud.com/miot/product-detail/461446284550144.html
统一认证访问管理IAM是美擎全新一代的身份安全认证产品,集单点登录、统一认证、双源认证、多因素认证、安全防暴力、智能风控为一体的身份访问控制平台。
优势
- 认证集成简单,支持CAS、OAuth2、SAML2、OIDC等标准协议,支持LTPA互信。同时对三方认证可快速集成企业微信、微信、钉钉、飞书等。
- 提供完整的统一认证接口,对非WEB的系统支持全能力认证。
- 高安全,在安全防暴力、只能风控、多因素认证的加持下,实现认证的高安全。
- 接入方便,支持AD、LDAP、API接口等多种方式实现双源认证。
应用场景
- 单点认证:集成下游各BS业务系统,实现权限的单点认证、单点登出,对移动APP、客户端产品实现统一认证。
- 三方认证集成:对企业使用的企微、钉钉、飞书、微信进行一键集成,同时支持与其他SSO进行LTPA互信或标准的CAS、OAuth2、OIDC协议的一键集成。
- 安全防护:通过账号、IP的安全防爆,多因素的认证实现认证的安全管控。
宁盾
https://www.nington.com/solution-iim/
通过宁盾统一身份中台方案,对用户源、设备、终端、网络进行账号整合,用户只需用一个账号密码,即可登录应用、设备、终端、网络。
优势
- 集成老旧系统和终端设备能力较强。
- 提供企业级技术支持,适合传统行业的应用场景。
- 支持私有化部署,符合国内企业对数据合规性的需求。
Okta
Okta 是国际上广泛使用的身份认证和访问管理平台之一,为企业提供全面的 SSO 解决方案。它支持现代 Web 应用、移动端应用和跨平台集成。
优势
- 提供丰富的 API 和开发者工具,适合复杂场景的集成需求。
- 强大的多因素认证(MFA)支持,包括 Google Authenticator、YubiKey 等。
- 云服务为主,同时支持私有化部署(需额外费用)。
- 提供 SLA 支持,适合对服务质量要求高的场景。
Auth0
Auth0 是一个专注于开发者体验的身份认证和授权平台。作为 Okta 的子品牌,它继承了丰富的功能和灵活性,支持多种认证协议和集成场景。
优势
- 规则引擎支持高自由度的身份验证逻辑定制。
- 提供强大的开发者工具和扩展能力。
- 适合现代 Web 应用和移动端场景。
- 提供多种多因素认证(MFA)选项,增强安全性。
Entrust IDaaS
https://www.entrust.cn/products/iam/identity-as-a-service
Entrust 是一家领先的数字安全公司,致力于提供全面的身份验证、数据加密和网络安全解决方案。其产品帮助企业和组织在日益复杂的网络环境中确保数字化操作的安全性,保护关键数据和用户身份信息。
Entrust 的 IDaaS (Identity as a Service) 是一种基于云的身份验证和访问管理解决方案。它旨在通过提供简化的身份管理功能,帮助组织提高安全性并改善用户体验。作为一个全面的解决方案,它为员工、消费者和公民提供了可信身份,使他们能够安全地与您的组织互动。 借助智能用户身份验证、授权和访问控制功能,身份即服务解决方案使您能够实现零信任、促进合规并保护敏感数据。
优势
- **企业级安全:**借助多因素认证和动态风险评估,降低身份验证过程中的潜在威胁。
- **易用性:**提供简单的用户界面和管理工具,降低 IT 管理员的工作负担。
- **全球支持:**Entrust 在身份管理领域具有多年经验,能够为不同地区和行业提供可靠的解决方案。
开源方案
Keycloak
Keycloak 是一款功能强大的开源身份和访问管理解决方案,由 Red Hat 社区维护。它支持用户身份验证、用户管理、单点登录、细粒度权限控制等功能。
- **支持协议:**OpenID Connect, OAuth 2.0, SAML 2.0
- 功能特点 :
- 提供用户联盟(User Federation)功能,可与现有的 LDAP 或 Active Directory 集成。
- 支持多因素认证(MFA)。
- 丰富的扩展能力,通过自定义 SPI(Service Provider Interface)扩展功能。
- 优势 :
- 老牌开源项目,成熟稳定。
- 社区活跃,文档齐全。
- 提供基于 Docker 的快速部署选项。
- 支持多种语言的 SDK。
- 适用场景:企业级应用、需要高度定制化的场景。
- 官网 :https://www.keycloak.org
- 项目主页:https://github.com/keycloak/keycloak
- 主要技术栈:Java
- GitHub Star:24k
Authelia
Authelia 是一款开源的身份验证和访问管理服务器,专为现代 Web 应用设计,支持双因素认证和访问策略管理。
- **支持协议:**OpenID Connect, OAuth 2.0
- 功能特点 :
- 支持双因素认证(2FA)。
- 提供易于部署的 Docker 镜像。
- 灵活的策略管理,基于用户组、设备、地理位置等条件设置访问控制。
- 作为反向代理网关(如 NGINX、Traefik)的扩展使用,不直接连接到应用程序后端
- 优势 :
- 轻量化,性能优秀、占用资源非常低。
- 社区活跃,文档丰富。
- 安全性强,与反向代理协作,防止来自网络边缘的攻击,从而保护应用程序的访问。
- 适用场景:小型团队,简单的身份管理需求。
- 官网 :https://www.authelia.com
- 项目主页:https://github.com/authelia/authelia
- 主要技术栈:Go
- GitHub Star:22k
Logto
Logto 是一个现代化的开源身份认证和单点登录(SSO)平台,专注于为现代 Web 应用和移动端应用提供简单而强大的身份管理能力。
- 支持协议:OIDC、OAuth 2.0、SAML 2.0。
- 功能特点 :
- 支持多租户环境下的身份管理。
- 提供用户管理、权限管理和访问日志。
- 提供开发者友好的 API 和 SDK,易于集成到现有应用中。
- 支持SaaS云服务和私有化部署。
- 优势 :
- 文档完善,开发者体验良好。
- 提供轻量级的 Docker 部署方式。
- 提供多种开箱即用的 connectors,包括微信、支付宝、腾讯/阿里云等短信服务集成。
- 适用场景:企业级应用、需要快速集成身份认证的项目。
- 官网:https://logto.io/
- 项目主页:https://github.com/logto-io/logto
- 主要技术栈:Node.Js
- GitHub Star:9.2k
MaxKey
MaxKey 是由 Dromara 社区开发的开源单点登录认证系统,被誉为 IAM-IDaaS 领域的领先产品。其名称谐音为 "马克思的钥匙",寓意为能够解锁复杂的企业安全需求。
- 支持协议:OAuth 2.x、OpenID Connect、SAML 2.0、JWT、CAS、SCIM。
- **开源协议:**Apache-2.0 license
- 功能特点 :
- 支持多租户环境下的身份管理。
- 提供标准化的用户身份管理(IDM)、身份认证(AM)、单点登录(SSO)、RBAC 权限管理和资源管理。
- 强调企业级场景下的性能、安全性和易用性,广泛应用于医疗、金融、政府和制造等行业。
- 优势 :
- 国产开源项目,合规,自主可控。
- 具有中文社区并提供中文文档。
- 提供了方便的国产应用集成,如微信、支付宝、QQ等社交帐号、以及腾讯/阿里云等短信服务。
- 适用场景:企业级用户,尤其是有高性能和高安全性需求的行业。
- 官网 :https://www.maxkey.top/
- 项目主页:https://github.com/dromara/MaxKey
- 主要技术栈:Java
- GitHub Star:1.5k
- Gitee Star:7.8k
Gluu Server
Gluu Server 是一个功能全面的开源身份管理平台,专为支持大规模部署而设计,适用于复杂的企业需求。
- 功能特点 :
- 强大的用户管理和身份联合功能。
- 支持细粒度的权限管理和 API 安全。
- 提供高度可扩展的架构,适合大规模用户场景。
- 优势 :
- 社区支持广泛,商业支持可选。
- 支持私有化部署。
- 适用场景:需要大规模用户管理和复杂身份联合的企业。
- 官网 :https://www.gluu.org/
- 项目主页:https://github.com/JanssenProject/jans
- 主要技术栈:Java
- Github Star:505
WSO2 Identity Server
WSO2 Identity Server 是一款开源的身份和访问管理解决方案,支持多种协议和复杂的企业场景。
- 功能特点 :
- 支持用户自注册、密码恢复和账户管理。
- 提供细粒度的权限控制和单点登录。
- 与其他 WSO2 产品集成良好,支持微服务架构。
- 优势 :
- 企业级功能强大。
- 社区活跃,提供商业支持选项。
- 适用场景:企业级应用和分布式系统。
- 官网 :https://wso2.com/identity-server/
- 项目主页:https://github.com/wso2/product-is
- 主要技术栈:Java
- Github Star:753
自定义开发实现 SSO
在某些场景下,现有的商业或开源方案可能无法完全满足项目需求,选择自定义开发 SSO 系统可以提供最大的灵活性和控制能力。
下图是我 2023 年开发的单点认证项目,具体可以看之前这篇文章: 聊聊一个差点被放弃的项目以及近期的开源计划
适用场景
- 协议标准化:需要使用标准化协议(如 SAML、OAuth 2.0、OpenID Connect)进行认证和授权。
- 灵活性:需要针对具体业务需求定制身份验证和权限管理流程。
- 定制需求:项目需求复杂且现有方案无法完全覆盖。
- 控制和安全:需要完全控制系统的每个方面,包括安全策略和性能优化。
核心技术与实现
使用 SAML(Security Assertion Markup Language)
SAML 是一种基于 XML 的开放标准,用于在身份提供者(IdP)和服务提供者(SP)之间交换认证和授权数据。
- 特点 :
- 支持跨域单点登录。
- 提供身份联盟和细粒度权限控制。
- 常用于企业级应用和内部系统集成。
- 实现建议 :
- 利用现有的 SAML 库(如 pySAML2 或 OneLogin SAML)简化开发。
- 配置 IdP 和 SP 的信任关系,确保数据安全。
使用 OAuth 2.0 和 OpenID Connect
OAuth 2.0 是一种授权框架,OpenID Connect 是基于 OAuth 2.0 的认证协议。
- 特点 :
- OAuth 2.0 提供授权机制,允许第三方访问资源而无需暴露用户密码。
- OpenID Connect 增加了用户认证功能,适合现代 Web 和移动应用。
- 实现建议 :
- 设计认证服务器,实现 Authorization Code、Implicit 等模式。
- 使用 JWT(JSON Web Token)作为认证和授权数据的载体。
- 利用开源库(如 Authlib、Openiddict等)加速开发。
基于 JWT 的自定义 SSO
JWT 是一种轻量级的数据交换格式,常用于实现用户认证授权。
- 特点 :
- 数据以 JSON 格式存储,支持跨语言和平台。
- 签名机制保证数据完整性和可信性。
- 实现建议 :
- 在用户登录时生成 JWT,包含用户信息、权限和过期时间。
- 在应用间传递 JWT,验证签名和过期时间以确认用户身份。
- 使用安全的签名算法(如 HMAC SHA256 或 RS256)确保安全性。
安全性考虑
- 多因素认证(MFA):为登录流程增加额外的认证步骤,如短信验证码、动态密码或生物识别。
- 防御攻击 :
- 使用 HTTPS 加密数据传输。
- 防止重放攻击,通过加入时间戳和唯一标识符。
- 监控和记录用户活动,及时发现异常行为。
- 日志与审计 :
- 实现全面的系统日志记录,便于故障排查和安全审计。
优劣势分析
- 优点 :
- 灵活性强,完全满足个性化需求。
- 可根据具体场景优化性能和用户体验。
- 安全性和隐私保护可完全受控。
- 缺点 :
- 开发和维护成本高。
- 需要较强的技术团队支持。
- 存在一定的开发风险。
参考资料
- 单点登录(SSO)系统自建方案总结 - https://flyeric.top/archives/build-sso-system-summary
- 关于SSO的讨论 - https://v2ex.com/t/831596#r_11330208
- 看完这篇你不能再说不懂SSO原理了 - https://www.cnblogs.com/qdhxhz/p/17007958.html
- https://blog.itning.top/post/2019/04/08/单点登录sso和集中式认证服务cas和开放授权oauth的简要解释/