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