使用Azure Rest API獲得Access Token介紹


背景

本文主要介紹如何獲取如何獲取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獲取令牌。

Snipaste_2020-04-12_21-54-29

步驟

1.新建AAD應用、,導航到Azure門戶的AAD界面,選擇應用注冊,點擊新注冊。

Snipaste_2020-04-12_21-56-47

按照下圖填寫信息,如果選擇多租戶是允許訪問其他租戶的應用,由於我們不涉及到登陸的內容,所以重定向URI無需填寫。

Snipaste_2020-04-12_21-57-53

2.按照下圖的方式,授予AAD應用訪問Azure管理服務API權限:

Snipaste_2020-04-12_22-02-45

Snipaste_2020-04-12_22-03-06

3.接下來授予AAD 應用服務的訪問權限,在相關服務的訪問控制頁面授予AAD應用參與者權限(建議賦予這更訂閱的權限,這樣可以操作所有應用)

Snipaste_2020-04-12_22-12-59

4.收集AAD應用信息,需要租戶id,client id,client secret。

進入AAD頁面,按照下圖方式生成密鑰,並且保存密鑰,該密鑰為client secret

Snipaste_2020-04-12_22-00-17

按照下圖收集client id和租戶id

Snipaste_2020-04-12_22-02-18

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'

測試截圖:


Snipaste_2020-04-12_22-20-23


附:

也可以使用賬戶名和密碼的方式獲取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 

http://www.ruanyifeng.com/blog/2014/05/oauth_2_0.html


免責聲明!

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



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