2 天
後端.NET技術類 精通 OAuth 2.0 授權框架這堂課的設計初衷,就是希望可以替開發人員帶來全面且完整的 OAuth 2.0 知識架構, 並且透過串接多家 OAuth 2.0 服務提供者的過程,不斷驗證自己所吸收的觀念是否完整理解, 也同時得知多家 OAuth 2.0 提供者不同的特性與設計邏輯,更加深入的理解 OAuth 2.0 確切的運作方式, 讓自己有能力自行實作出完整的 OAuth 2.0 應用。

此課程適合給...

  • 想一次搞懂 OAuth 2.0 的開發人員
    .以網站建置為主的開發人員
    .以行動版 APP 為主的開發人員
    .以桌面應用程式為主的開發人員
    .需要串接第三方 OAuth 2.0 授權流程的開發人員
  • 學員應具備基本 HTTP 操作能力
    .本課程盡量不牽涉各種前後端框架或程式語言
    .部分作業需要學員自行實作 OAuth 2.0 授權過程
    .本課程不適合完全沒有 Web 開發經驗的人
  • 建議事先看過我的 「初學者都該學會的 HTTP 通訊協定基礎」 直播影片
  • 需了解基礎 Postman 使用方式
    .知道如何設定 Request 的 Headers 與 Body
    .瞭解 Collections 與 Environments 的使用方式

上完此課程你將會...

  • 完整理解 OAuth 2.0 的授權與應用方式
  • 順利串接各家網路服務提供者的 OAuth 2.0 / OIDC 服務
  • 能夠擁有完整的知識來實作自家服務的 OAuth 2.0 提供者

OAuth 是一份開放式授權標準 (RFC 6749),它允許使用者在使用第三方應用程式存取自己儲存在特定網站上的私密資源, 而無需將帳號與密碼提供給第三方應用程式。目前你可以聽過的所有知名網路服務如 Google, Microsoft, Facebook, Twitter, Dropbox, … 等網站,只要可以整合第三方應用程式,幾乎都提供 OAuth 授權框架,其重要性不言可喻。

有鑑於我這幾年實作過不少 OAuth 2.0 相關應用,也看過許多錯誤的實作與不安全的設計, 無論是 OAuth 用戶端或 OAuth 提供者端,對於第一次接觸的開發者來說,都是個不小的門檻。 因為 OAuth 2.0 有許多複雜難懂的角色定義、授權流程、擴充方式,不同的服務提供者之間也都有一些細微的差異, 且各家網路服務提供者對於第三方應用程式的管理邏輯也不盡相同,這對於首次接觸 OAuth 2.0 的開發者來說, 更加帶來不小的學習壓力。我最常看見的應用方式,都是套用現成的開發套件,感覺很輕鬆的套用 OAuth 2.0 授權流程, 但是只要流程稍微擴充一點,套件就不能用了,不能用又改不動,就會感覺很痛苦,不知道自己做的對不對。

這堂課的設計初衷,就是希望可以替開發人員帶來全面且完整的 OAuth 2.0 知識架構, 並且透過串接多家 OAuth 2.0 服務提供者的過程,不斷驗證自己所吸收的觀念是否完整理解, 也同時得知多家 OAuth 2.0 提供者不同的特性與設計邏輯,更加深入的理解 OAuth 2.0 確切的運作方式, 讓自己有能力自行實作出完整的 OAuth 2.0 應用。

