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