top of page
雪天

OAuth2.0 小教室

什麼是 OAuth2.0?

OAuth 2.0 是一種授權通訊協定,授與應用程式對資源的安全存取權。當使用者 (Resource Owner) 操作應用程式 (Client) 時,向身份認證服務 (Authorization Server) 認證並取得權限,無需共用實際的使用者驗證資訊,例如使用者名稱和密碼,再允許應用程式以此權限請求使用者擁有的資源。

OAuth2.0 vs. OAuth1.0

EZoAuth 表格

​使用簽名金鑰(token secret)和權杖金鑰(token key)來進行授權驗證

採用三步授權流程(request token -> user authorization -> access token),需要使用者在授權過程中輸入用戶名和密碼,比較繁瑣

使用了 HMAC-SHA1 演算法對每個請求進行簽名,確保請求的完整性和安全性

適用於單個 API 的授權

適用於多個 API 的授權

使用 HTTPS 協定來保護授權請求和回應,確保通信的安全性

採用四步授權流程(authorization code -> access token -> refresh token -> protected resource),使用者只需在第一步輸入用戶名和密碼即可,授權過程更加簡單

使用訪問權杖(access token)和刷新權杖(refresh token)來進行授權驗證

OAuth2.0 比 OAuth1.0 更加靈活和可擴展,可以根據需要添加新的授權方式和授權範圍

OAuth1.0

OAuth2.0

授權方式

授權流程

安全性

適用範圍

可擴展性

綜合上述,OAuth2.0 較 OAuth1.0 更加簡單、靈活和安全,支持多個 API 的授權,因此越來越多的網站和應用程式採用 OAuth2.0 協定來進行使用者授權。

OAuth2.0 協議流程圖

EZoAuth OAuth2.0 協議流程圖
A
B
C
D
E
F

Client 端向 Resource Owner 發送 Authorization request (授權請求)。

Resource Owner 給予 Client 端 Authorization grant (授權許可)。

Client 端向 Authorization server 請求 Access token (訪問令牌),雙方進行身分認證,Client 端也同時出示 Authorization grant (授權許可)。

Authorization server 向 Resource Owner 驗證 Client 的身份與授權許可,若合法,則簽發 Access token (訪問令牌) 給予 Client 端。

Client 端取得 Access token (訪問令牌) 後,再向 Resource server 請求 Protected resource (受保護資料),並出示 Access token (訪問令牌) 進行身份驗證。

Resource server 驗證來自 Client 端傳送的 Access token (訪問令牌),若合法,則回傳 Protected resource (受保護資料) 給 Client 端。

bottom of page