引言:
之前的博文中有提到关于单点登录(SSO)的一系列安全问题如下,这篇文章简单聊聊单点登录(SSO),因为基本上对有多应用系统的公司,基本上都会用到单点登录(SSO)系统。
Web 应用安全验证标准之二 -- 会话管理Session_系统安全 session 有效期-CSDN博客文章浏览阅读520次。Item验证内容等级123V2.1验证应用系统使用的是框架自带的会话管理机制。VVVV2.2..._系统安全 session 有效期https://blog.csdn.net/m0_37268841/article/details/89384421?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522170951905216800227450406%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fblog.%2522%257D&request_id=170951905216800227450406&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~blog~first_rank_ecpm_v1~rank_v31_ecpm-4-89384421-null-null.nonecase&utm_term=%E5%8D%95%E7%82%B9%E7%99%BB%E5%BD%95&spm=1018.2226.3001.4450Web 应用安全验证标准之二 -- 会话管理Session
介绍:
SSO 可以被认为是打开所有不同锁的万能钥匙。 它允许用户使用一组凭据登录不同的系统。
在我们访问比以往更多的应用程序的时代,这对于减轻密码疲劳和简化用户体验有很大帮助。
要完全了解 SSO 流程,让我们看一下用户如何使用 google 账户登录 linkedin
𝟭) 𝗨𝘀𝗲𝗿 𝗿𝗲𝗾𝘂𝗲𝘀𝘁𝘀 𝗮𝗰𝗰𝗲𝘀𝘀(用户访问请求)
首先,用户将尝试访问服务提供商 (LinkedIn)。 此时,将向用户显示登录选项,在此示例中,他们将选择“使用 Google 登录”。
𝟮) 𝗔𝘂𝘁𝗵𝗲𝗻𝘁𝗶𝗰𝗮𝘁𝗶𝗼𝗻 𝗿𝗲𝗾𝘂𝗲𝘀𝘁(身份认证)
从这里,服务提供商 (LinkedIn) 将通过身份验证请求将用户重定向到身份提供商 (Google)。
𝟯) 𝗜𝗱𝗣 𝗰𝗵𝗲𝗰𝗸𝘀 𝗳𝗼𝗿 𝗮𝗰𝘁𝗶𝘃𝗲 𝘀𝗲𝘀𝘀𝗶𝗼𝗻 (身份验证激活session)
一旦身份提供商 (Google) 收到请求,它将检查活动会话。 如果没有找到,将请求身份验证。
𝟰) 𝗨𝘀𝗲𝗿 𝘀𝘂𝗯𝗺𝗶𝘁𝘀 𝗰𝗿𝗲𝗱𝗲𝗻𝘁𝗶𝗮𝗹𝘀(使用登录凭据登录)
在此阶段,用户将向身份提供商 (IdP) 提交其登录凭据(用户名和密码)。
𝟱)𝗜𝗱𝗣 𝘃𝗲𝗿𝗶𝗳𝗶𝗲𝘀 𝗰𝗿𝗲𝗱𝗲𝗻𝘁𝗶𝗮𝗹𝘀 (验证登录)
然后,身份提供商将根据其用户目录(数据库)验证提交的凭据。 如果凭据正确,IdP 将创建身份验证令牌或断言。
𝟲) 𝗜𝗱𝗣 𝘀𝗲𝗻𝗱𝘀 𝘁𝗼𝗸𝗲𝗻 𝘁𝗼 𝗦𝗲𝗿𝘃𝗶𝗰𝗲 𝗣𝗿𝗼𝘃𝗶𝗱𝗲𝗿(身份验证后发送token给到服务器)
创建令牌或断言后,IdP 会将其发送回服务提供商以确认用户的身份。 用户现已通过身份验证,可以访问服务提供商 (LinkedIn)。
𝟳) 𝗔𝗰𝗰𝗲𝘀𝘀 𝗴𝗿𝗮𝗻𝘁𝗲𝗱 𝘂𝘀𝗶𝗻𝗴 𝗲𝘅𝗶𝘀𝘁𝗶𝗻𝗴 𝘀𝗲𝘀𝘀𝗶𝗼𝗻 (使用已有的session登录服务器)
由于身份提供商已经建立了会话,因此当用户访问不同的服务提供商(例如 GitHub)时,他们不需要重新输入其凭据。 未来的服务提供商将请求身份提供商进行身份验证,识别现有会话,并根据先前经过身份验证的会话向用户授予访问权限。
如上所述的 SSO 工作流程在 SSO 协议上运行,SSO 协议是一组管理 IdP 和 SP 如何相互通信和信任的规则。 常见协议包括安全断言标记语言 (SAML)、OpenID Connect 和 OAuth。