Single Sign On (SSO) 单一登入
Single Sign On (SSO) 单一登入
Categories:
流程
domain1 SSO 登入
- 使用者访问
domain1.com
domain1.com
没有找到 session cookiedomain1.com
重新导向到sso.com
执行登入sso.com
显示登入页及并带入凭证验证- 登入后
sso.com
设定使用者的 session cookie sso.com
重新导向回domain1.com
的指定登入网址domain1.com/sso-login
- 登入网址
domain1.com/sso-login
的参数会含有sso.com
签核的 token,可能是个使用金钥签核简单的base64
加密的登入 id
domain1.com
拿到加密的 token,并解密这个 token,使用新的登入 id
登入使用者domain1.com
设定这个使用者的 session cookie
再从 domain2 SSO 登入
- 使用者访问
domain2.com
domain2.com
没有找到 session cookiedomain2.com
重新导向到sso.com
执行登入sso.com
已经有domain1.com
登入时的 session cookie,所以不需要显示登入页sso.com
重新导向回domain2.com
的指定登入网址domain2.com/sso-login
- 登入网址
domain2.com/sso-login
的参数会含有sso.com
签核的 token,可能是个使用金钥签核简单的base64
加密的登入 id
domain2.com
拿到加密的 token,并解密这个 token,使用新的登入 id
登入使用者domain2.com
设定这个使用者的 session cookie
安全性
可定期至 sso.com
检查是否有登入,确保是有权限的使用者,若没有登入可以把使用者从原本的 Service Provider
中登出
概念
使用重新导向的浏览器 cookie handshake 是 SSO 登入的基本原理
参考资料
- SSO — Single Sign On
- security - Cross Domain Login - How to log a user in automatically when transferred from one domain to another - Stack Overflow