[Azure][C#] 產生有權限的憑證控制,透過 C# 控制 Azure 上面的服務

2020-09-22

上一篇文章 [Azure][C#] 取得 AppService 中的 Application Settings 並且更改值 ,我們提到了再 Azure 上面產生權限,並且讀寫 AppService 上面的 App Settings ,但是上一篇文章有一個不大不小的問題,就是押出的憑證權限太大了,幾乎可以對自己的服務摧枯拉朽,這點我們家 DevOps 不悅了,所以我大概研究一下如何押出有權限的憑證..




首先,我們先登入 Azure 點選上方的 console



接下來輸入指令

az ad sp create-for-rbac --name "APPNAME 這邊我的測試專案是 monacolab"  --role contributor  --scopes /subscriptions/你的SUBSCRIPTIONS ID/resourceGroups/ 你的RESOURCEGROUP ID

之後跑一下後他就會給你以下的資訊





這時候你就拿到了 appId , password , tenant ,這時候我們來測試一下,這邊測試的方式是,我會用一個該憑證有權限控制的 appservice 我來取得他的 appid ,之後我再去存取一個是我的  appservice 但是沒有權限看看會怎樣

記得撰寫前不要忘記下載套件 https://www.nuget.org/packages/Microsoft.Azure.Management.Fluent/https://www.nuget.org/packages/Microsoft.Azure.Management.ResourceManager.Fluent/





果然在沒有權限的時候 發生了 Exception

這樣就達到我們家 DevOps 要的效果了,不多說了,我先去找他吵架..


reference :
https://markheath.net/post/create-service-principal-azure-cli


當麻許的超技八 2014 | Donma Hsu Design.