為了要能夠呼叫 Google Cloud Platform (GCP
) 上的 API 資源,我們通常要透過 OAuth 2.0 的方式來取得存取權杖 (Access Token)。其實 Google 對 .NET 的支援還算完整,只是文件寫的太差,為了要能成功串好這個 OAuth 流程,花了我不少時間,主要是沒辦法找到一個清楚且完整的範例程式。也因為網路上可用的範例程式太少,導致各大 LLM 平台的回答都充滿了幻覺,每個都在胡說八道。這篇文章我就分享「服務帳戶」如何取得 Access Token 的方法,並提供一個完整可用的範例程式。
... 繼續閱讀 ...
Gmail API 是一個 RESTful API,主要用來管理 Gmail 信箱與發送郵件,而要通過認證的方法,就是使用 Google 的 OAuth 來進行驗證與授權,若你要用 .NET 來開發 Google API 應用,可以說幾乎找不到完整的文件與範例程式可供參考,所以上手確實有點難度。今天我就整理一下今天的研究心得,記錄一些常見的程式寫法。
... 繼續閱讀 ...
由於每一家不同的 OAuth 2.0 Provider 對於 Refresh Token 的核發方法都不盡相同,這篇文章我打算記錄一下 Google OAuth 2.0 發出 Refresh Token 的方法。
... 繼續閱讀 ...
我們都知道 OAuth 2.0 提供了一系列授權的流程標準,但各家 OAuth 2.0 提供者通常都有各自的授權管理機制,這部分並沒有規範在 OAuth 2.0 規格中,因此不同平台之間的實作差異相當大。今天我以「使用者」的角度來看「授權」這件事,當我們授權給「用戶端」應用程式之後,若想撤銷授權,這篇文章特別整理各個不同平台撤銷權限的主要網址。
... 繼續閱讀 ...
要透過 Google Cloud Platform (GCP) 的 OAuth 2.0 Client IDs 存取任何 Google 雲端服務,除了要走過 OAuth 2.0 的授權流程外,每個服務都需要事先啟用才能使用。除此之外,你還需要設定 CONSENT SCREEN 才行,這篇文章我打算來解說第一次設定 Google 服務與 OAuth 2.0 Client IDs 的注意事項。
... 繼續閱讀 ...
我上周在 精通 OAuth 2.0 授權框架 課堂上示範 Facebook 的 OAuth 2.0 如何進行實作,結果過程中不小心啟用一個進階設定中的需要應用程式密鑰(Require app secret)選項,結果導致我在拿到 Access Token 之後竟然無法成功呼叫任何 Graph API。在我詳細研究之後,發現這個選項確實可以很好的增強 Access Token 使用的安全性,這篇文章我將來說明這個選項的來龍去脈,讓大家知道這個選項的確切用法。
... 繼續閱讀 ...
我們公司採用 Microsoft 365 辦公協作環境,這也意味著背後一定使用了 Azure AD 目錄服務,因此我們可以直接拿 Azure AD 作為公司的 OAuth 2.0 + OpenId Connect (OIDC) 認證與授權平台,因此開發公司內部應用程式就變的非常容易。這篇文章我將說明要將一個 ASP.NET Core 網站加入 Azure AD 的身份驗證流程,以及使用時的注意事項。
... 繼續閱讀 ...
前幾天原本想用 ASP.NET Core 寫一個最簡單的 LINE Login 範例程式出來,結果想不到這麼簡單的功能,卡關了兩天才找出解決之道。如果單純的透過 OAuth 2.0 授權流程來取得 Access Token 與 ID Token 其實還蠻簡單的。但是若希望可以做到 OpenID Connect 流程中自動透過 JWK (RFC 7517: JSON Web Key) 來驗證 Token 的有效性,這時可以直接使用 ASP.NET Core 內建的 Microsoft.AspNetCore.Authentication.OpenIdConnect 套件來完成。不過當方便的套件遇到特殊的實作時,那麼就是一場災難啦。這篇文章我打算來說說這次的踩雷之旅!
... 繼續閱讀 ...
我們在建立含有 Query String 網址時,若是用字串串接的方式來實作,程式碼會相對的比較醜一點。從 ASP.NET Core 1.0 開始,就有好幾個專門用來建立 Query String 的類別,這些類別不但可以提升程式碼的可讀性,所有的 Query String 也都會進行必要的 URL Encode 動作,讓你的網址更符合國際標準,建議可以多加利用。
... 繼續閱讀 ...