The Will Will Web

記載著 Will 在網路世界的學習心得與技術分享

簡介 ASP.NET Core 資料保護 (Data Protection)

ASP.NET Core Data Protection 提供了一組加密 API (cryptographic API) 來保護資料安全,其中還自動包含了密鑰管理(key management)與密鑰更換(key rotation)等機制。這套技術主要用來長期取代 .NET Framework 的 ASP.NET 1.x ~ 4.x 中 web.config 定義的 <machineKey> 元素,我研究之後發現這套機制不但簡單好上手,背後的金鑰管理也有一定程度的複雜度,可算是相當不錯的資料保護解決方案。這篇文章我想帶大家快速上手 ASP.NET Core 資料保護機制,並透過一個簡單範例說明他的加解密的用法。

... 繼續閱讀 ...

整理各家 OAuth 2.0 平台提供的應用程式授權管理資訊

我們都知道 OAuth 2.0 提供了一系列授權的流程標準,但各家 OAuth 2.0 提供者通常都有各自的授權管理機制,這部分並沒有規範在 OAuth 2.0 規格中,因此不同平台之間的實作差異相當大。今天我以「使用者」的角度來看「授權」這件事,當我們授權給「用戶端」應用程式之後,若想撤銷授權,這篇文章特別整理各個不同平台撤銷權限的主要網址。

... 繼續閱讀 ...

如何用 Docker 快速上手 Keycloak 開發模式

要體驗強大的 Keycloak 這套開源的身分認證與存取管理系統,最簡單的方式莫過於透過 Docker/Podman 執行 Keycloak 的開發模式了。你可以在短時間內就可以架設出一套擁有 OpenID Connect (OIDC) 與 OAuth 2.0 提供者的完整實作,是一套功能強大同時又免費的解決方案。這篇文章我就來描述一下 Keycloak 啟動與初始化設定的過程。

... 繼續閱讀 ...

LINE Login 簽發的 ID Token 如何用 ES256 非對稱加密演算法的公開金鑰驗證

我前陣子在研究 LINE Login 使用的 ES256 非對稱加密演算法,當我透過 OpenId Connect 拿到 ID Token 後,我想拿 LINE Login 提供的 JWKs 金鑰組來驗證其有效性,這篇文章我打算分享如何用 C# 搭配 LINE Login 提供的 JWKs 金鑰組來驗證其有效性!

... 繼續閱讀 ...

第一次設定 Google 雲端服務與 OAuth 2.0 Client IDs 的注意事項

要透過 Google Cloud Platform (GCP) 的 OAuth 2.0 Client IDs 存取任何 Google 雲端服務,除了要走過 OAuth 2.0 的授權流程外,每個服務都需要事先啟用才能使用。除此之外,你還需要設定 CONSENT SCREEN 才行,這篇文章我打算來解說第一次設定 Google 服務與 OAuth 2.0 Client IDs 的注意事項。

... 繼續閱讀 ...

使用 SPA 單一頁面應用程式設計網頁表單應考量密碼管理器需求

由於我公司有使用玉山商業銀行來處理帳務,我經常需要登入玉山全球智匯網以審核放行一些廠商款項,我一直以來都有使用密碼管理器的習慣,確保我的每個網站所使用的密碼都是不一樣的,強化資訊安全。不過,該網站在我用了數幾年之後,從不久之前開始,該網站完全無法自動登入了,深入研究後才發現,原來他們把網頁上的表單欄位的 id 屬性移除了!這篇文章我來說說我解決此問題的過程,也說說前端工程師應注意的事項!

... 繼續閱讀 ...

ASP.NET Core 網站如何整合 Google 的 reCAPTCHA Enterprise 功能

我們公司多奇數位創意的官網去年底全新改版上線,網站上幾乎每頁都有聯絡多奇表單,並透過 AJAX 傳送到後端 API 負責記錄並送出郵件到我們公司的服務信箱,但網站上線一個月以來,已經收到超過 100 條垃圾訊息。因此,我打算將表單加入 Google Cloud Platform (GCP) 的 reCAPTCHA Enterprise 服務,減少收到垃圾訊息的機會,不過我發現 GCP 的文件幾乎找不到任何一份完整的 C# 範例程式,連 ChatGPT 都問不出正確結果。這篇文章我來分享一下完整的開發流程!

... 繼續閱讀 ...

如何正確地替 Azure Active Directory 使用者啟用多因素驗證 (MFA)

我們上周有同事帳號被駭客入侵,在 30 分鐘內被建立了上百台虛擬機器(VM),還好他有設定消費限制,所以他的訂用帳戶(Subscription)一下子就被停用了,然而我到了隔天深夜才收到訂用帳戶停用的通知,如果沒設定消費限制的話,那真的就慘了!同事覺得納悶的點是,他明明有設定多因素驗證 (MFA) (Multi-Factor Authentication) 驗證方法(Authentication methods),怎麼駭客還可以從烏茲別克(Uzbekistan)用他的帳號密碼登入 Azure Portal 呢?這篇文章我就來說說我這兩天對 Microsoft 365 / Azure AD 在 MFA 的研究心得,超重要!🔥

... 繼續閱讀 ...

如何使用 OpenSSL 建立一張含有 Certificate Revocation List (CRL) 的憑證

最近因為公司在建立 ISO 27001 資訊安全管理系統,在文件管理部分就會想說要有一個高強度且具備不可否認性的數位簽章(Digital Signature)。建立一組公司用的 CA 憑證並透過這張 CA 憑證簽發給員工使用的數位憑證其實很簡單,但之前一直沒機會研究如何手工打造 CRL 憑證撤銷清單,今天研究了一下,終於可以自行簽發 CRL 憑證了。

... 繼續閱讀 ...