媒體BuzzFeed開源其受Google身份識別代理(Identity Aware Proxy)啟發所發展的單一登入認證代理(Single-Sign-On Authentication Proxy,SSO),以支援員工全球化的工作模式,為旗下多應用程式網站提供單一登入服務。

由於BuzzFeed的軟體生態系由數百個互相交互的微服務組成,部分這些應用程式會在網路上公開,有權限的人才可登入使用。BuzzFeed提到,由於全球員工成長,將工具曝露在網路上,供內部員工使用的需求明顯成長,因此安全方便的身分認證需求也跟著增加。

為了建立真實單一來源的身分,BuzzFeed過去使用了Bitly的開源Oauth2_proxy服務,這個反向代理使用第三方包括Google或是GitHub等OAuth2供應商服務來認證並授權請求,BuzzFeed以Oauth2_proxy加速應用程式的開發,讓開發人員不需要每次建置服務,都要重新實作身分驗證功能。過去有一段時間BuzzFeed大量的使用Oauth2_proxy解決方案,但是隨著服務成長,發現可擴展程度不如預期發展。

BuzzFeed提到,對營運商來說,要管理爆炸成長的樣板授權代理服務非常的困難,身分驗證功能的關鍵安全性修復程序,需要進行超過百次的補丁和部署,因為每一個受保護的微服務都有自己認證代理服務,使得控制這些服務存取,成為一項很大的挑戰。而可擴展性也不是只有系統營運和開發會遇到,對終端用戶也會造成困擾,這些用戶需要單獨登入每個應用程式,讓工作流程過於繁瑣,而且也養成盲目點擊OAuth2登錄流程的壞習慣,員工容易遭受釣魚攻擊。

BuzzFeed自行開發了SSO來解決這個問題,現在使用者只要登錄一次,就能夠授權存取所有的應用程式。SSO由sso-auth以及sso-proxy兩個部分組成,分別執行巢狀授權流程以及代理請求,sso-auth是一個中央授權服務,可以直接透過第三方服務完成OAuth流程。sso-proxy則能確保所有請求都經過授權,才將使用者請求導至上游服務。

用戶第一次登入受SSO保護的網站時,會被轉址到sso-auth進行認證,當用戶存取另一個受SSO保護的網站時,瀏覽器會先被轉址到sso-auth,由於身分已經過驗證,便會進行自動登入,接著被導向sso-proxy。SSO不只讓員工登入應用程式變得更容易,而且現在開發人員維護身分驗證服務的安全性也更輕鬆,只需要修復一個地方就可以了。

熱門新聞

Advertisement