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