【Azure Developer】使用 Microsoft Graph API 獲取 AAD User 操作示例

問題描述

查看官方文檔“ Get a user ” , 產(chǎn)生了一個(gè)操作示例的想法勋眯,在中國區(qū)Azure環(huán)境中觉渴,演示如何獲取AAD User信息。

問題解答

使用Microsoft Graph API努咐,演示如何獲取AAD User信息,因參考文檔是針對(duì)Global Azure,所以文檔種的URL為:

// Global Azure Microsoft Graph API 
Host GET https://graph.microsoft.com/v1.0/me 

需要修改為

// 中國區(qū)Azure的Microsoft Graph API Host
GET https://microsoftgraph.chinacloudapi.cn/v1.0/me 

第一步:使用 https://microsoftgraph.chinacloudapi.cn/v1.0/me 來查詢自己的用戶信息,失斦独伞!提示需要Access Token

image.png

那么:如何來獲取Access Token呢喻频?

第二步:使用az login 和az account access-token命令來獲取正確的Authentication (Bearer .....)

  1. 設(shè)置登錄環(huán)境為中國區(qū) Azure

  2. az login 登錄缩宜,在彈出框種輸入Azure用戶名及密碼

  3. 使用 az account access-token 生成 Access Token

##設(shè)置Azure 環(huán)境為 Azure China Cloud
az cloud set --name AzureChinaCloud

##登錄
az login

## 生成 Access Token
az account get-access-token

當(dāng)使用以上指令生成的 Access Token 放入 https://microsoftgraph.chinacloudapi.cn/v1.0/me 請(qǐng)求,繼續(xù)錯(cuò)誤甥温。錯(cuò)誤消息提示 Audience不對(duì) **[Access token validation failure. Invalid audience.] **

image.png

jwt.ms 上去解析Access Token后锻煌,發(fā)現(xiàn)aud使用的是 "https://management.core.chinacloudapi.cn/", 而我們請(qǐng)求的URL 是** https://microsoftgraph.chinacloudapi.cn/**

image.png

所以,需要在生成Access Token時(shí)姻蚓,指定 aud宋梧, 正確命令為:** az account get-access-token --resource 'https://microsoftgraph.chinacloudapi.cn/'**

## 設(shè)置Azure 環(huán)境為 Azure China Cloud
az cloud set --name AzureChinaCloud

## 登錄
az login

#### 生成 Access Token, 使用默認(rèn)resource (https://management.core.chinacloudapi.cn/) 作為 aud,
##az account get-access-token

## 修改resource為microsoft graph api
az account get-access-token --resource 'https://microsoftgraph.chinacloudapi.cn/'

第三步:生成正確的Access Token史简,訪問 Microsoft Graph API 獲取me信息乃秀,成功

image.png

第四步:接下來肛著,通過User ID或者UserPrincipalName獲取其他用戶的信息圆兵,一個(gè)失誤引發(fā)的400 Bad Request錯(cuò)誤

image.png

思考中。枢贿。殉农。 。局荚。超凳。

明明只是修改請(qǐng)求中的me為User ID,而且這個(gè)User ID就是一個(gè)真實(shí)用戶的ID耙轮傍!

400 Bad Request, 是URL 不對(duì)嗎首装?

仔細(xì)创夜,仔細(xì)查看Get User接口文檔,原來真是沒有注意細(xì)節(jié)啊仙逻。

通過UserID或者User Principal Name的API URL是 https://microsoftgraph.chinacloudapi.cn/v1.0/users/<user id | user principal name>, 因?yàn)榇中某巯牛瑏G失了/users。

# 正確的
https://microsoftgraph.chinacloudapi.cn/v1.0/users/68b844af-*************************** 

VS 

# 錯(cuò)誤的
https://microsoftgraph.chinacloudapi.cn/v1.0/68b844af-***************************

終于系奉,大功告成檬贰。


image.png

附錄:其他Graph API獲取用戶信息示例

1:獲取全部用戶信息

