☸ 課程介紹
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 授權流程
- 由 Will 保哥 全程線上授課,無地域限制,可即時回應學員任何疑惑
- 學員可透過多種管道提問:FB 社團、Zoom 聊天室、Zoom 共享桌面
- 學員可透過共享螢幕的方式提問與遠端控制,學員可觀摩解決問題的過程
- 課程全程錄影,學員課後 3 個月內可免費無限次重播!
- 課程結束寄發 Will 保哥親筆簽名結業證書 (無價)
☸ 課程編號
- DCT-111007
☸ 課程日期
- 2022/06/26、07/03 (日) (共兩天)
- 09:30 ~ 16:30 (中午休息一小時)
☸ 課程主題
- 基礎 OAuth 2.0 觀念建立
- 簡介 OAuth 2.0
- 傳統應用程式的授權流程與其問題
- 認識 OAuth 2.0 重要的角色定義
- 理解 OAuth 2.0 的授權流程
- 認識 Access Token / Bearer Token / Refresh Token
- 深入理解 OAuth 2.0 授權流程
- 授權碼 (Authorization Code)
- 隱含授權 (Implicit)
- 密碼認證 (Resource Owner Password Credentials) (ROPC)
- 用戶端認證 (Client Credentials)
- 裝置授權 (Device Code)
- 瞭解原生應用程式的授權流程
- 認識 OpenID Connect (OIDC) 認證協議
- 理解 OpenID Connect 的角色定義
- 理解 OpenID Connect 的主要運作流程
- 認識 ID Token
- 認識 JSON Web Token (JWT)
- 理解 Claims (聲明資訊) 代表的意義
- 簡介 OAuth 2.0
- 實戰 OAuth 2.0 授權流程(用戶端)
- 用戶端註冊
- 取得協定端點
- 取得授權與 Access Token
- 實作時的安全性要點整理
- 實作 Web 應用程式的安全性要點
- 實作純前端 SPA 應用程式的安全性要點
- 實作原生應用程式的安全性要點 (桌面應用程式/行動版 App)
- 實戰 OAuth 2.0 授權流程(服務提供者)
- 核發 Access Token 的注意事項
- 換發 Access Token 的注意事項 ( Refresh Token )
- 存取資源伺服器的實作要點
- 課程中會用到的練習主題 (部分練習將會以回家作業的方式自行實作)
- 透過 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)
- 透過 Microsoft Graph 理解 OAuth 2.0 授權流程
- 開發框架示範
- 使用 ASP.NET Core 6.0 實作 OAuth 2.0 用戶端應用程式
- 使用 Java Spring Boot 實作 OAuth 2.0 用戶端應用程式
- 使用 Angular 實作 OAuth 2.0 用戶端應用程式
- 使用 IdentityServer4 實作 OAuth 2.0 / OIDC 提供者
☸ 適合對象
- 想一次搞懂 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 提供者
☸ 講者名單
多奇數位創意有限公司 技術總監 Will 保哥
- 2019 年獲選 Microsoft Regional Director (RD) 微軟技術社群區域總監
- 2018 年榮獲 Angular/Web GDE (Google Developer Expert) 開發專家
- 2008 至今連續 14 度當選 Microsoft MVP 微軟最有價值專家 (Developer Technologies)。
- 2013 年曾獲選第 6 屆iT邦幫忙鐵人賽【iT邦幫忙鐵人賽年度大獎】、【開發技術組年度鐵人】、【iT邦幫忙鐵人賽優選】三項殊榮。
- 熟悉 Web 開發技術、網站效能調校、許多 .NET/C# 開發技術、SQL Server 資料庫開發、網站內容管理系統、Docker 與 Kubernetes。
- 曾擔任 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/
- 粉絲頁: https://www.facebook.com/will.fans
☸ 課程費用
- 優惠價:NT$ 8,000.-
☸ 退換票辦法
- 考量行政成本,已完成繳費之學員如欲取消報名 -
- 開課前 11 天申請退費,退學費 90%。
- 開課前 10 天申請退費,退學費 0%。
- 如需退費,請填寫課程退費申請表,收到申請表,課程專員將寄發通知信
以告知申請進度。
- 統一退費日期為申請日之下個月10號。申請時間為「課程退費申請表」的回覆日期。
- 學員須自行負擔匯款手續費 NT 30 元。
☸ 注意事項
- 學員需事先安裝好實作環境。(課前會公告在FB社團)
- 如需開立三聯式發票,請於報名時提供【公司名稱】與【統一編號】
- 如公司報帳需要,提早開立發票請提前告知或備註
- 若報名課程學員人數不足15人,主辦單位有權取消當次課程,並退還全額課程費用
- 若因不可抗拒因素(如:天災、停電)主辦單位有權取消當次課程,並退還全額課程費用
- 為配合政府落實節能減碳及推動電子發票政策,本公司自民國 107 年開始使用電子發票。為確保您能順利取得電子發票,煩請於下單時再次確認您已提供正確之 E-mail 信箱。