0

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

 2 years ago
source link: https://blog.miniasp.com/post/2022/02/04/Calling-Azure-REST-API-using-Postman-The-Easy-Way
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

使用 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 了! 👍


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK