什麼是 OAuth?| SAML 與 OAuth

OAuth 是一種通訊協定,用於跨多個應用程式延伸使用者授權,而無需與這些應用程式分享使用者的身分驗證資料。

學習目標

閱讀本文後,您將能夠:

  • 瞭解什麼是 OAuth 及其運作原理
  • 探索驗證和授權之間的區別
  • 對比 SAML 與 OAuth

相關內容


想要繼續瞭解嗎?

訂閱 TheNET,這是 Cloudflare 每月對網際網路上最流行見解的總結!

請參閱 Cloudflare 的隱私權政策,了解我們如何收集和處理您的個人資料。

複製文章連結

什麼是 OAuth?

OAuth 是用於授權使用者的技術標準。此通訊協定用於將授權從一項服務傳遞給另一項服務,而無需共用實際的使用者驗證資訊,例如使用者名稱和密碼。使用 OAuth,使用者在一個平台上登入後,可被授權在另一個平台上執行動作和檢視資料。

OAuth 可以將授權從一個應用程式傳遞到另一個應用程式,而不管這兩個應用程式是什麼。OAuth 是用於將授權從單一登入 (SSO) 服務傳遞到另一個雲端應用程式的最常見方法之一,但它可以在任何兩個應用程式之間使用。其他通訊協定也可以執行此功能,但 OAuth 是使用最廣泛的通訊協定之一。

打個比方,訪客在房主不在家時前往其房屋,房主不向訪客郵寄實際的房門鑰匙,而是傳送一個臨時代碼供訪客打開裡面有鑰匙的帶鎖信箱。OAuth 的運作方式與之類似。在 OAuth 中,一個應用程式向另一個應用程式傳送授權權杖來授予使用者存取權限,而不是傳送使用者的認證。

OAuth 授權權杖如何運作?

假設 Alice 想要存取其公司的雲端檔案儲存應用程式。她已登入到公司的 SSO,但當天尚未存取檔案儲存應用程式。當她開啟檔案儲存應用程式時,應用程式不會簡單地讓她進入,而是從她的 SSO 請求對 Alice 的授權。

作為回應,SSO 向應用程式傳送 OAuth 授權權杖。權杖包含有關 Alice 在應用程式中應具有哪些權限的資訊。權杖也有時間限制:一段時間后,權杖將過期,Alice 必須再次登入她的 SSO。

OAuth 權杖通常使用 HTTPS 傳送,這意味著它們是加密的。它們在 OSI 模型第 7 層傳送。

OAuth 有哪些用途?

OAuth 既可用於授權使用者,也可用於允許一個應用程式部分存取另一個應用程式。使用者經常遇到的一個使用案例是允許應用程式存取社交媒體平台或其他線上帳戶。Google 使用者帳戶可以與許多不同的消費者應用程式整合,例如部落格平台、新聞網站和各種線上遊戲。在這些情況下,OAuth 通訊協定會在後台使用,以使這些外部應用程式能夠存取來自 Google 的必要資料。

對於企業而言,OAuth 更常見的使用案例是與身分識別與存取管理 (IAM) 系統結合使用。使用者可以透過 OAuth 獲得應用程式使用授權。例如,員工可以使用其使用者名稱和密碼登入到其公司的 SSO 系統。此 SSO 系統使他們能夠存取完成工作所需的所有應用程式,SSO 系統透過將 OAuth 授權權杖傳遞給這些應用程式來實現此目的。

OAuth 是目前使用的幾種授權通訊協定之一。這些授權通訊協定是必需的,因為需要某種方式在不公開使用者登入資料的情況下在應用程式之間傳送授權資訊。一些平台已經開發了自己的授權方法,例如,Facebook 提供 Facebook Connect。

什麼是 OAuth 2.0?

OAuth 2.0 是 OAuth 的最新版本。OAuth 的第一個版本於 2010 年發佈。OAuth 2.0 於 2012 年發布,它修復了 OAuth 1.0 中存在的許多漏洞。

SAML 與 OAuth:驗證和授權之間有何區別?

授權和驗證聽起來很相似,但在存取管理中並不完全相同,它們之間的區別對於理解存取管理技術(包括 OAuth)的運作原理非常重要。驗證與使用者身分有關,而授權與使用者權限有關。

想像一下,Bob 在一個安全的設施中工作,設施前有一個警衛室。所有想要進入設施的車輛都在警衛室前停下,只有已知的員工才被允許進入。警衛室是進行使用者驗證的地方:保安人員根據員工名單檢查 Bob 的身分證,並根據允許的車輛清單檢查他的車輛牌照。如果他們能夠驗證他和他的車輛,他可以開車進入並停在設施停車場。

不過,Bob 可以開車進入設施並不意味著他可以將車輛停在任何地方。相反,每種類型的員工都有指定的停車場。Bob 只能將車停在他指定的停車場;他不能佔用 CEO 的停車位。

OAuth 是一種用於授權的通訊協定:它確保 Bob 前往正確的停車場。相比之下,安全性聲明標記語言 (SAML) 是一種用於驗證的通訊協定,允許 Bob 通過警衛室。

識別提供者 (IdP) 或 SSO 服務可以相互結合使用,也可以單獨使用 OAuth(儘管使用 OAuth 進行驗證被視為「偽驗證」)。

總結來說:SAML 和 OAuth 是不同的通訊協定,用於不同的目的,但兩者都經常與 SSO 一起使用。

Cloudflare 是否提供使用者驗證或授權?

Cloudflare Zero Trust 目前不提供使用者驗證(如 SSO 服務),但它確實使組織能夠管理使用者存取和權限。Cloudflare 使公司可以在不使用虛擬私人網路 (VPN) 的情況下管理使用者授權。

Cloudflare Zero Trust 與各種 SSO 提供者整合,甚至可以與多個 SSO 整合,從而更輕鬆地為外部機構和承包商提供系統存取權限。閱讀有關多 SSO 與 Cloudflare 的部落格文章,瞭解更多資訊。