課程內容

  • 簡介 OAuth 2.0 (共 4 章)
    4

    簡介 OAuth 2.0

    • 傳統應用程式的授權流程與其問題
    • 認識 OAuth 2.0 重要的角色定義
    • 理解 OAuth 2.0 的授權流程
    • 認識 Access Token / Bearer Token / Refresh Token
  • 深入理解 OAuth 2.0 授權流程(共 6 章)
    6

    深入理解 OAuth 2.0 授權流程

    • 授權碼 (Authorization Code)
    • 隱含授權 (Implicit)
    • 密碼認證 (Resource Owner Password Credentials) (ROPC)
    • 用戶端認證 (Client Credentials)
    • 裝置授權 (Device Code)
    • 瞭解原生應用程式的授權流程
  • 認識 OpenID Connect (OIDC) 認證協議(共 5 章)
    5

    認識 OpenID Connect (OIDC) 認證協議

    • 理解 OpenID Connect 的角色定義
    • 理解 OpenID Connect 的主要運作流程
    • 認識 ID Token
    • 認識 JSON Web Token (JWT)
    • 理解 Claims (聲明資訊) 代表的意義
  • 實戰 OAuth 2.0 授權流程(用戶端)(共 4 章)
    4

    實戰 OAuth 2.0 授權流程(用戶端)

    • 用戶端註冊
    • 取得協定端點
    • 取得授權與 Access Token
    • 實作時的安全性要點整理
    • .實作 Web 應用程式的安全性要點
    • .實作純前端 SPA 應用程式的安全性要點
    • .實作原生應用程式的安全性要點 (桌面應用程式/行動版 App)
  • 實戰 OAuth 2.0 授權流程(服務提供者)(共 3 章)
    3

    實戰 OAuth 2.0 授權流程(服務提供者)

    • 核發 Access Token 的注意事項
    • 換發 Access Token 的注意事項 ( Refresh Token )
    • 存取資源伺服器的實作要點
  • 課程中會用到的練習主題 (部分練習將會以回家作業的方式自行實作)(共 8 章)
    8

    課程中會用到的練習主題 (部分練習將會以回家作業的方式自行實作)

    • 透過 Microsoft Graph 理解 OAuth 2.0 授權流程
    • .理解 Application 與 Delegated 的差異
    • .實作授權碼流程 (Authorization Code Grant Type Flow)
    • .實作隱含授權流程 (Implicit Grant Type Flow)
    • .實作密碼認證流程 (ROPC Grant Type Flow)
    • .實作用戶端認證流程 (Client Credentials Grant Type Flow)
    • .實作代理者授權流程 (On-Behalf-Of Flow)
    • .實作裝置授權流程 (Device Authorization Grant Flow)
    • 透過 Google APIs 理解 OAuth 2.0 授權流程
    • .實作授權碼流程 (Authorization Code Grant Type Flow)
    • .實作隱含授權流程 (Implicit Grant Type Flow)
    • 透過 Azure REST APIs 理解 OAuth 2.0 授權流程
    • .實作授權碼流程 (Authorization Code Grant Type Flow)
    • .實作用戶端認證流程 (Client Credentials Grant Type Flow)
    • 透過 Facebook API 理解 OAuth 2.0 授權流程
    • .實作授權碼流程 (Authorization Code Grant Type Flow)
    • .實作隱含授權流程 (Implicit Grant Type Flow)
    • .實作裝置授權流程 (Device Authorization Grant Flow)
    • 透過 GitHub API 理解 OAuth 2.0 授權流程
    • .實作授權碼流程 (Authorization Code Grant Type Flow)
    • .實作裝置授權流程 (Device Authorization Grant Flow)
    • 透過 Dropbox API 理解 OAuth 2.0 授權流程
    • .實作授權碼流程 (Authorization Code Grant Type Flow)
    • .實作隱含授權流程 (Implicit Grant Type Flow)
    • 透過 LINE Login 與 LINE Notify 理解 OAuth 2.0 授權流程
    • .實作授權碼流程 (Authorization Code Grant Type Flow)
    • 透過 Twitter API 理解 OAuth 2.0 授權流程
    • .實作授權碼流程 (Authorization Code Grant Type Flow)
  • 開發框架示範(共 4 章)
    4

    開發框架示範

    • 使用 ASP.NET Core 6.0 實作 OAuth 2.0 用戶端應用程式
    • 使用 Java Spring Boot 實作 OAuth 2.0 用戶端應用程式
    • 使用 Angular 實作 OAuth 2.0 用戶端應用程式
    • 使用 IdentityServer4 實作 OAuth 2.0 / OIDC 提供者
4

簡介 OAuth 2.0

  • 傳統應用程式的授權流程與其問題
  • 認識 OAuth 2.0 重要的角色定義
  • 理解 OAuth 2.0 的授權流程
  • 認識 Access Token / Bearer Token / Refresh Token
6

深入理解 OAuth 2.0 授權流程

  • 授權碼 (Authorization Code)
  • 隱含授權 (Implicit)
  • 密碼認證 (Resource Owner Password Credentials) (ROPC)
  • 用戶端認證 (Client Credentials)
  • 裝置授權 (Device Code)
  • 瞭解原生應用程式的授權流程
5

認識 OpenID Connect (OIDC) 認證協議

  • 理解 OpenID Connect 的角色定義
  • 理解 OpenID Connect 的主要運作流程
  • 認識 ID Token
  • 認識 JSON Web Token (JWT)
  • 理解 Claims (聲明資訊) 代表的意義
