iT邦幫忙

2022 iThome 鐵人賽

DAY 9
0
自我挑戰組

Identity Management 系列 第 9

09 - OAuth (3) Implicit grant

  • 分享至 

  • xImage
  •  

https://ithelp.ithome.com.tw/upload/images/20220920/201160031eGBYmcGYK.png

Implicit grant 是 OAuth 其中一種授權方式,過去適用於 public client,譬如單純的 SPA (Single Page Application),讓 SPA 可以直接呼叫 Resource server api 來取得資源。

Roles

在上面這張示意圖中,有幾個主要的 roles:

  • User - 使用者
  • Browser - 使用者與應用程式的互動介面。也就是 client 的前端應用程式
  • Authorization server - 協助授權的應用程式
  • Resource server - 使用者存放資源的地方

Steps

1

使用者正在使用某應用程式 (Client) ,在某一個時間點,想要讓這個應用程式載入自己存放在另外一個地方 (Resource server) 的資源,譬如照片。

於是,使用者點擊了某個按鈕,譬如「連結我的照片」

2

這時 Client 就會將使用者轉到 (redirect) Authorization server

3

當來到 Authorization server,便會將使用者導向登入頁面。這裡的登入頁面在 Authorization server,而不在 ClientResource server 任何一方。

4

使用者看到登入頁面之後,就會輸入自己的帳號密碼,讓 Authorization server 進行驗證

5

Authorization server 確認使用者後,便會將使用找導回 (redirect) 到 Client,並同時在 URL 當中挾帶 access token

6

Client 拿到 access token 之後就可以帶著這個 token 向 Resource server 送出資源的請求。而 Resource server 就會根據 access token 當中的權限設定,來決定是否要送出資源給 Client


同樣的在 step 2 和 5 的部分,其行為是 "redirect" 而非 "api 請求",因此在這兩個步驟當中所夾帶的資料會暴露在 url 當中。也就是說,這個授權方式其實會暴露重要的 access token

因此如果可以的話,還是建議使用看起來麻煩但相對安全的 Authorization code grant


明天繼續來看看其他的 OAuth grant type!


上一篇
08 - OAuth (2) Authorization code grant
下一篇
10 - OAuth (4) Resource owner password credentials grant
系列文
Identity Management 31
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言