"单点登录(SSO)就像是企业应用系统的大管家,用户只要对它说一次'芝麻开门'(登录一次),就能畅通无阻地访问考勤系统、邮箱系统、人事系统等多个应用,省去了重复敲密码的麻烦。而且,用户只要对大管家说一声'我走了'(注销一次),所有系统的门就都自动关上了,确保了安全。
域与Cookie结合式单点登录
用户在一个域内登录一次后,无需再次输入凭证即可访问该域下的所有相关子域或服务
域
父域
父域是指一个域名结构中的最高级别域名,通常包括顶级域名(如.com、.org、.net)和直接位于其下的二级域名。
例如,在outlook.com中,outlook.com就是父域
子域
子域是通过在父域名前添加额外的前缀来创建的,用于区分不同的服务或部门
例如 app.outlook.com`` , emil.outlook.com ,login.outlook.com 都是 outlook.com 的子域
用户访问子域名 - 检查是否已登录 - 未登录,重定向到登录页面 - 输入登录信息 - 验证信息 - 发放通行证( Cookie ) - 自动登录到子域名 - 访问其他服务
现在假设你是一个用户,你想要访问你的公司邮箱,邮箱的网址是emil.outlook.com 。你打开浏览器,在地址栏输入这个网址,然后敲回车。
你的浏览器会向邮箱服务器发送请求。邮箱服务器检查你是否已经登录过,它会查看你的浏览器里有没有一个特殊的Cookie,这个Cookie就像一个通行证,证明你已经登录过了。
如果你之前没有登录过,或者你的Cookie已经过期了,邮箱服务器会告诉你的浏览器:“嘿,你还没登录呢,先去登录一下吧。” 然后你的浏览器会自动跳转到一个中央登录页面,比如login.outlook.com。
在登录页面上,你需要输入你的用户名和密码。你输入这些信息后,点击“登录”按钮。
登录页面会把你输入的用户名和密码发送给中央身份验证服务。这个服务会检查这些信息是否正确,如果正确,就说明你是一个合法的用户。
验证通过后,中央身份验证服务会给你一个通行证,这个通行证实际上是一个Cookie。这个Cookie会存储在你的浏览器里,并且它对整个outlook.com域名都有效,包括它的所有子域名,比如emil.outlook.com 和 login.outlook.com。
一旦你有了这个通行证(Cookie),你的浏览器就会再次尝试访问邮箱页面。这次,邮箱服务器看到你有有效的通行证,就会说:“哦,你已经登录过了,欢迎回来!” 然后它就会让你看到你的邮箱,而不再要求你登录。
之后,如果你去访问公司的其他服务,比如 app.outlook.com,同样的流程也会发生。你的浏览器会带着你的通行证(Cookie)去请求,服务会检查Cookie,确认无误后让你直接访问,不需要再次登录。