同一組帳密可以切換多個應用服務!軟體公司常見的 SSO (Single Sign-on) 是什麼?|專家論點【朱騏】
當我們使用大型網路公司的服務時,大家是否發現:我們竟然可以使用同一組帳號,在多個應用服務切換。
最明顯的例子就是 Google 服務,只要登入一次,就可以在以下服務切換
- Gmail
- YouTube
- Google Meet
- Google Chat
- Google Analytics
- …
但為什麼可以這樣呢?這背後使用到的技術,稱為 SSO (Single sign-on)。
這篇文章會解釋
- SSO 是什麼
- SSO 的兩種設計協定
SSO 是什麼
SSO 是一個授權架構 (Authentication Scheme),它提供使用者可以用單一帳號使用同一組織下的多個應用服務 (Applications)。
使用 SSO 的組織例子有
- Gmail
- workday (美國知名的財務管理 & 人力資源管理 SaaS)
- Slack
- …
SSO 省去了使用者記憶多組的麻煩,能快速在同組織的不同服務下一鍵切換。
SSO 的兩種設計協定
SSO 是以「聯合身分(federated identity)」的概念設計而成。聯合身分能夠跨多個信任的獨立系統,彼此分享使用者的身分資訊。
基於此概念,有兩種設計協定:
- OpenID Connect
- SAML (Security assertion markup language, 安全聲明標記語言)
OpenID Connect
常見的 Google Sign in 頁面就使用了 OpenID Connect。
在 Google 使用 SSO 登入後,可以用一個 Google 帳號使用以下服務
- Gmail
- YouTube
- Google Analytics
OpenID Connect 使用 JWT (JSON Web Token) 來分享身分資訊,JWT 是經過簽署的 JSON 檔案。下方是 JWT 檔案的範例:
什麼是SAML?
另外一種 SSO 設計協定。
以 XML 來分享身分資訊,在大型企業的工作環境也很常看到。例如
- Microsoft 的 AD RMS
- Dropbox
- Slack
- Salesforce
- Sentry
- Zoom
- …
用於使用者後續登入 SaaS 服務。
下一篇我們實際來說說「當使用者使用 SSO 登入 Gmail 後,背後系統間發生的事情。」
此篇文章主要參考 ByteByteGo YouTube - What Is Single Sign-on (SSO)? How It Works
瀏覽 2,804 次