針對前一篇文章,針對 DefaultAzureCredential 做深入一點的探討,並且解決實做上可能遇到的情境的解決方式。
App Service 實做身份識別存取 KeyVault (二)
- 655
- 0
針對前一篇文章,針對 DefaultAzureCredential 做深入一點的探討,並且解決實做上可能遇到的情境的解決方式。
在透過程式存取 Azure 資源的時候,基於安全性考量,通常是透過在 AAD 內建立應用程式註冊,透過註冊應用程式設定必要的權限來存取 Azure 資源,但是在使用 KeyVault 的時候就是希望有更高的安全性,會將金鑰或秘密存在服務內,但是這時候又會有一組應用程式註冊的 Secret 會需要被放到程式的參數內,那如果也想在開發階段也隱藏這一個金鑰的話就得使用微軟推出的身份識別功能,透過此功能來存取資源,可以在開發階段避免直接將應用程式註冊的 Id 和 Secret 交付給開發人員或是存放在設定檔內,本文就是介紹整個開發階段和部署到 Azure App Service 時候實做存取 Key Vault 內的 Secret。
為了更高的安全性,我們通常會新增 SQL 帳號,並且針對不同帳號給予不同的權限,避免使用管理者帳號來存取資料庫,否則當程式有漏洞的時候,可能整台 DB 的資料庫都會有安全性的問題。
針對上一篇容錯移轉設定之後,還有些安全性的議題,本文就針對安全性的設定上,說明如何調整資料庫的連線帳號。
在高可用性的程式架構上,至少需要針對應用程式和資料庫各建立一組服務,並且搭配負載平衡來分散流量,並且可以在其中一台伺服器無法運作時轉移到可用的服務上,本文就針對資料庫部分說明在 Azure 上面建立 SQL Database 的容錯移轉群組來建置高可用性架構。
使用 Azure 的開發者應該不少是使用 Visual Studio 來開發,而目前 Visual Studio 針對 Azure 部署上已經整合的很好,本文就介紹如何部署到 Azure App Service 或 Azure Functions 的方式。
現在架構設計很常談到微服務和無伺服器,而在 Azure 上面最適合拿來做這類型應用的就是 Azure Function 了,Azure Function 支援很多觸發器 (Trigger),這邊針對 Queue 來介紹如何實做 Queue trigger 的 Azure Function。
現在軟體開發使用 API 架構的設計越來越常見了,針對現有或遺留的舊有 API 可以夠過 Azure API Management 來管理,可以快速的加入驗證或是把 API 變成 Paas 服務,可以設計產品套組和不同訂閱,也提供使用者一個開發者介面,可以申請帳號和測試 API,這次針對沒有驗證的 API 來實做套用驗證。
LINQPad 是我工作上很常使用的工具,可以很方便的連到資料庫並且快速撰寫 LINQ 語法查詢資料,或是想快速測試一些程式碼的時候可以很方便的使用,在 LINQPad 6.10 的更新裡面,提供了一個新的方法,可以方便我們登入 AAD 並且取的 Auth Token,如此一來就可以很方便的測試一些需要微軟 oAuth 驗證的 API,尤其是我工作上會很常需要測試 Azure API ,如果要重頭寫登入驗證那段是比較花時間,透過這個新的方法可以快速的取得 Token 來測試 API,本文就快速的介紹如何使用。
微軟在 2016 年就發表了 App Service 提供了 MySQL In App 這個功能,雖然他很陽春,但是在某些情境下使用也是可以省下不少費用和時間,且還提供了 phpMyAdmin 這一套熱門的管理工具,因此我們也不用另外安裝來管理 MySQL,所以在時間和成本考量下,是可以考慮使用這個小功能的。
過去在 IIS 上面可以安裝 Microsoft Application Request Routing (ARR) 來實做 Reverse Proxy ,但是如果我們需要將程式上雲的話,也就是放到 Azure 的 App Service 的話,如果也想要實做的話,也是可以透過安裝擴充套件來方便啟用這樣的功能。
ASP.NET Core 建立專案一樣支援像以前 .NET Framework 一樣的登入驗證,但是在專案建立之後會發現這些驗證模式的頁面無法找到 Controller 和 View,如果選擇個別帳號登入,是可以方便透過 VS UI 來新增需要客制化的頁面,若選擇工作或學校帳戶登入的話,就沒有 UI 介面可以方便新增,因此特別筆記一下自訂頁面內容的方式。
有時候在 View 需要取得 RouteValue 之後新產生新的網址,尤其是在分頁的時候,常會需要產生新的分頁連結,如果頁面跟參數很多,每次新增一個參數就要重新調整 View ,也沒辦法方便共用分頁的樣版,因此希望可以更方便的產生網址並且也可以支援新增額外的 RouteValue。
過去在寫 ASP.NET MVC 時候常會使用 UIHint 配合 Display Template 或 Editor Template 來達到 View 的客制化跟共用,最新開始正式在實務上使用 ASP.NET Core MVC 來開發,也想要維持以前的習慣,因為預設 UIHint 的參數並無法直接在 View 取用,因此有特別寫加強版的 UIHint 來傳遞一些 View 使用的參數,在 ASP.NET Core 上面和以前作法會有點不同,特別記錄一下作法。
Amazon CloudFront 預設有支援 signed cookies 的驗證方式,而 Azure CDN 有三個提供商,但是並非都可以支援此功能,其中僅有 Azure CDN from Verizon 才有支援,且定價層也需要選擇進階才有支援,本文就介紹該如何來設定和實做站台來驗證結果。
微軟 Azure 會逐漸不支援傳統部屬模型的資源,因此在實務上會需要將傳統的儲存體轉換為 ARM 部屬模型的儲存體,本文即是介紹如何透過 PowerShell 來轉換儲存體帳戶部屬類型。
使用 TuesPechkin 套件在 App Service 透過 Html 產生 PDF 的使用心得。