背景
本文主要介紹如何獲取如何獲取Azure Rest API的訪問token,所采用的是v2.0版本的Microsoft標識平台,關於1.0和2.0的區別可以參考 https://docs.azure.cn/zh-cn/active-directory/azuread-dev/azure-ad-endpoint-comparison 此文檔
原理
采用的是OAuth2.0協議的客戶端憑據授予的方式,即直接使用client id和secret獲取令牌。
步驟
1.新建AAD應用、,導航到Azure門戶的AAD界面,選擇應用注冊,點擊新注冊。
按照下圖填寫信息,如果選擇多租戶是允許訪問其他租戶的應用,由於我們不涉及到登陸的內容,所以重定向URI無需填寫。
2.按照下圖的方式,授予AAD應用訪問Azure管理服務API權限:
3.接下來授予AAD 應用服務的訪問權限,在相關服務的訪問控制頁面授予AAD應用參與者權限(建議賦予這更訂閱的權限,這樣可以操作所有應用)
4.收集AAD應用信息,需要租戶id,client id,client secret。
進入AAD頁面,按照下圖方式生成密鑰,並且保存密鑰,該密鑰為client secret
按照下圖收集client id和租戶id
5.發送token請求,標黃的部分需要填寫上個步驟獲取的信息:
curl --location --request POST 'https://login.partner.microsoftonline.cn/租戶ID/oauth2/v2.0/token ' \
--form 'grant_type=client_credentials' \
--form 'client_id=client id \
--form 'client_secret=client secret' \
--form 'scope=https://management.chinacloudapi.cn/.default'
測試截圖:
附:
也可以使用賬戶名和密碼的方式獲取token,但是極不推薦這種方式,因為這種方式是最不安全的,如果想要了解的話可以參考此博客 https://www.cnblogs.com/fenwan/p/7884202.html
參考文檔:
https://docs.microsoft.com/zh-cn/rest/api/azure/#register-your-client-application-with-azure-ad
https://docs.azure.cn/zh-cn/active-directory/develop/v2-oauth2-client-creds-grant-flow#get-a-token
https://docs.azure.cn/zh-cn/active-directory/develop/v2-overview