本文演示瞭如下內容:
1. 部署了一個Node JS WEB API, 該API受AAD B2C保護(使用Passport.js );
2. 使用POSTMAN 模擬客戶端請求,從AAD B2C獲取Access Token後向API發起請求;
步驟:
1. 準備Node js API 網站,該網站爲微軟示例代碼;
2. 在AAD B2C中爲Node js API 新增應用程序,並添加已發佈的作用域;
3. 在AAD B2C中爲Postman 新增應用程序,並將該應用程序對 Node js API 應用授權;
4. 增加ROPC登錄用戶流(無需瀏覽器的用戶流);
5. 在Postman中使用ROPC終結點獲取Access Token;
6. 在Postman中攜帶Access Token訪問Node js API;
視頻介紹:
您可以在B站觀看本節視頻:https://www.bilibili.com/video/BV1Cc411h7fM/
圖文介紹:
本文使用示例代碼:https://github.com/Azure-Samples/active-directory-b2c-javascript-nodejs-webapi
添加一個Node JS 的 應用程序:
注意,本例子中 回覆URL填寫:https://localhost:5000, 該值是因爲我們示例代碼是通過該url訪問的。
ID URI 填寫 ”API“ 或者其他值都可以。
在已發佈的作用域中增加如下兩項:
本例中,需至少保留demo.read,原因是示例代碼中,對"demo.read"這個字符串進行了檢測。
如下圖,代碼中使用了“demo.read”字符串進行了權限檢測,如果要修改,則Azure Portal中的 AAD B2C中的應用已發佈作用域和代碼需要同時修改才行!
接下來創建 postmanclient應用程序:
設置API訪問權限,允許postmanclient訪問 api的權限:
修改示例代碼中的配置文件:
本文視頻中的第06:00分鐘進行了詳細的配置解釋,介紹瞭如何找到這些值;
對於配置中的用戶流,需要新建一個 ROPC類型的用戶流,該類用戶流不需要使用瀏覽器跳轉以登錄獲取Token:
根據需要,選擇需要返回到Token中的 值即可:
示例代碼邏輯如下:
如果用戶權限中有 “demo.read”,則返回用戶name屬性,否則,返回403錯誤:
啓動網站:
按照如下參數即可取出Access Token:
其中如下值需要根據實際情況修改,本文視頻10:00左右詳細解釋了每個字段從哪裏可以取到值
使用Token進行請求,如下圖可以執行成功:
同時,我們可以在Node JS的代碼中拿到用戶信息,拿到用戶信息後,可以跟業務邏輯進行集成了:
至此,本文結束!
聲明:
點擊可查閱本站文章目錄 《文章分類目錄》
本站所有內容僅代表個人觀點,如與官文檔衝突,請以官方文檔爲準。
可在本頁面下方留言或通過下方聯繫方式聯繫我:
微信:wxyusz;郵箱:[email protected]
歡迎關注公衆號“雲計算實戰”,接收最新文章推送。
本作品由Sean Yu 採用知識共享署名-非商業性使用-相同方式共享 4.0 國際許可協議進行許可。
歡迎轉載、使用、重新發布,但務必保留文章鏈接:https://www.51azure.cloud,且不得用於商業目的。