Azure Active Directory B2C-(3) 體驗使用AAD B2C集成的 OAuth2.0 和OpenID Connect 能力保護Web API(asp.net)

本文參照微軟如下官方文檔,且均使用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]

歡迎關注公衆號“雲計算實戰”,接收最新文章推送。



 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章