SAML 和 WS-Fed 联合协议有什么区别?
SAML(安全断言标记语言)和 WS-Fed(Web 服务联合)都是用于在联合身份管理系统中实施单点登录(SSO)解决方案的协议。
SAML 使用基于 XML 的安全令牌,而 WS-Fed 主要使用安全断言标记语言 (SAML) 令牌或 JSON Web 令牌 (JWT) 作为令牌格式。
WS-Fed 基于 WS-*(Web 服务)规范,与 Active Directory Federation Services (AD FS) 等 Microsoft 技术紧密集成,常用于基于 Windows 的应用程序和服务。
SAML 是一种开放标准,在平台和应用程序中被广泛采用,而 WS-Fed 与 Microsoft 技术和框架的联系更为紧密。
SAML 联合工作流程:
用户访问请求: 用户启动对服务提供商(SP)应用程序的访问。
服务提供商重定向: SP 检测到用户未通过身份验证并向用户的浏览器发送重定向响应,将他们定向到身份提供商 (IdP)。
Identity Provider Authentication: 用户的浏览器被重定向到 IdP,提示用户提供身份验证凭据。
Authentication Response: 身份验证成功后,IdP 生成包含用户信息的 SAML 断言,并使用数字签名对其进行签名。
断言传递: 用户的浏览器被重定向回请求中嵌入 SAML 断言的 SP。
断言验证: SP 接收 SAML 断言并验证其完整性、真实性和过期时间。它还可以执行额外的属性映射或转换。
用户会话创建: 如果 SAML 断言有效,则 SP 为用户建立会话并授予对所请求应用程序的访问权限。
WS-Fed 联邦工作流程:
用户访问请求: 用户发起对服务提供商应用程序的访问。
服务提供商重定向: 与 SAML 类似,SP 检测到用户未通过身份验证并向用户的浏览器发送重定向响应,将他们定向到安全令牌服务 (STS)。
Token Request: 用户的浏览器被重定向到STS,STS充当身份提供者并负责颁发安全令牌。
用户身份验证: STS 提示用户进行身份验证并验证其凭据。
令牌发行: 身份验证成功后,STS生成包含用户声明的安全令牌并使用数字签名对其进行签名。
令牌交付: 用户的浏览器被重定向回 SP,请求中嵌入了安全令牌。
令牌验证: SP 接收安全令牌并验证其完整性、真实性和有效期。它还可以执行额外的属性映射或转换。
用户会话创建: 如果安全令牌有效,则 SP 为用户建立会话并授予对请求的应用程序的访问权限。