无需登录 数据私有 本地保存

Web 认证代理模拟器 - 体验 SSO 登录流程

23
0
0
0
SAML 2.0 OAuth 2.0 OpenID Connect
https://app.example.com
技术详情 步骤 0
// 等待开始模拟...
事件日志
🟢 模拟器就绪,点击「下一步」开始
SSO 常见问题与知识点

SSO(Single Sign-On)是一种身份认证机制,允许用户使用一组凭据(如用户名和密码)登录一次,即可访问多个关联但独立的应用程序。它通过中央身份提供者(IdP)统一管理认证,避免了用户需要为每个应用单独注册和登录的麻烦。常见的SSO协议包括SAML 2.0OAuth 2.0OpenID Connect(OIDC)

SAML 2.0 主要用于企业级SSO,基于XML,支持身份认证和属性传递,常用于企业内部应用集成。OAuth 2.0 是一个授权框架,侧重于授权而非认证,允许第三方应用获取有限的资源访问权限。OpenID Connect(OIDC) 在OAuth 2.0之上添加了身份层,使用JWT格式的ID Token,更适合现代Web和移动应用。简单来说:SAML用于企业SSO,OAuth用于API授权,OIDC用于现代身份认证。

SSO本身是安全的,但需要正确实施。主要安全措施包括:使用HTTPS加密所有通信、验证State参数防止CSRF攻击、设置合理的Token过期时间、使用数字签名验证断言真实性。潜在风险包括:IdP成为单点故障、Token被截获(需用HTTPS和短时效Token防范)、会话劫持等。最佳实践是结合多因素认证(MFA)增强安全性。

IdP(Identity Provider,身份提供者)是负责验证用户身份并签发认证断言的服务,例如Okta、Azure AD、Auth0。SP(Service Provider,服务提供者)是用户想要访问的实际应用或服务,它信任IdP的认证结果。在SSO流程中,SP将用户重定向到IdP进行登录,IdP认证成功后返回断言给SP,SP据此建立用户会话。

JWT(JSON Web Token)由三部分组成,用点号分隔:Header.Payload.SignatureHeader包含算法信息(如RS256);Payload包含声明(Claims),如用户ID、过期时间等;Signature是对前两部分的数字签名,用于验证Token的完整性和来源。在OIDC中,ID Token就是一个JWT,包含用户身份信息。

SAML断言是IdP生成的XML文档,包含关于用户认证的声明。主要包括:Subject(用户标识,如NameID)、Conditions(有效期、受众限制)、AttributeStatement(用户属性,如邮箱、角色)、AuthenticationStatement(认证方式、时间戳)。SP通过验证断言的数字签名来确认其真实性。

防止重放攻击的机制包括:短时效Token(如5分钟内有效)、一次性使用的断言ID(InResponseTo校验)、Nonce参数(随机数,仅使用一次)、时间戳验证(拒绝过期的消息)。SAML断言通常包含NotOnOrAfter条件,OAuth的authorization code也是一次性的。