技術標準 OAuth (1)

基本介紹

教學目標

初步了解 OAuth 授權協定的流程。

重點概念

OAuth 是 Open Authorization 的縮寫, 透過 OAuth 協定,使用者可以在不透漏帳號密碼的情況之下,授權第三方網路應用服務使用原本提供的網路服務,基本上 OAuth 協定目前可分為 OAuth 和 OAuth 2.0 兩種:

OAuth 1.0

認證及授權的過程中涉及三種角色包括:

  • 服務提供者 (Service Provider):
    允許透過 OAuth 協定進行存取的 Web 應用程式。
  • 使用者 (User):
    擁有服務提供者的帳戶的個人。
  • 用戶端 (Consumer):
    一個使用 OAuth 協定代表用戶進行存取服務提供者的網站或應用程式。

基本上處理的流程步驟如下:

  1. 用戶端會要求 Token
  2. 服務提供者會授予 Token
  3. 用戶端會直接將使用者直接導向服務提供者
  4. 服務提供者會直接將使用者直接導向用戶端
  5. 用戶端會請求存取 Token
  6. 服務提供者會授予存取 Token
  7. 用戶端可以存取受保護的資源

OAuth 1.0 流程圖

OAuth 2.0

認證及授權的過程中涉及的四種角色包括:

  • 資源擁有者 (Resource Owner) :
    授予存取受保護資源的能力。
  • 資源伺服器 (Resource Server) :
    託管受保護的資源的伺服器,能夠透過存取 Token 回應受保護資源的請求。
  • 用戶端 (Client) :
    代表受保護資源請求的應用程式資源授權的擁有者。
  • 授權伺服器 (Authorization Server) :
    發出存取 Token 成功後,用戶端存取伺服器驗證資源擁有者獲得授權。

基本上處理的流程步驟如下:

  1. 用戶端會向資源擁有者請求授權
  2. 資源擁有者會授予用戶端權限
  3. 用戶端會將被授予的權限和用戶端憑證傳給授權伺服器
  4. 授權伺服器會將存取 Token 傳給用戶端
  5. 用戶端會透過存取 Token 請求資源伺服器存取受保護的資源
  6. 資源伺服器驗證存取 Token 後會將受保護的資源給用戶端

OAuth 2.0 流程圖

相關資源