【Azure 應(yīng)用服務(wù)】NodeJS Express + MSAL 應(yīng)用實(shí)現(xiàn)AAD集成登錄并部署在App Service Linux環(huán)境中的實(shí)現(xiàn)步驟

問題描述

實(shí)現(xiàn)部署NodeJS Express應(yīng)用在App Service Linux環(huán)境中绝淡,并且使用Microsoft Authentication Library(MSAL)來實(shí)現(xiàn)登錄Azure AD用戶,獲取Token及用戶信息的實(shí)現(xiàn)奢讨。

終極實(shí)現(xiàn)效果展示:

nodejs msal.gif

本實(shí)現(xiàn)中,最重要的兩個步驟為:

1)根據(jù)文檔“ Tutorial: Sign in users and acquire a token for Microsoft Graph in a Node.js & Express web app” 實(shí)現(xiàn)本地運(yùn)行成功

2)根據(jù)文檔" 在 Azure 中創(chuàng)建 Node.js Web 應(yīng)用 " 把應(yīng)用部署在App Service Linux環(huán)境中,然后在Configuration中添加Application Setting(REDIRECT_URI 和 POST_LOGOUT_REDIRECT_URI)

實(shí)驗(yàn)步驟

第一步:創(chuàng)建本地NodeJS Express + MSAL 項(xiàng)目

