Azure 應(yīng)用服務(wù)和 Azure Functions 中的身份驗(yàn)證和授權(quán),微軟azure云虛擬服務(wù)器-ESG跨境

Azure 應(yīng)用服務(wù)和 Azure Functions 中的身份驗(yàn)證和授權(quán),微軟azure云虛擬服務(wù)器

來源網(wǎng)絡(luò)
來源網(wǎng)絡(luò)
2022-05-31
點(diǎn)贊icon 0
查看icon 626

Azure 應(yīng)用服務(wù)和 Azure Functions 中的身份驗(yàn)證和授權(quán),微軟azure云虛擬服務(wù)器Azure 應(yīng)用服務(wù)和 Azure Functions 中的身份驗(yàn)證和授權(quán)Azure應(yīng)用服務(wù)提供內(nèi)置的身份驗(yàn)證和授權(quán)支持。只需在Web應(yīng)用、RESTful API、移動后端和Azure Functions中編寫少量的代......

Azure 應(yīng)用服務(wù)和 Azure Functions 中的身份驗(yàn)證和授權(quán),微軟azure云虛擬服務(wù)器




Azure 應(yīng)用服務(wù)和 Azure Functions 中的身份驗(yàn)證和授權(quán)

Azure應(yīng)用服務(wù)提供內(nèi)置的身份驗(yàn)證和授權(quán)支持。只需在Web應(yīng)用、RESTful API、移動后端和Azure Functions中編寫少量的代碼或根本無需編寫代碼,就能讓用戶登錄和訪問數(shù)據(jù)。本文介紹應(yīng)用服務(wù)如何幫助簡化應(yīng)用的身份驗(yàn)證和授權(quán)。

安全身份驗(yàn)證和授權(quán)需要對安全性(包括聯(lián)合身份驗(yàn)證、加密、JSON Web令牌(JWT)管理、授權(quán)類型等)有深度的了解。應(yīng)用服務(wù)提供這些實(shí)用工具,讓你將更多的時間和精力花費(fèi)在為客戶提供業(yè)務(wù)價值上。

重要

你并非必須使用此功能進(jìn)行身份驗(yàn)證和授權(quán)??梢栽谒x的Web框架中使用捆綁的安全功能,也可以編寫自己的實(shí)用程序。但請記住,Chrome 80針對Cookie對其實(shí)現(xiàn)SameSite的方式進(jìn)行了中斷性變更(發(fā)布日期在2020年3月左右);自定義遠(yuǎn)程身份驗(yàn)證或依賴于跨站點(diǎn)Cookie發(fā)布的其他方案可能會在客戶端Chrome瀏覽器更新時中斷。解決方法很復(fù)雜,因?yàn)樾枰槍Σ煌臑g覽器支持不同的SameSite行為。

應(yīng)用服務(wù)托管的ASP.NET Core 2.1及更高版本已針對此中斷性變更進(jìn)行了修補(bǔ),并且會相應(yīng)地處理Chrome 80和更低版本的瀏覽器。此外,我們還在整個2020年1月在應(yīng)用服務(wù)實(shí)例上部署了ASP.NET Framework 4.7.2的同一修補(bǔ)程序。有關(guān)詳細(xì)信息,請參閱Azure應(yīng)用服務(wù)SameSite Cookie更新。

備注

“身份驗(yàn)證/授權(quán)”功能有時也稱為“簡單身份驗(yàn)證/授權(quán)”。

備注

啟用此功能會導(dǎo)致對應(yīng)用程序的所有非安全HTTP請求自動重定向到HTTPS,而不管強(qiáng)制實(shí)施HTTPS所需的應(yīng)用服務(wù)配置設(shè)置如何。如果需要,可以通過身份驗(yàn)證/授權(quán)設(shè)置配置文件中的requireHttps設(shè)置禁用此功能,但需注意確保不通過非安全HTTP連接傳輸安全令牌。

有關(guān)特定于本機(jī)移動應(yīng)用的信息,請參閱使用Azure應(yīng)用服務(wù)對移動應(yīng)用進(jìn)行用戶身份驗(yàn)證和授權(quán)。

