【Azure Developer】使用Postman獲取Azure AD中注冊應用程序的授權Token,及為Azure REST API設置Authorization


Azure Active Directory (Azure AD) is Microsoft’s cloud-based identity and access management service, which helps your employees sign in and access resources in Azure.

問題描述

當我們使用REST API調用Azure上任何資源的時候,都需要在Request Header中提供Authorization的值。

 如何獲取Authorizatoin的值呢?

  • 一種快速的方式是訪問Azure門戶,通過F12(開發者工具)中查看Network中請求的Header中的Authorization值。操作步驟見附錄一
  • 一種正規的方式是使用AAD API獲取Token。

以下內容則主要介紹如何通過AAD API獲取Token(常規的操作方式)。

 

操作步驟

一:先決條件

二:准備參數

1,獲取

2,獲取目錄(租戶) ID [tenant]

3,獲取

在應用的概述(Overview)頁面中復制出租戶(tenant),客戶端()。見上圖中的三組GUID數字。

4,獲取客戶端密碼[client_secret]

  • 在AAD應用頁面,進入“證書和密碼”頁面,點擊“新客戶端密碼”按鈕,添加新的Secret(因密碼值只能在最開始創建時可見,所以必須在離開頁面前復制它

注:在調用OAuth 2.0獲取token時候,還需要設置scope和grant_type, 在當前示例中,分別使用https://microsoftgraph.chinacloudapi.cn/.default和client_credentials為值

scope:

https://microsoftgraph.chinacloudapi.cn/.default
grant_type: client_credentials

 

三:調用Token終結點

使用Postman調用Token終結點,全部的參數為:

請求方式 POST
請求URL https://login.chinacloudapi.cn/{TENANT}/oauth2/v2.0/token
請求Body

tenant:{TENANT}
client_id:{CLIENT ID}
scope:https://microsoftgraph.chinacloudapi.cn/.default
grant_type:client_credentials
client_secret:{SECRET VALUE}

請求成功后的響應Body

{
    "token_type": "Bearer",
    "expires_in": 3599,
    "ext_expires_in": 3599,
    "access_token": "eyJ0eXAiOiJKV1QiLCJub25jZSI6IjFJRk1tbFNMcnV1 ... ... ... ...  W0Da3_LzLhdNA"
}

 

Postman截圖說明:

獲取到access_token的值后,即可作為Auzre REST API接口中Authroization的值。

 

四:解析Token

訪問https://jwt.io/,可以解碼Token內容,查看當前Token中所攜帶的權限(Role). 演示操作:

 

參考資料

什么是 Azure Active Directoryhttps://docs.azure.cn/zh-cn/active-directory/fundamentals/active-directory-whatis
Microsoft Graph REST API v1.0 reference: https://docs.microsoft.com/en-us/graph/api/overview?view=graph-rest-1.0

 

附錄一:通過F12(開發者工具)中查看Network中Request的Header中的Authorization值

 (注:在使用REST API接口時,需要主要所使用的資源與Azure 門戶中資源要相同。這是因為Azure門戶中,不同資源所生成的Authorization值各不相同,如不注意,也會遇見無權限401錯誤)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM