1. SAML2协议核心概念解析
第一次接触SAML2协议时,我也被那些专业术语搞得晕头转向。直到后来在实际项目中反复使用,才发现这套协议设计得非常精妙。简单来说,SAML2就像互联网世界的"护照系统"——你在一个地方完成身份验证(比如海关盖章),其他所有认可这个护照的国家(服务提供商)都会承认你的身份。
**断言(Assertion)**是SAML2的核心载体,相当于护照里的签证页。它采用XML格式封装三类关键信息:
- 认证断言:证明用户是谁(类似护照照片页)
- 属性断言:包含用户属性(如部门、职位等元数据)
- 授权决策断言:定义访问权限(类似签证类型)
我在金融云项目中最常遇到的是前两种。比如用户登录HR系统后,系统会生成包含员工ID和部门信息的断言,财务系统收到后就能自动显示对应部门的预算数据,全程无需重复登录。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 协议中的三大角色互动
2.1 身份提供方(IdP)实战配置
IdP相当于"发证机关",我部署过最典型的案例是微软AD FS。安装完成后需要重点配置:
xml复制<EntityDescriptor entityID="https://idp.company.com">
<IDPSSODescriptor protocolSupportEnumeration="urn:oasis:names:tc:SAML:2.0:protocol">
<KeyDescriptor use="signing">
<ds:KeyInfo>...</ds:KeyInfo>
</KeyDescriptor>
<SingleSignOnService
Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect"
Location="https://idp.company.com/sso"/>
</IDPSSODescriptor>
</EntityDescriptor>
这里有个坑要注意:entityID必须全局唯一,我见过两个系统因重复ID导致认证循环跳转。最佳实践是用公司域名+服务路径的格式。
2.2 服务提供方(SP)元数据设计
SP的元数据文件需要包含三个关键端点:
1.