工作原理

在Windows上

身份驗(yàn)證和授權(quán)模塊在應(yīng)用程序代碼所在的同一沙盒中運(yùn)行。啟用后,每個傳入的HTTP請求將通過此模塊,然后由應(yīng)用程序代碼處理。

一個體系結(jié)構(gòu)圖,顯示請求被站點(diǎn)沙盒中的進(jìn)程攔截,該進(jìn)程與標(biāo)識提供者進(jìn)行交互,然后再允許流量發(fā)往已部署的站點(diǎn)

此模塊為應(yīng)用處理多項(xiàng)操作:

·使用指定的提供程序?qū)τ脩暨M(jìn)行身份驗(yàn)證

·驗(yàn)證、存儲和刷新令牌

·管理經(jīng)過身份驗(yàn)證的會話

·將標(biāo)識信息插入請求標(biāo)頭

此模塊獨(dú)立于應(yīng)用程序代碼運(yùn)行,使用應(yīng)用設(shè)置進(jìn)行配置。不需要任何SDK、特定語言,或者對應(yīng)用程序代碼進(jìn)行更改。

用戶/應(yīng)用程序聲明

對于所有語言框架,應(yīng)用服務(wù)都通過將傳入令牌(無論是來自經(jīng)過身份驗(yàn)證的最終用戶還是來自客戶端應(yīng)用程序)中的聲明注入請求標(biāo)頭,使其可供代碼使用。對于ASP.NET 4.6應(yīng)用,應(yīng)用服務(wù)會在ClaimsPrincipal.Current中填充經(jīng)過身份驗(yàn)證的用戶聲明,使你能夠遵循標(biāo)準(zhǔn)的.NET代碼模式(包括[Authorize]屬性)。同樣,對于PHP應(yīng)用,應(yīng)用服務(wù)會填充_SERVER[REMOTE_USER]變量。對于Java應(yīng)用,可從Tomcat servlet訪問聲明。

對于Azure Functions,沒有為.NET代碼填充ClaimsPrincipal.Current,但你仍然可以在請求標(biāo)頭中找到用戶聲明,也可通過請求上下文甚至通過綁定參數(shù)來獲取ClaimsPrincipal對象。有關(guān)詳細(xì)信息,請參閱使用客戶端標(biāo)識。

有關(guān)詳細(xì)信息,請參閱訪問用戶聲明。

備注

目前,ASP.NET Core不支持為當(dāng)前用戶填充身份驗(yàn)證/授權(quán)功能。但是,確實(shí)存在一些第三方開源中間件組件,可以幫助填補(bǔ)這一空白。

令牌存儲

應(yīng)用服務(wù)提供內(nèi)置的令牌存儲,這是與Web應(yīng)用、API或本機(jī)移動應(yīng)用的用戶相關(guān)聯(lián)的令牌存儲庫。對任何提供程序啟用身份驗(yàn)證時,此令牌存儲可立即供應(yīng)用使用。如果應(yīng)用程序代碼需要代表用戶訪問這些提供程序中的數(shù)據(jù),例如:

發(fā)布到經(jīng)過身份驗(yàn)證用戶的MicrosoftAccount時間線

使用Microsoft Graph API讀取用戶的公司數(shù)據(jù)

通常,必須編寫代碼才能在應(yīng)用程序中收集、存儲和刷新這些令牌。使用令牌存儲,只需在需要令牌時才檢索令牌;當(dāng)令牌失效時,可以告知應(yīng)用服務(wù)刷新令牌。

將為經(jīng)身份驗(yàn)證的會話緩存ID令牌、訪問令牌和刷新令牌,它們只能由關(guān)聯(lián)的用戶訪問。

如果不需要在應(yīng)用中使用令牌,可以在應(yīng)用的“身份驗(yàn)證/授權(quán)”頁中禁用令牌存儲。

日志記錄和跟蹤

