本文參照微軟如下官方文檔,且均使用ASP.NET作爲示例代碼,主要是演示AAD B2C對API的保護流程,給大家一個直觀的感受,在後續的內容章節中,我們會介紹其他語言如何通過AAD B2C 進行保護。
1.使用 Azure Active Directory B2C 在 Web 應用程序中啓用身份驗證
https://docs.azure.cn/zh-cn/active-directory-b2c/tutorial-web-app-dotnet?tabs=applications
2.使用 Azure Active Directory B2C 授予對 ASP.NET Web API 的訪問權限
https://docs.azure.cn/zh-cn/active-directory-b2c/tutorial-web-api-dotnet?tabs=applications
上一講的案例:
主要介紹了一個WEB APP網站,使用ASP.NET開發,該網站使用AAD B2C進行認證授權,用戶在瀏覽器可以直接調用AAD B2C的用戶流(也就是使用AAD B2C提供的UI)完成用戶註冊/登錄/修改密碼的基本功能,同時,用戶登錄後,將TOKEN信息返回到這個WEB APP的頁面中。
本講第一個案例:
主要介紹了新增了一個WEB API網站,同樣使用ASP.NET開發,該網站的API受AAD B2C保護,且WEB API和 第一個案例中的WEB APP 使用了同一個AAD B2C租戶,也就是說第一個案例(WEB APP)用戶登錄後,可以直接使用登錄後的Token調用第二個案例(WEB API)的API獲取數據。
本講第二個案例:
在體驗完第二個案例後,我們使用Postman 模擬攜帶TOKEN向WEB API發起請求以獲取數據。
視頻講解:
您可以在B站觀看本講視頻:https://www.bilibili.com/video/BV17t4y1U7Um/
或在本站觀看:
圖文講解:
本節內容使用上一節下載好的代碼,並繼續配置:
爲WEB API創建應用程序:
注意回覆URL保持與下圖一致;
應用ID URI 可自行填寫一個值,通常情況下,該值標識一組API權限。
在WEB API的已發佈的作用域中增加如下兩項:
通常情況下,我們可以將增加的作用域,用來精準控制某個API的訪問權限;
如果有多個API的權限要求,則這裏可以配置多個作用域;
本例中,爲了配合示例代碼,我們將設置read和write兩個權限,後續在代碼中,read 表示可以從API獲取數據,write 標識可以通過API寫入數據到存儲中。
接下來在WEB APP的應用中,對WEB API的作用域進行授權,即WEB APP 可以訪問WEB API的權限授權:
選中backendapi,在下拉列表中選擇 全部3個作用域:
修改WEB API的配置文件:
其中本文視頻中,在06:56秒處詳細介紹了配置文件中的配置值在何處可以找到。
修改WEB APP的配置文件:
本文視頻在08:47秒處詳細介紹了這些值該如何配置;
啓動WEB API( Task Service )項目:
登錄成功後,可以在TODO LIST中 調用WEB API( TASK SERVICE) 中的API並取得數據:
如下圖可以看到 TODO LIST的內容:
我們可以在代碼中觀察到 請求的WEB API的 URL:
在Postman中請求上一步中的API,會出現認證失敗的情況,我們需要將用戶從WEB APP登錄後的Token帶到請求中才能訪問成功:
調試代碼,將Token值複製出來並粘貼到Postman中:
可以看到,成功取出了數據:
截至目前,AAD B2C前三節內容的分享,用戶TOKEN 都是通過UI實現的,後續的章節中,我們會分享如何通過其他方式直接獲取用戶Access Token然後調用WEB API。
本節內容結束!
聲明:
點擊可查閱本站文章目錄 《文章分類目錄》
本站所有內容僅代表個人觀點,如與官文檔衝突,請以官方文檔爲準。
可在本頁面下方留言或通過下方聯繫方式聯繫我:
微信:wxyusz;郵箱:[email protected]
歡迎關注公衆號“雲計算實戰”,接收最新文章推送。