在第一個文檔中端衰,主要的步驟有(文檔鏈接:https://docs.microsoft.com/en-us/azure/active-directory/develop/tutorial-v2-nodejs-webapp-msal

如果想自己寫代碼叠洗,則必看。如果不用寫代碼旅东,可以在文中下載源代碼灭抑。但也必看1,4兩部分內(nèi)容抵代。

  1. Register the application in the Azure portal

  2. Create an Express web app project

  3. Install the authentication library packages

  4. Add app registration details

  5. Add code for user login

  6. Test the app

根據(jù)文檔腾节,主要注意修改的地方有兩處:

一:.env環(huán)境變量文件中的相應(yīng)值需要根據(jù)在Azure AD中注冊的內(nèi)容修改』珉梗可以參考以下內(nèi)容(本文實(shí)現(xiàn)在中國區(qū)Azure案腺,所以相關(guān)endpoint都為中國區(qū)Azure終結(jié)點(diǎn))

CLOUD_INSTANCE=https://login.partner.microsoftonline.cn/ # cloud instance string should end with a trailing slash
TENANT_ID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx #Enter_the_Tenant_Info_Here
CLIENT_ID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx # Enter_the_Application_Id_Here
CLIENT_SECRET=x-x.xxxxxxxxxxxx # Enter_the_Client_Secret_Here
REDIRECT_URI=http://localhost:3000/auth/redirect
POST_LOGOUT_REDIRECT_URI=http://localhost:3000
GRAPH_API_ENDPOINT=https://microsoftgraph.chinacloudapi.cn/ # graph api endpoint string should end with a trailing slash
EXPRESS_SESSION_SECRET=Enter_the_Express_Session_Secret_Here

二:文中在第5步中添加用戶登錄和獲取Token的部分伴挚,需要自己在項(xiàng)目 routes文件夾中添加 auth.js 文件靶衍,并輸入這一部分中的代碼。原文中這一點(diǎn)寫的不明確茎芋,如果對NodeJS項(xiàng)目不夠了解情況下颅眶,會遇見 cannot find module './routes/auth'的異常。

image.png

完整的代碼可從此處下載:https://files.cnblogs.com/files/lulight/ExpressWebApp.zip

第二步:部署到App Service For Linux環(huán)境并配置AAD參數(shù)

通過VS Code部署田弥,包含通過Kudu管理平臺查看home/site/wwwroot下的目錄文件

添加Application Setting REDIRECT_URI, POST_LOGOUT_REDIRECT_URI

修改Azure AD中注冊應(yīng)用的Redirect URL : https://<your app service name>.chinacloudsites.cn/auth/redirect

演示動畫如下:

deploy azure linux.gif

參考資料

Tutorial: Sign in users and acquire a token for Microsoft Graph in a Node.js & Express web app: https://docs.microsoft.com/en-us/azure/active-directory/develop/tutorial-v2-nodejs-webapp-msal

在 Azure 中創(chuàng)建 Node.js Web 應(yīng)用:https://docs.azure.cn/zh-cn/app-service/quickstart-nodejs?tabs=linux&pivots=development-environment-vscode#deploy-to-azure

Quickstart: Register an application with the Microsoft identity platform:https://docs.microsoft.com/en-us/azure/active-directory/develop/quickstart-register-app

Azure China developer guide: https://docs.microsoft.com/en-us/azure/china/resources-developer-guide

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

分類: 【Azure 應(yīng)用服務(wù)】, 【Azure 環(huán)境】, 【Azure Developer】

標(biāo)簽: App Service, App Service Linux NodeJS Express, NodeJS項(xiàng)目使用MSAL實(shí)現(xiàn)AAD用戶登錄驗(yàn)證

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市只泼,隨后出現(xiàn)的幾起案子剖笙,更是在濱河造成了極大的恐慌,老刑警劉巖请唱,帶你破解...
    沈念sama閱讀 212,599評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件弥咪,死亡現(xiàn)場離奇詭異过蹂,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)酪夷,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,629評論 3 385
  • 文/潘曉璐 我一進(jìn)店門榴啸,熙熙樓的掌柜王于貴愁眉苦臉地迎上來孽惰,“玉大人晚岭,你說我怎么就攤上這事⊙Γ” “怎么了坦报?”我有些...
    開封第一講書人閱讀 158,084評論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長狂鞋。 經(jīng)常有香客問我片择,道長,這世上最難降的妖魔是什么骚揍? 我笑而不...
    開封第一講書人閱讀 56,708評論 1 284
  • 正文 為了忘掉前任字管,我火速辦了婚禮,結(jié)果婚禮上信不,老公的妹妹穿的比我還像新娘嘲叔。我一直安慰自己,他們只是感情好抽活,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,813評論 6 386
  • 文/花漫 我一把揭開白布硫戈。 她就那樣靜靜地躺著,像睡著了一般下硕。 火紅的嫁衣襯著肌膚如雪丁逝。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 50,021評論 1 291
  • 那天梭姓,我揣著相機(jī)與錄音霜幼,去河邊找鬼。 笑死誉尖,一個胖子當(dāng)著我的面吹牛罪既,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播释牺,決...
    沈念sama閱讀 39,120評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼萝衩,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了没咙?” 一聲冷哼從身側(cè)響起猩谊,我...
    開封第一講書人閱讀 37,866評論 0 268
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎祭刚,沒想到半個月后牌捷,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體墙牌,經(jīng)...
    沈念sama閱讀 44,308評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,633評論 2 327
  • 正文 我和宋清朗相戀三年暗甥,在試婚紗的時候發(fā)現(xiàn)自己被綠了喜滨。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,768評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡撤防,死狀恐怖虽风,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情寄月,我是刑警寧澤辜膝,帶...
    沈念sama閱讀 34,461評論 4 333
  • 正文 年R本政府宣布,位于F島的核電站漾肮,受9級特大地震影響厂抖,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜克懊,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,094評論 3 317
  • 文/蒙蒙 一忱辅、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧谭溉,春花似錦墙懂、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,850評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至扔亥,卻和暖如春场躯,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背旅挤。 一陣腳步聲響...
    開封第一講書人閱讀 32,082評論 1 267
  • 我被黑心中介騙來泰國打工踢关, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人粘茄。 一個月前我還...
    沈念sama閱讀 46,571評論 2 362
  • 正文 我出身青樓签舞,卻偏偏與公主長得像,于是被迫代替她去往敵國和親柒瓣。 傳聞我的和親對象是個殘疾皇子儒搭,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,666評論 2 350

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