如果啟用應(yīng)用程序日志記錄,將在日志文件中直接看到身份驗(yàn)證和授權(quán)跟蹤。如果出現(xiàn)意外的身份驗(yàn)證錯誤,查看現(xiàn)有的應(yīng)用程序日志即可方便找到所有詳細(xì)信息。如果啟用失敗請求跟蹤,可以確切地查看身份驗(yàn)證和授權(quán)模塊在失敗請求中發(fā)揮的作用。在跟蹤日志中,找到對名為EasyAuthModule_32/64的模塊的引用。

標(biāo)識提供者

應(yīng)用服務(wù)使用聯(lián)合標(biāo)識,在其中,第三方標(biāo)識提供者會為你管理用戶標(biāo)識和身份驗(yàn)證流。默認(rèn)提供五個標(biāo)識提供者:

對其中一個提供程序啟用身份驗(yàn)證和授權(quán)時,其登錄終結(jié)點(diǎn)可用于用戶身份驗(yàn)證,以及驗(yàn)證來自提供程序的身份驗(yàn)證令牌??梢暂p松為用戶提供其中任意數(shù)量的登錄選項(xiàng)。

存在舊版可擴(kuò)展性路徑,用于與其他標(biāo)識提供者或自定義身份驗(yàn)證/授權(quán)解決方案集成,但是不建議使用,而應(yīng)考慮使用OpenID Connect支持。

身份驗(yàn)證流

身份驗(yàn)證流對于所有提供程序是相同的,但根據(jù)是否要使用提供程序的SDK登錄而有所差別:

·不使用提供程序SDK:應(yīng)用程序向應(yīng)用服務(wù)委托聯(lián)合登錄。瀏覽器應(yīng)用通常采用此方案,這可以防止向用戶顯示提供程序的登錄頁。服務(wù)器代碼管理登錄過程,因此,此流也稱為“服務(wù)器導(dǎo)向流”或“服務(wù)器流”。此方案適用于瀏覽器應(yīng)用。它也適用于使用移動應(yīng)用客戶端SDK登錄用戶的本機(jī)應(yīng)用,因?yàn)镾DK會打開Web視圖,使用應(yīng)用服務(wù)身份驗(yàn)證將用戶登錄。

·使用提供程序SDK:應(yīng)用程序手動將用戶登錄到提供程序,然后將身份驗(yàn)證令牌提交給應(yīng)用服務(wù)進(jìn)行驗(yàn)證。無瀏覽器應(yīng)用通常采用此方案,這可以防止向用戶顯示提供程序的登錄頁。應(yīng)用程序代碼管理登錄過程,因此,此流也稱為“客戶端導(dǎo)向流”或“客戶端流”。此方案適用于REST API、Azure Functions和JavaScript瀏覽器客戶端,以及在登錄過程中需要更高靈活性的瀏覽器應(yīng)用。它還適用于使用提供程序SDK登錄用戶的本機(jī)移動應(yīng)用。

備注

對于應(yīng)用服務(wù)中受信任瀏覽器應(yīng)用對應(yīng)用服務(wù)或Azure Functions中另一REST API的調(diào)用,可以使用服務(wù)器導(dǎo)向流對其進(jìn)行身份驗(yàn)證。有關(guān)詳細(xì)信息,請參閱在應(yīng)用服務(wù)中自定義身份驗(yàn)證和授權(quán)。

下表說明了身份驗(yàn)證流的步驟。

對于客戶端瀏覽器,應(yīng)用服務(wù)可自動將所有未經(jīng)身份驗(yàn)證的用戶定向到/.auth/login/lt;providergt;。還可以向用戶提供一個或多個/.auth/login/lt;providergt;鏈接,讓他們使用所選的提供程序登錄到你的應(yīng)用。

授權(quán)行為

在Azure門戶中,當(dāng)傳入請求未經(jīng)過身份驗(yàn)證時,可以使用多種行為配置應(yīng)用服務(wù)授權(quán)。

一個屏幕截圖,顯示“請求未通過身份驗(yàn)證時要采取的操作”下拉列表

以下標(biāo)題介紹了選項(xiàng)。

允許匿名請求(無操作)

此選項(xiàng)將對未經(jīng)身份驗(yàn)證的流量的授權(quán)交給應(yīng)用程序代碼處理。對于經(jīng)過身份驗(yàn)證的請求,應(yīng)用服務(wù)還會在HTTP標(biāo)頭中一起傳遞身份驗(yàn)證信息。