4

實戰 OAuth 2.0 授權流程(用戶端)

  • 用戶端註冊
  • 取得協定端點
  • 取得授權與 Access Token
  • 實作時的安全性要點整理
  • .實作 Web 應用程式的安全性要點
  • .實作純前端 SPA 應用程式的安全性要點
  • .實作原生應用程式的安全性要點 (桌面應用程式/行動版 App)
3

實戰 OAuth 2.0 授權流程(服務提供者)

  • 核發 Access Token 的注意事項
  • 換發 Access Token 的注意事項 ( Refresh Token )
  • 存取資源伺服器的實作要點
8

課程中會用到的練習主題 (部分練習將會以回家作業的方式自行實作)

  • 透過 Microsoft Graph 理解 OAuth 2.0 授權流程
  • .理解 Application 與 Delegated 的差異
  • .實作授權碼流程 (Authorization Code Grant Type Flow)
  • .實作隱含授權流程 (Implicit Grant Type Flow)
  • .實作密碼認證流程 (ROPC Grant Type Flow)
  • .實作用戶端認證流程 (Client Credentials Grant Type Flow)
  • .實作代理者授權流程 (On-Behalf-Of Flow)
  • .實作裝置授權流程 (Device Authorization Grant Flow)
  • 透過 Google APIs 理解 OAuth 2.0 授權流程
  • .實作授權碼流程 (Authorization Code Grant Type Flow)
  • .實作隱含授權流程 (Implicit Grant Type Flow)
  • 透過 Azure REST APIs 理解 OAuth 2.0 授權流程
  • .實作授權碼流程 (Authorization Code Grant Type Flow)
  • .實作用戶端認證流程 (Client Credentials Grant Type Flow)
  • 透過 Facebook API 理解 OAuth 2.0 授權流程
  • .實作授權碼流程 (Authorization Code Grant Type Flow)
  • .實作隱含授權流程 (Implicit Grant Type Flow)
  • .實作裝置授權流程 (Device Authorization Grant Flow)
  • 透過 GitHub API 理解 OAuth 2.0 授權流程
  • .實作授權碼流程 (Authorization Code Grant Type Flow)
  • .實作裝置授權流程 (Device Authorization Grant Flow)
  • 透過 Dropbox API 理解 OAuth 2.0 授權流程
  • .實作授權碼流程 (Authorization Code Grant Type Flow)
  • .實作隱含授權流程 (Implicit Grant Type Flow)
  • 透過 LINE Login 與 LINE Notify 理解 OAuth 2.0 授權流程
  • .實作授權碼流程 (Authorization Code Grant Type Flow)
  • 透過 Twitter API 理解 OAuth 2.0 授權流程
  • .實作授權碼流程 (Authorization Code Grant Type Flow)
4

開發框架示範

  • 使用 ASP.NET Core 6.0 實作 OAuth 2.0 用戶端應用程式
  • 使用 Java Spring Boot 實作 OAuth 2.0 用戶端應用程式
  • 使用 Angular 實作 OAuth 2.0 用戶端應用程式
  • 使用 IdentityServer4 實作 OAuth 2.0 / OIDC 提供者

講師介紹

保哥

Will

2019 年獲選 Microsoft Regional Director (RD) 微軟技術社群區域總監

2018 年榮獲 Angular/Web GDE (Google Developer Expert) 開發專家

2008 至今連續 15 度當選 Microsoft MVP 微軟最有價值專家 (Developer Technologies)。

2013 年曾獲選第 6 屆iT邦幫忙鐵人賽【iT邦幫忙鐵人賽年度大獎】、【開發技術組年度鐵人】、【iT邦幫忙鐵人賽優選】三項殊榮。

熟悉 Angular、JavaScript、.NET、C#、ASP.NET MVC、Go、Docker、Kubernetes 相關技術。擅長 DevOps 與組織文化建立、軟體團隊建構與管理。熱愛分享知識。

曾擔任 Visual Studio 2010 上市發表會講師、MSDN 講座講師、TechDays Taiwan 2010~2015 講師、TechEd China 2011, 2013 講師。

出版著作有 ASP.NET MVC 2 開發實戰、Windows Phone 開發實戰、ASP.NET MVC 4 開發實戰等書籍。

部落格 http://blog.miniasp.com

FB 粉絲頁 https://www.facebook.com/will.fans

學員回饋
Contact Us聯絡多奇
聯絡多奇為您提供最專業的協助!
background image background image