「IAM」- 身份和访问管理 | Identity and Access Management

认识

IAM(Identity and Access Management,身份和访问管理)是一套用于管理数字身份并控制其对资源访问权限的框架、技术和策略。它确保正确的实体(用户、设备、服务等)能够以适当的权限访问正确的资源。随着数字化转型的深入和网络安全威胁的增加,IAM 已成为企业 IT 战略中不可或缺的一部分。

组成

核心组件

  1. 身份管理

– 用户身份创建、存储、管理

– 身份验证(Authentication)

– 单点登录(SSO)

– 多因素认证(MFA)

  1. 访问管理

– 授权(Authorization)

– 权限分配和管理

– 基于角色的访问控制(RBAC)

– 基于属性的访问控制(ABAC)

  1. 审计与合规

– 访问日志记录

– 合规性报告

– 异常检测

标准 and 协议 | 认证协议 | Authentication Protocol

SAML(安全断言标记语言)
OAuth 2.0
OpenID Connect
LDAP(轻量级目录访问协议)
SCIM(跨域身份管理系统)

PAP(Password Authentication Protocol)
特点:明文传输密码,安全性低。
用途:旧式 PPP 拨号认证(现基本被淘汰)。
安全性:❌ 无加密,易被窃听。

CHAP(Challenge-Handshake Authentication Protocol)
特点:使用挑战-响应机制,避免明文传输密码。
用途:PPP、PPPoE(如宽带拨号)。
安全性:✅ 比 PAP 安全,但仍可能被暴力破解

MS-CHAP / MS-CHAPv2(Microsoft CHAP)
特点:微软改进版 CHAP,支持双向认证。
用途:Windows VPN(如 PPTP)、企业网络。
安全性:⚠️ MS-CHAPv1 已不安全,v2 仍可用但推荐替换。

除了前面提到的常见 IAM 协议(SAML、OAuth 2.0、OpenID Connect、LDAP、SCIM),IAM 领域还涉及以下重要协议和技术标准:

### 1. 认证协议
Kerberos
– 基于票据的网络认证协议,主要用于企业内网的单点登录(SSO)
– 典型应用:Windows Active Directory 的默认认证协议

RADIUS(Remote Authentication Dial-In User Service)
– 用于网络设备(如 VPN、Wi-Fi)的集中认证、授权和记账(AAA)
– 替代协议:Diameter(RADIUS 的升级版,支持更复杂场景)

FIDO2/WebAuthn
– 由 FIDO 联盟提出的无密码认证标准,基于公钥加密和生物识别
– 支持硬件安全密钥(如 YubiKey)或设备内置认证(指纹 / 面部识别)

OAuth 1.0a
– OAuth 2.0 的前身,仍有一些旧系统使用(如 Twitter API)

### 2. 授权与访问控制协议
XACML(eXtensible Access Control Markup Language)
– 基于 XML 的细粒度访问控制策略语言,支持 ABAC(基于属性的访问控制)
– 通常与 PDP(策略决策点)和 PEP(策略执行点)结合使用

UMA(User-Managed Access)
– OAuth 2.0 的扩展,允许用户自主控制第三方对资源的访问权限
– 适用于数据共享场景(如医疗记录、开放银行 API)

### 3. 目录与身份同步协议
SCIM(System for Cross-domain Identity Management)
– 跨系统同步用户身份信息的 RESTful 标准(如入职 / 离职时自动创建 / 禁用账户)
– 替代传统 LDAP 同步的现代方案

SPML(Service Provisioning Markup Language)
– 基于 XML 的身份供应标准(已逐渐被 SCIM 取代)

### 4. 联邦身份与互操作协议
WS-Federation
– 微软提出的基于 SOAP 的联邦身份标准,与 SAML 竞争
– 主要用于企业级 SSO(如 Microsoft ADFS)

CAS(Central Authentication Service)
– 开源 SSO 协议,常见于教育机构和传统系统

OpenID 2.0
– OpenID Connect 的前身,依赖直接通信而非令牌

### 5. 新兴技术与协议
ZTA 相关协议(零信任架构)
SPIFFE/SPIRE:为微服务和工作负载提供身份标识的安全框架
gRPC + mTLS:服务间双向认证的通信方案

区块链身份协议
DID(Decentralized Identifiers):W3C 的去中心化身份标准
Verifiable Credentials(可验证凭证):基于区块链的电子凭证

HTTP 签名头(如`Signature`、`Digest`)
– 用于 API 请求的完整性验证和身份确认

### 6. 其他相关协议
JWT(JSON Web Token)
– 虽非独立协议,但广泛用于 OAuth 2.0 和 OpenID Connect 的令牌格式

OIDC(OpenID Connect)
– 基于 OAuth 2.0 的身份层,提供用户信息标准化接口(如`/userinfo`端点)

SAML 2.0
– 企业级 SSO 的黄金标准,但配置复杂,逐渐被 OIDC 替代

### 协议选择建议
企业 SSO:SAML 2.0、OIDC、WS-Federation
API 授权:OAuth 2.0、mTLS
无密码认证:FIDO2/WebAuthn
微服务安全:SPIFFE、JWT
身份供应:SCIM

不同协议可组合使用(如 OIDC + FIDO2 实现无密码 SSO)。实际选择需考虑兼容性、安全需求和生态支持。

构建

lldap | Light LDAP implementation for authentication

Kanidm | Kanidm is an up-and-coming Rust identity management platform, covering all your bases: OAuth, Linux accounts, SSH keys, Radius, WebAuthn. It comes with a (read-only) LDAPS server.

OpenLDAP | OpenLDAP is a monster of a service that implements all of LDAP and all of its extensions, plus some of its own. That said, if you need all that flexibility, it might be what you need! Note that installation can be a bit painful (figuring out how to use slapd) and people have mixed experiences following tutorials online. If you don’t configure it properly, you might end up storing passwords in clear, so a breach of your server would reveal all the stored passwords!

FreeIPA – Identity Management System

  • 认识:FreeIPA is a free and open source identity management system. FreeIPA is the upstream open-source project for Red Hat Identity Management
  • 参考:FreeIPA – Wikipedia

性质

用户生命周期管理:从入职到离职的全流程身份管理
访问控制:定义谁可以访问什么资源以及在什么条件下访问
特权账户管理:管理具有特殊权限的账户
身份联合:跨域或跨组织的身份识别和访问
风险评估与自适应认证:根据风险级别调整认证要求

应用

  1. 企业 IT 系统:管理员工对各种内部系统的访问
  2. 云计算环境:AWS IAM、Azure AD 等云服务访问控制
  3. 客户身份管理:管理客户对网站 / 应用的访问(CIAM)
  4. 物联网:设备身份验证和授权

重要性:

  • 提高安全性:防止未经授权的访问
  • 满足合规要求:符合 GDPR、HIPAA 等法规
  • 提升用户体验:简化登录流程
  • 降低管理成本:集中化管理访问权限

参考

DeepSeek / 介绍 IAM
DeepSeek / 还有哪些协议?