【身份与访问控制工程】IAM 全景:为什么这是高价值赛道
身份与访问控制从一个登录框演进为横跨合规、运维、平台工程和安全的系统工程。本文从一家 SaaS 公司被大客户卡在 SOC 2 合规的真实触发器切入,拆解 IAM、CIAM、IGA、PAM、SSO、目录服务六个子领域的边界,分析 Okta、Entra ID、Auth0、Keycloak、Ping 等主流厂商的定位与落差,给出工程师视角的介入判据与选型路径。
发布来自土法炼钢兴趣小组的知识、笔记、进展和应用。主题包括数据结构和算法、编程语言、网络安全、密码学等。
共 39 篇文章 · 返回首页
身份与访问控制从一个登录框演进为横跨合规、运维、平台工程和安全的系统工程。本文从一家 SaaS 公司被大客户卡在 SOC 2 合规的真实触发器切入,拆解 IAM、CIAM、IGA、PAM、SSO、目录服务六个子领域的边界,分析 Okta、Entra ID、Auth0、Keycloak、Ping 等主流厂商的定位与落差,给出工程师视角的介入判据与选型路径。
B2B 大客户的安全团队只认自家 Okta,集团五条产品线要统一账号,合规团队要求所有入口都可审计——这些需求最终都落在同一个协议上:OpenID Connect。本文从一个真实的商业谈判场景切入,系统拆解 OIDC 在 OAuth 2.0 之上增加了什么、授权码流程的每一个字段为什么存在、企业集成里最常见的六类实现坑,以及 Discovery、JWKS、Dynamic Client Registration、mTLS Client Auth 的工程细节,帮助你把 SSO 从 demo 做到可以放进 SOC 2 审计报告里。
从一次 SPA 安全事故出发,系统梳理 OAuth 2.1 相对 2.0 的收敛动作、PKCE 的密码学原理、授权码流程的完整参数细节,以及 DPoP、PAR、JAR、RAR 等现代扩展与常见攻击面
SAML 2.0 是 2005 年的协议,却仍活在每一个和银行、保险、制造业做生意的 B2B SaaS 后台——本文从一封客户邮件开始,拆解 SAML 断言结构、SP-initiated 流程、Metadata、证书轮换与 XML 签名包装攻击等现实工程问题
JWT 是现代身份系统事实上的令牌格式,但围绕它的 JWS、JWE、JWK、JWKS 四个 RFC 常常被混为一谈。本文从标准归属、字段细节、算法选型、攻击面、密钥轮换到生产运维,把 JWT 相关的工程问题一次讲透
JWT 的无状态签发解决了分布式认证的扩展性,但也把吊销这件事推回到了工程师面前。一个短期 access token 配长期 refresh token 的混合架构,在 Google、Auth0、Keycloak、AWS Cognito 的实现里趋同收敛,但细节差异能决定系统在被攻击时是多丢一个账号还是多丢一百万。本文把 refresh token rotation、reuse detection、family-based abort、OIDC back-channel logout、Redis 黑名单、Bloom filter 加速、批量吊销场景拆开讲清楚。
从 TOTP、Push 到 WebAuthn 与 Passkey,系统梳理多因子认证的安全强度、服务端校验细节、迁移路径与恢复流程,帮助团队在安全性、转化率与运维成本之间做可执行取舍。
从 IP、设备、行为到 OIDC step-up,系统拆解风险感知认证与 Adaptive MFA 的信号、评分、阈值和误报治理,帮助团队把认证策略做成可校准的工程系统。
从 mTLS、SPIFFE/SPIRE 到云厂商 Workload Identity,系统梳理服务身份的信任根、签发链路、轮换策略与平台边界,帮助团队搭建面向微服务与多云环境的机器身份体系。
从角色爆炸问题切入,深入对比 RBAC(NIST 四级模型)、ABAC(XACML)、ReBAC(Zanzibar 启发)三种权限模型的数据结构、SQL 建模、策略表达能力与工程取舍,给出混合模型实践与选型决策树。
深入解析 Google Zanzibar 论文(USENIX ATC 2019)的核心设计:Relation Tuple、Namespace、Userset Rewrite,一致性模型(Zookies)与开源实现 SpiceDB、OpenFGA、Ory Keto 的工程对比,以及适用与不适用场景。
B2B SaaS 的权限问题远比 B2C 复杂:多个企业客户、各自的内部角色体系、跨租户协作、行列级数据权限、租户自助管理。本文从隔离模型出发,给出租户内 RBAC + 租户间 ReBAC 的混合方案、超级管理员设计、行级权限实现,以及 GitHub、Slack、Notion 的权限模型速览。
API Gateway 能做粗粒度的认证鉴权,但细粒度授权必须下沉到服务层。本文梳理 Gateway/BFF/Service 三层认证职责边界,讨论 Token 验证位置选择、RFC 8693 Token Exchange、服务间身份传播(JWT/mTLS/SPIFFE),以及 Istio、Kong、APISIX 的认证授权能力对比。
从 Quarkus runtime、Infinispan 缓存、数据库 schema,到 Authentication Flow 引擎、SPI 扩展点、multi-site 部署与常见工程坑点,拆解 Keycloak 的真实工程形态与选型边界。
从 TCO、合规、SLA、生态四个维度对比 Keycloak、Auth0、Microsoft Entra ID、Okta 及新兴开源方案,给出不同规模与合规场景下的选型矩阵与工程坑点清单。
系统梳理 CIAM(Customer Identity and Access Management)的场景差异、数据模型、隐私合规与工程坑点,覆盖 B2C 社交登录、B2B 企业 SSO/SCIM、B2B2C 组织模型,以及全球多区域部署与选型建议。
系统梳理特权访问管理(PAM)、身份治理(IGA)与审计留痕的工程化落地:从凭证金库、JIT 访问、会话录制,到访问复核、职责分离、不可篡改日志、SOX/HIPAA/PCI-DSS/ISO 27001/等保三级合规映射,以及 CyberArk、Teleport、Vault、StrongDM 的产品选型与最小闭环。
从老旧 LDAP 到 Keycloak,从自建到 SaaS,从 SaaS 回到自建,身份系统迁移是工程团队最怕做又躲不开的事。本文系统梳理迁移动因、策略对比、密码迁移、Token 迁移、多 IdP 合并、事故案例与响应 Runbook。
从一起僵尸账号安全事件切入,系统讲透 SCIM 2.0 的资源模型、协议操作、Push/Pull 模式、主流 IdP 差异,以及服务端实现、幂等、软删除、孤儿账户清理等工程落地细节
从 PDP/PEP/PIP/PAP 架构模型出发,深入对比 OPA/Rego 与 AWS Cedar 的设计哲学、策略语言能力、形式化验证、部署模式(sidecar/daemon/library),以及策略测试、版本化与治理的工程实践。
从 OIDC、OAuth 2.1、SAML、SCIM 到多租户权限、CIAM、PAM 与身份平台选型——系统拆解现代身份与访问控制的协议、架构与工程实践。
你的容器能调用 reboot()。是的,现在就能。除非有人拦住它。Capabilities 拆分 root 权限,Seccomp-BPF 过滤系统调用——两道防线,缺一不可。本文用 C 代码拆解这两套机制,看看 Docker 到底替你挡住了什么。
容器运行时需要 root 权限?不一定。User namespace 让普通用户也能创建容器——容器内是 root,容器外是你自己。Podman 就是这么干的。但 rootless 不是免费午餐,限制比你想象的多。
从开源库到硬件加速,从等保密评到 DTLS 国密,全面剖析国密生态的技术选型与合规落地路径。
TLS 1.3 标准握手用 X25519+AES-128-GCM+SHA-256,全换成 SM2+SM4-GCM+SM3 后,握手报文到底改了多少?本文从 ClientHello 到 Finished 逐字节对比,并结合 Wireshark 抓包和双证书体系深入分析。
从信任模型的哲学分歧、证书格式的 ASN.1 编码、算法 OID 的注册差异、到双证书体系的 KMC 密钥托管——逐层拆解国际 PKI 与国密 PKI 在设计理念和工程实现上的本质区别。
从 Hybrid 模式到证书链迁移,从 NIST ML-KEM/ML-DSA 到国密 SM2 的量子威胁,一份面向工程落地的后量子密码迁移指南。
SM3 和 SHA-256 都基于 Merkle-Damgård 结构、256-bit 输出、64 轮压缩——但消息扩展、布尔函数、常量选取的设计哲学完全不同。本文用 simple_gmsm 代码逐步拆解 SM3 压缩函数,并在 x86-64 / ARM64 上实测性能。
AES 和 SM4 都是 128-bit 分组密码,但设计哲学截然不同:AES 走代数优雅路线,SM4 走工程实用路线。本文从 S-Box 设计、轮函数结构、密钥扩展、硬件加速到 GCM 模式性能实测,全面对比两条路线的取舍。
如何在 Libevent 中实现双向 TLS 认证 (mTLS)。从证书生成、SSL_CTX 配置到 bufferevent 集成,构建零信任网络基础。
Seccomp 只能说 yes or no,但攻击者早就学会了在 yes 里面做文章。是时候让 eBPF 接管安全审计了。
在数据为王的时代,数据隐私和安全变得至关重要。我们希望在利用数据带来价值的同时,保护其不被泄露。传统的数据加密技术(如 AES、RSA)可以有效地保护静态存储和传输中的数据,但一旦需要对数据进行计算或处理,就必须先解密。解密后的数据以明文形式暴露在内存中,极易受到攻击,这在云计算等第三方计算环境中构成了巨大的安全风险。
在传统的用户名 + 密码登录系统中,服务器通常要么直接保存口令派生值(如 salt + hash(password)),要么依赖 TLS+密码的组合来实现认证。一旦服务器数据库被攻破,攻击者就可以对这些口令派生值做离线暴力破解,且整个系统的安全性高度依赖 TLS 与密码派生方案的组合是否正确实现。OPAQUE(The…

密码学最危险的不是算法被破解,而是正确的算法被错误地使用。本文梳理 7 个真实 CVE 中的密码学工程错误,附代码与修复方案。
不依赖 OpenSSL,用纯 C 从零实现 TLS 1.3 一次往返握手——X25519 密钥交换、HKDF 密钥派生、AES-128-GCM 加密,一个文件搞定。
密码安全存储最佳实践:哈希算法、加盐、bcrypt/scrypt/Argon2 使用指南
XSS 跨站脚本攻击实战:攻击原理、防御方法与安全编码最佳实践
Linux 提权技术详解:权限提升原理、常见漏洞利用方法与防护措施