說明 OAuth
OAuth 是一種技術標準,可讓您授權一個應用程式或服務登入另一個應用程式或服務,而不會洩露密碼等私人資訊。如果您曾經收到過如 [使用 Facebook 登入?] 之類的訊息 或 [允許此應用程式存取您的帳戶嗎?] 您就已經看過 OAuth 的實際應用。
OAuth 全名為 Open Authorization,而不是有時候被誤解的驗證。驗證是一種驗證身分識別的程序。OAuth 確實涉及您的身分,但其目的是授予權限,讓您順利地連線到不同應用程式和服務,而無需建立新帳戶。OAuth 提供了簡單的體驗,讓您可以選擇授權兩個應用程式共用您的部分資料,而無需透露您的認證。它在便利性和安全性之間取得了平衡。
OAuth 設計為與超文字傳輸通訊協定 (HTTP) 搭配使用。它使用存取權杖來證明您的身分並允許它代表您與其他服務互動。如果第二個服務遭受資料外洩,您在第一個服務上的認證將維持安全。OAuth 是一種廣泛採用的開放標準通訊協定,大多數網站和應用程式開發人員都使用它。
重要的是,OAuth 不會授予第三方應用程式或服務無限制地存取您的資料。該通訊協定的一部分是指定第三方可存取的資料,以及使用該資料的用途。在多人可以存取大量敏感和專屬資訊的商務案例中,設定此類限制並保護一般身分識別特別重要。
OAuth 的運作方式為何?
存取權杖使讓人安全使用 OAuth 的原因。存取權杖是一段資料,其中包含有關使用者和權杖所針對的資源的資訊。權杖也會包含資料共用的特定規則。
例如,您可能想與照片編輯應用程式共用社交媒體個人資料中的照片,但您只希望該應用程式存取您的部分照片。該應用程式也不需要存取您的直接訊息或好友名單。權杖只會授權存取您核准的資料。有時候也會有規則限制應用程式何時可以使用該權杖 (可能只能單次使用或重複使用),以及有效期限。
OAuth 程序主要是機器對機器的互動,只有幾個使用者接觸點。在某些情況下,您可能不需要提供核准,因為它是由軟體在背景默默處理的。這兩個 OAuth 範例是在企業工作案例中,其中身分識別平台負責處理資源之間的連線以減少大量使用者的 IT 摩擦,或在某些智慧型裝置之間的互動。
OAuth 技術的範例
與許多簡化繁瑣工作的技術一樣 (在本案例中是在多個應用程式中手動建立帳戶),OAuth 幾乎已被應用程式建立者普遍採用。它為個人和企業提供了廣泛的使用案例。
舉一個 OAuth 範例,假設您使用 Microsoft Teams 作為共同作業工具,並且想要存取有關共事者的 (組織內外) 的更多資訊。您決定啟用 LinkedIn 整合功能,以便您可以在與共事者互動時更深入了解他們,而無需離開 Teams。然後,Microsoft 和 LinkedIn 將使用 OAuth 授權將您的帳戶與您的 Microsoft 身分識別連結。
使用 OAuth 的另一個案例是,您要下載預算應用程式來協助您透過警示和視覺輔助工具 (例如圖表) 追蹤支出。為了完成這項工作,該應用程式需要存取您的一些銀行資料。您可以提出將銀行帳戶與應用程式連結的要求,僅授權存取您的帳戶餘額和交易。應用程式與銀行會使用 OAuth 代表您進行這項資訊交換,而不會向應用程式顯示您的銀行登入認證。
另一個 OAuth 範例是,您是使用 GitHub 的開發人員,並且您發現有一個第三方應用程式可以與您的帳戶整合以執行自動程式碼檢閱。您前往 GitHub Marketplace 並下載該應用程式。然後,它會要求您使用 GitHub 身分識別來授權與應用程式的連線,該程序將使用 OAuth 處理。然後,檢閱應用程式就可以存取您的程式碼,而您就不需每次都登入這兩個服務。
OAuth 1.0 和 OAuth 2.0 有何不同?
原始 OAuth 1.0 僅針對網站開發。目前它尚未廣泛使用,因為 OAuth 2.0 是為應用程式和網站設計的,而且它速度更快、更容易實作。OAuth 1.0 的擴充性不像 OAuth 2.0,而且它只有三種可能的授權流程,而 OAuth 2.0 有六種授權流程。
如果您計畫使用 OAuth,最好一開始就使用 2.0 版本。遺憾的是,OAuth 1.0 無法升級到 OAuth 2.0。OAuth 2.0 目的在對 OAuth 1.0 進行徹底的重新設計,幾家主要科技公司提供了有關其設計的意見反應。網站可以同時支援 OAuth 1.0 和 OAuth 2.0,但建立者則希望 2.0 完全取代 1.0。
OAuth 與OIDC
OAuth 和 Open ID Connect (OIDC) 是密切相關的通訊協定。它們的相似之處在於,它們都可讓一個應用程式代表使用者存取另一個應用程式的資源。差異在於,OAuth 用於授權存取資源,而 OIDC 用於人員的身分驗證。兩者都可以讓兩個無關的應用程式共用資訊,同時不會危害使用者資料的隱私權。
識別提供者通常會同時使用 OAuth 2.0 和 OIDC。OIDC 透過新增身分識別層級,特別開發來增強 OAuth 2.0 的功能。由於它是基於 OAuth 2.0 建置,因此 OIDC 不向後相容於 OAuth 1.0。
開始使用 OAuth
在您的網站和應用程式中使用 OAuth 2.0 可以簡化身分驗證流程,進而大幅改善您的使用者或員工體驗。若要開始使用,請先投資識別提供者解決方案,例如 Microsoft Entra,它可以透過內建安全性保護使用者和資料
Microsoft Entra ID (以前稱為 Azure Active Directory) 支援所有 OAuth 2.0 流程。應用程式開發人員可以使用 ID 作為標準型驗證提供者,協助他們將企業規模的新式身分識別功能整合到應用程式中。IT 系統管理員可以使用它來控制存取權。
深入了解 Microsoft 安全性
常見問題集
-
OAuth 全名為 Open Authorization,是一種技術標準,可讓您授權一個應用程式或服務登入另一個應用程式或服務,而不會洩露密碼等私人資訊。當應用程式要求您授權,以查看您的個人資料資訊時,表示它正在使用 OAuth。
-
OAuth 透過交換存取權杖運作,存取權杖是一段資料,其中包含有關使用者和權杖所針對的資源的資訊。一個應用程式或網站與另一個應用程式或網站交換有關使用者的加密訊息,並包含資料共用的特定規則。有時候也會有規則限制應用程式何時可以使用該權杖以及有效期限。OAuth 程序主要是機器對機器的互動,只有幾個使用者接觸點 (如果有)
-
許多公司使用 OAuth 來簡化對第三方應用程式和網站的存取,且不會洩露使用者的密碼或敏感資料。Google、Amazon、Microsoft、Facebook 和 Twitter 都使用它來共用帳戶相關資訊,以用於各種用途,包括簡化購買程序。Microsoft 身分識別平台使用 OAuth 來授權公司與學校帳戶、個人帳戶、社交帳戶和遊戲帳戶的權限。
-
OAuth 和 Open ID Connect (OIDC) 是密切相關的通訊協定。它們的相似之處在於,它們都可讓一個應用程式代表使用者存取另一個應用程式的資源。然而,差異在於 OAuth 用於授權存取資源,而 OIDC 用於人員的身分驗證。兩者都可以讓兩個無關的應用程式共用資訊,同時不會危害使用者資料的隱私權。
-
OAuth 1.0 和 OAuth 2.0 之間存在許多差異,因為 OAuth 2.0 是 OAuth 1.0 的徹底重新設計,導致 OAuth 1.0 幾乎過時。OAuth 1.0 只針對網站而開發,而 OAuth 2.0 則專為應用程式和網站所設計。與 OAuth 1.0 的三種授權流程相比,OAuth 2.0 速度更快、更容易實作,可以擴充,並且有六種可能的授權流程。
關注 Microsoft 365