在现代企业中,IT系统繁多,应用无处不在。如何确保“正确的人”能够在“正确的时间”以“正确的权限”访问“正确的资源”,同时保障整个过程的安全与高效?这正是身份与访问管理(Identity and Access Management, IAM)要解决的核心问题。
一、什么是IAM
IAM是一个综合性的安全框架,用于在企业或组织中,统一管理和控制用户对各类资源的访问。一个健全的IAM体系,有助于显著提高企业的信息安全性,并有效降低潜在的运营风险。IAM通常包含以下几个核心支柱:
- 身份管理 (Identity Management): 负责创建、维护和删除用户的数字身份账户及其相关属性。
- 认证 (Authentication): 确认用户“是谁”的过程。常见的方式有我们熟悉的用户名和密码、多因素身份验证(MFA),以及更为便捷的单点登录(SSO)。
- 授权 (Authorization): 确定一个已经通过认证的用户“能做什么”的过程,即可以访问哪些资源,以及可以执行哪些具体操作。
- 角色管理 (Role Management): 通过将权限预先分配给特定的“角色”,然后再将这些角色分配给用户,从而简化授权管理的复杂性。
- 审计与合规 (Audit and Compliance): 监控和记录用户对资源的访问行为,以确保企业的运营符合内部策略和外部法规的要求。
在开源领域,也有一些知名的IAM解决方案,例如由Red Hat支持的Keycloak、WSO2 Identity Server、适用于Linux/Unix环境的FreeIPA,以及Gluu Server等。
二、解密LDAP与Kerberos
在IAM的底层技术支撑中,LDAP和Kerberos是两个绕不开的经典协议。
-
LDAP:统一的“企业通讯录” LDAP(轻量级目录访问协议,Lightweight Directory Access Protocol)是一种应用层协议,用于访问和维护分布式的目录信息服务。你可以把它形象地理解为一个标准化的、全企业统一的“电子通讯录”。它以一种层级化的树形结构,集中存储和管理着企业内的用户、用户组、设备、权限等各类信息。在IAM领域,LDAP通常扮演着那个权威的、提供用户身份信息存储与查询的“目录服务”角色。
-
Kerberos:内网安全的“通行证” Kerberos是一种网络认证协议,旨在为企业内部网络中的客户端和服务器之间的通信提供强大的安全保障。它基于对称密钥加密技术和一种被称为“票据授权(ticket-granting)”的机制。在不安全的网络环境中,Kerberos能够安全地验证用户身份并保护数据传输。它涉及三个主要实体:客户端、服务端和密钥分发中心(KDC)。整个认证过程,就像是在一个可信的“票务中心”(KDC)领取一张“门票”(TGT),然后再凭这张“门票”去换取访问各个具体服务(如文件服务器、打印服务器)的“入场券”(Service Ticket)。
-
强强联合:FreeIPA中的实践 像FreeIPA这样的开源集成身份管理解决方案,就是通过将LDAP和Kerberos等成熟的开源技术进行深度集成,来为Linux/UNIX环境提供一种安全、可扩展且易于管理的身份认证和授权解决方案。在其中,LDAP作为核心的目录服务,负责存储用户、组、主机等所有对象的信息;而Kerberos则负责提供安全、可扩展的单点登录(SSO)认证服务。
三、SAML与Web单点登录(SSO)
LDAP和Kerberos在企业内网环境中表现出色,但当我们需要将这种身份信任扩展到企业外部,特别是访问各种基于Web的应用和云服务时,就需要另一种更适合跨域场景的协议——SAML。SAML(安全断言标记语言,Security Assertion Markup Language)是一种基于XML的开放标准,专门用于在不同的安全域之间交换认证和授权数据。它是由OASIS组织制定的,被广泛应用于实现Web应用的单点登录(SSO)和身份联合(Identity Federation)。
在SAML的世界里,主要有两个角色:
- 身份提供商 (Identity Provider, IdP): 负责验证用户身份,并生成包含用户身份信息的“SAML断言”(可以理解为一种数字化的身份证明)。
- 服务提供商 (Service Provider, SP): 指用户想要访问的Web应用或服务。它负责接收并验证IdP发来的SAML断言,并根据其中的信息,为用户提供相应的访问权限。
一次典型的SAML单点登录流程大致如下:
- 用户尝试访问SP的受保护资源。
- SP发现用户未登录,将用户重定向到IdP的登录页面,并附带一个SAML认证请求。
- 用户在IdP的页面上进行身份验证(如输入用户名密码)。
- IdP验证成功后,创建一个经过数字签名的SAML断言。
- IdP通过浏览器将这个SAML断言发送回SP。
- SP验证该断言的签名和内容,确认用户身份合法。
- SP为用户创建会话,并授权其访问所请求的资源。用户无需在SP上再次输入密码,即实现了单点登录。
四、LDAP+Kerberos vs. LDAP+SAML
LDAP、Kerberos和SAML这几种技术可以进行不同的组合,以满足企业多样的身份认证和授权需求。
-
LDAP与Kerberos的组合方案 这种组合通常用于实现企业内部网络的集成身份认证和授权。LDAP作为后端的目录服务,存储所有身份信息;Kerberos则作为前端的认证协议,为内部的各种应用和服务提供安全、高效的单点登录。
- 适用场景:
- 企业内部网络和基础设施,尤其是在Windows域环境(Active Directory本质上也是基于LDAP和Kerberos)或类似的Linux/UNIX环境(如FreeIPA)中。
- 对安全性和性能要求较高的内部应用。
- 需要跨多种操作系统(Windows、Linux、UNIX)的混合环境。
- 不太适用的场景:
- 纯Web应用的单点登录,配置相对复杂。
- 跨组织的身份联合与单点登录。
- 适用场景:
-
LDAP与SAML的组合方案 这种组合则更常用于实现基于Web应用的集成身份认证和授权。同样,LDAP作为后端的身份存储。但前端的认证和单点登录协议,换成了更适合Web环境的SAML。身份提供商(IdP)会与LDAP目录服务集成,在验证用户身份后,通过SAML协议与各个服务提供商(SP)进行交互。
- 适用场景:
- 基于Web的应用程序和云服务(SaaS)的单点登录。
- 跨组织、跨域的单点登录,例如企业与合作伙伴、供应商、客户之间共享应用的身份管理和资源访问。
- 不太适用的场景:
- 非Web的、传统的客户端/服务器架构的应用程序。
- 适用场景:
五、第三方平台能否获取IAM中的用户信息
在很多场景下,第三方平台(如一个集成了多家SaaS服务的门户)确实需要获取IAM中所有用户的用户名和角色信息。这通常是可以实现的,但具体取决于IAM解决方案是否提供相应的API接口(如REST、SOAP、GraphQL等)以及如何配置权限。实现这一目标,通常需要获取API访问凭据、调用API接口、并在第三方平台中处理和同步返回的用户与角色数据。在整个过程中,必须严格遵守相关的安全和隐私法规要求。
六、结语
在企业信息化的世界里,没有一种技术方案是万能的。无论是选择基于LDAP和Kerberos的方案来加固内网安全,还是采用LDAP和SAML的组合来拥抱云端和Web应用,都需要根据企业自身的实际需求、应用场景和安全策略进行权衡。深刻理解IAM及其背后的这些核心技术基石,将有助于企业的IT架构师和安全专家们,构建出更安全、更可扩展、也更具用户友好性的现代企业IT系统。
企业在向SAP S/4HANA Cloud转型时,SAP 许可 (License) 从 On-Premise 时代的经典指定用户模型转向全新的 FUE 许可模式,且 SAP 产品的许可 (License) 包含诸如“组件授权、用户授权、计量模式”等复杂模型,这对企业来说如同一个黑匣子,难以理解其工作原理。此外,企业还面临 SAP 的 License 审计等合规性问题。赛锐信息在 SAP License 审计流程方面拥有丰富咨询经验,拥有自主研发的高效 SAP License 资产优化软件产品,欢迎企业在需要时随时联系我们,以获得我们的支持服务和软件产品试用体验。