The Will Will Web

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

使用 Postman 來操作 Azure REST APIs 最簡單的設定方法

有些時候 Azure CLIAzure Portal 都無法完成特定操作時,就需要靠 Azure REST API 來完成一些沒有 UI 的操作,這種操作通常都不太常見,也通常不需要自動化,所以臨時想要執行特定操作時,快速的設定就變的很重要。這篇文章我將介紹一個非常簡單的方法取得 Bearer Token,幫助你更快的完成 Azure REST API 呼叫。

其實說穿了,要能夠成功呼叫 Azure REST APIs 最重要的動作就是取得 Bearer Token (Access Token) 來通過認證與授權,你只要知道如何取得 Access Token 並放入 Postman 就可以呼叫所有 Azure REST API 了。取得 Access Token 主要有以下兩種方法:

  1. 透過 Azure CLI 快速取得 Access Token

    az account get-access-token
    
  2. 透過 OAuth 2.0 的標準授權流程取得 Access Token

    這個步驟稍微複雜些,設定步驟也比較多,也是許多人覺得有門檻的地方。你必須先瞭解 Service Principal 的建立方法,然後還要搞定 Azure 資源的 IAM 授權,然後還要理解 OAuth 2.0 的授權流程,取得 ClientIdClientSecret 之後,還要呼叫 Authorization Endpoint 與 Token Endpoint 才能得到 Access Token,這些流程牽涉許多專有名詞,對一個都沒碰過的新手來說,文件還沒看完就頭暈了。

這篇文章主要說明如何透過 Azure CLI 快速取得 Access Token,並透過簡單的設定步驟呼叫 Azure REST APIs!

透過 Azure CLI 快速取得 Access Token

  1. 登入 Azure CLI

    az login --tenant 'TenantId'
    
  2. 切換 訂用帳戶 (Subscription)

    az account set --subscription 'SubscriptionId'
    

    你可以使用 az account show 取得當前選取 訂用帳戶 (Subscription) 資訊:

    az account show -o json
    
  3. 建立一個臨時的 accessToken (Bearer Token)

    你可以使用以下命令快速產生一組 Access Token 來給 PostmancURL 使用,預設這個 Access Token 只能存取目前選取的 訂用帳戶 (Subscription) 下的所有資源:

    $token = $(az account get-access-token --query accessToken --output tsv)
    

    注意: 這個 Access Token 的有效期限只有 5 ~ 60 分鐘,如果過期的話,只要重新執行一次再次產生新的 Access Token 即可。

使用 cURL 測試 Bearer Token 是否有效

這裡我以 Resource Groups - List 為例,發出一個 HTTP GET 要求,取回目前訂用帳戶下所有 Resource Group (資源群組) 清單:

$subscriptionId = "b9b835dd-2e05-429b-b589-c1d0150db9e0"
$requestUrl = "https://management.azure.com/subscriptions/${subscriptionId}/resourcegroups?api-version=2021-04-01"
curl -s -X 'GET' --header "Authorization: Bearer $token" $requestUrl

若要取回 Web App 的總數,可以使用以下 PowerShell 命令:

(curl -s -X 'GET' --header "Authorization: Bearer $token" $requestUrl | ConvertFrom-Json).value.count

使用 Postman 呼叫 Azure REST APIs

  1. 建立 Collections 集合

    我們在 Collections 中建立一個名為 Azure REST APIs 的集合。

    Create new Collection

  2. 設定 Azure REST APIs 集合的 Authorization 頁籤

    將 Type 設定成 Bearer Token

    Postman - Authorization

    然後將之前取得的 $token 內容寫入 Token 欄位

  3. 設定 Azure REST APIs 集合的 Variables 頁籤 (集合變數)

    加入一個 subscriptionId 變數,並在 INITIAL VALUE 填入你的 SubscriptionId

    Postman - Variables

  4. 在集合中建立 Resource Groups - List 要求 (Add request)

    • Name: Resource Groups - List
    • HTTP Method: GET
    • Request URI: https://management.azure.com/subscriptions/{{subscriptionId}}/resourcegroups?api-version=2021-04-01

    Postman - Add request

當你可以順利取得 Resource Group 清單,也意味著你已經可以順利透過 Postman 呼叫 Azure REST APIs 了! 👍

相關連結