GET https://microsoftgraph.chinacloudapi.cn/v1.0/users

2:根據(jù)mail查找用戶
GET https://microsoftgraph.chinacloudapi.cn/v1.0/users?count=true&filter=startswith(mail,'yourmailaddress')

參考資料

Microsoft Graph API Get a User :https://learn.microsoft.com/en-us/graph/api/user-get?view=graph-rest-1.0&tabs=http

az account get-access-token : https://learn.microsoft.com/en-us/cli/azure/account?view=azure-cli-latest

JWT 解析: https://jwt.ms/

Check endpoints in Azure : https://learn.microsoft.com/en-us/azure/china/resources-developer-guide#check-endpoints-in-azuredevelop

當(dāng)在復(fù)雜的環(huán)境中面臨問題,格物之道需:濁而靜之徐清缺亮,安以動(dòng)之徐生翁涤。 云中,恰是如此!

分類: 【Azure Developer】

標(biāo)簽: az account get-access-token, Microsoft Graph API get user, Access token validation failure. Invalid audience, 'https://microsoftgraph.chinacloudapi.cn/'

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市葵礼,隨后出現(xiàn)的幾起案子限书,更是在濱河造成了極大的恐慌,老刑警劉巖章咧,帶你破解...
    沈念sama閱讀 219,110評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件倦西,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡赁严,警方通過查閱死者的電腦和手機(jī)扰柠,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,443評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來疼约,“玉大人卤档,你說我怎么就攤上這事〕贪” “怎么了劝枣?”我有些...
    開封第一講書人閱讀 165,474評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長织鲸。 經(jīng)常有香客問我舔腾,道長,這世上最難降的妖魔是什么搂擦? 我笑而不...
    開封第一講書人閱讀 58,881評(píng)論 1 295
  • 正文 為了忘掉前任稳诚,我火速辦了婚禮,結(jié)果婚禮上瀑踢,老公的妹妹穿的比我還像新娘扳还。我一直安慰自己,他們只是感情好橱夭,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,902評(píng)論 6 392
  • 文/花漫 我一把揭開白布氨距。 她就那樣靜靜地躺著,像睡著了一般棘劣。 火紅的嫁衣襯著肌膚如雪俏让。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,698評(píng)論 1 305
  • 那天呈础,我揣著相機(jī)與錄音舆驶,去河邊找鬼。 笑死而钞,一個(gè)胖子當(dāng)著我的面吹牛沙廉,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播臼节,決...
    沈念sama閱讀 40,418評(píng)論 3 419
  • 文/蒼蘭香墨 我猛地睜開眼撬陵,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼珊皿!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起巨税,我...
    開封第一講書人閱讀 39,332評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤蟋定,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后草添,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體驶兜,經(jīng)...
    沈念sama閱讀 45,796評(píng)論 1 316
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,968評(píng)論 3 337
  • 正文 我和宋清朗相戀三年远寸,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了抄淑。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,110評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡驰后,死狀恐怖肆资,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情灶芝,我是刑警寧澤郑原,帶...
    沈念sama閱讀 35,792評(píng)論 5 346
  • 正文 年R本政府宣布,位于F島的核電站夜涕,受9級(jí)特大地震影響犯犁,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜钠乏,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,455評(píng)論 3 331
  • 文/蒙蒙 一栖秕、第九天 我趴在偏房一處隱蔽的房頂上張望春塌。 院中可真熱鬧晓避,春花似錦、人聲如沸只壳。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,003評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽吼句。三九已至锅必,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間惕艳,已是汗流浹背搞隐。 一陣腳步聲響...
    開封第一講書人閱讀 33,130評(píng)論 1 272
  • 我被黑心中介騙來泰國打工弄诲, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留崇堵,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,348評(píng)論 3 373
  • 正文 我出身青樓筑悴,卻偏偏與公主長得像谁鳍,于是被迫代替她去往敵國和親癞季。 傳聞我的和親對(duì)象是個(gè)殘疾皇子劫瞳,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,047評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容