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