使用此選項(xiàng)可以更靈活地處理匿名請求。例如,可以向用戶提供多個登錄提供程序。但是,必須編寫代碼。

僅允許經(jīng)過身份驗(yàn)證的請求

選項(xiàng)是“使用provider登錄”。應(yīng)用服務(wù)將所有匿名請求重定向到所選提供程序的/.auth/login/provider。如果匿名請求來自本機(jī)移動應(yīng)用,則返回的響應(yīng)為HTTP 401 Unauthorized。

使用此選項(xiàng)不需要在應(yīng)用中編寫任何身份驗(yàn)證代碼。可以通過檢查用戶的聲明來處理精細(xì)授權(quán),例如角色特定的授權(quán)(請參閱訪問用戶聲明)。

注意

以這種方式限制訪問適用于對應(yīng)用的所有調(diào)用,對于想要主頁公開可用的應(yīng)用程序來說,這可能是不可取的,就像在許多單頁應(yīng)用程序中一樣。

備注

默認(rèn)情況下,Azure AD租戶中的任何用戶都可以從Azure AD請求應(yīng)用程序的令牌。若要僅允許一組定義的用戶訪問應(yīng)用,可以在Azure AD中配置應(yīng)用程序。


文章推薦
Google Play ASO實(shí)戰(zhàn)指南,小米啟用google play服務(wù)
B2B業(yè)務(wù)在使用PayPal時的“雷區(qū)”(二),注冊國內(nèi)版paypal可以跨國購物嗎
Amazon運(yùn)營從入門到放棄,amazon運(yùn)營感受
Azure Monitor 概述,微軟azure云虛擬服務(wù)器


特別聲明:以上文章內(nèi)容僅代表作者本人觀點(diǎn),不代表ESG跨境電商觀點(diǎn)或立場。如有關(guān)于作品內(nèi)容、版權(quán)或其它問題請于作品發(fā)表后的30日內(nèi)與ESG跨境電商聯(lián)系。

搜索 放大鏡
韓國平臺交流群
加入
韓國平臺交流群
掃碼進(jìn)群
歐洲多平臺交流群
加入
歐洲多平臺交流群
掃碼進(jìn)群
美國賣家交流群
加入
美國賣家交流群
掃碼進(jìn)群
ESG跨境專屬福利分享群
加入
ESG跨境專屬福利分享群
掃碼進(jìn)群
拉美電商交流群
加入
拉美電商交流群
掃碼進(jìn)群
亞馬遜跨境增長交流群
加入
亞馬遜跨境增長交流群
掃碼進(jìn)群
亞馬遜跨境增長交流群
加入
亞馬遜跨境增長交流群
掃碼進(jìn)群
拉美電商交流群
加入
拉美電商交流群
掃碼進(jìn)群
ESG獨(dú)家招商-PHH GROUP賣家交流群
加入
ESG獨(dú)家招商-PHH GROUP賣家交流群
掃碼進(jìn)群
《TikTok官方運(yùn)營干貨合集》
《TikTok綜合運(yùn)營手冊》
《TikTok短視頻運(yùn)營手冊》
《TikTok直播運(yùn)營手冊》
《TikTok全球趨勢報告》
《韓國節(jié)日營銷指南》
《開店大全-全球合集》
《開店大全-主流平臺篇》
《開店大全-東南亞篇》
《CD平臺自注冊指南》
通過ESG入駐平臺,您將解鎖
綠色通道,更高的入駐成功率
專業(yè)1v1客戶經(jīng)理服務(wù)
運(yùn)營實(shí)操指導(dǎo)
運(yùn)營提效資源福利
平臺官方專屬優(yōu)惠
聯(lián)系顧問

平臺顧問

平臺顧問 平臺顧問

微信掃一掃
馬上聯(lián)系在線顧問

icon icon

小程序

微信小程序

ESG跨境小程序
手機(jī)入駐更便捷

icon icon

返回頂部

【免費(fèi)領(lǐng)取】全球跨境電商運(yùn)營干貨 關(guān)閉