2014-12-07
Tags:
oauth2
這陣子因為工作上需要,必需了解 OAuth2 原理。在網路上查了一陣子後發現下面這份解說詳盡的投影片,有興趣的人可以參考一下...:)
簡單易懂的 OAuth 2.0 (
投影片) (
錄影)
我沒有實作 OAuth2 的需求,但是有使用 OAuth2 的需求,必需對它裡面的認証、授權機制有通盤了解。投影片裡跟 OAuth2 認証、授權相關的資料節錄如下,並做摘要說明。
======================================================================
OAuth2 裡的 Role
- Authorization Server
- 「Authorization Server」發出去的授權碼有二種,分別是「Grant Code」、「Token」
- 「Resource Owner」同意「Client」存取「Resource Owner」的資料時,「Authorization Server」發「Grant Code」給「Client」
- 「Client」可以拿「Grant Code」跟「Authorization Server」換「Token」
- Resource Server
- 「Resource Server」的存取認証是認「Token」不是認「Grant Code」
- 用「Token」跟「Resource Server」進行認証,認証成功後可以存取「Resource Owner」的資料
======================================================================
OAuth2 授權流程
- Authorization Code Grant Flow
先跟「Authorization Server」要「Grant Code」,接著再用「Grant Code」去跟「Authorization Server」換「Token」
- Implicit Grant Flow
直接跟「Authorization Server」要「Token」,沒有「Grant Code」換「Token」的步驟
- Resource Owner Password Credentials Grant Flow
拿「Resource Owner」的 username、password 去跟「Authorization Server」要「Token」
- Client Credentials Grant Flow
「Authorization Server」不需經由認証就直接給「Token」