實現部署NodeJS Express應用在App Service Linux環境中,並且使用Microsoft Authentication Library(MSAL)來實現登入Azure AD使用者,獲取Token及使用者資訊的實現。
1)根據檔案「 Tutorial: Sign in users and acquire a token for Microsoft Graph in a Node.js & Express web app」 實現本地執行成功
2)根據檔案" 在 Azure 中建立 Node.js Web 應用 " 把應用部署在App Service Linux環境中,然後在Configuration中新增Application Setting(REDIRECT_URI 和 POST_LOGOUT_REDIRECT_URI)
在第一個檔案中,主要的步驟有(檔案連結:https://docs.microsoft.com/en-us/azure/active-directory/develop/tutorial-v2-nodejs-webapp-msal)
如果想自己寫程式碼,則必看。如果不用寫程式碼,可以在文中下載原始碼。但也必看1,4兩部分內容。
根據檔案,主要注意修改的地方有兩處:
一:.env環境變數檔案中的相應值需要根據在Azure AD中註冊的內容修改。可以參考以下內容(本文實現在中國區Azure,所以相關endpoint都為中國區Azure終結點)
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
(以上頁面由 https://portal.azure.cn/ 頁面中選擇進入)
二:文中在第5步中新增使用者登入和獲取Token的部分,需要自己在專案 routes資料夾中新增 auth.js 檔案,並輸入這一部分中的程式碼。原文中這一點寫的不明確,如果對NodeJS專案不夠了解情況下,會遇見 cannot find module './routes/auth'的異常。
完整的程式碼可從此處下載:https://files.cnblogs.com/files/lulight/ExpressWebApp.zip
通過VS Code部署,包含通過Kudu管理平臺檢視home/site/wwwroot下的目錄檔案
新增Application Setting REDIRECT_URI, POST_LOGOUT_REDIRECT_URI
修改Azure AD中註冊應用的Redirect URL : https://<your app service name>.chinacloudsites.cn/auth/redirect
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 中建立 Node.js Web 應用: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
當在複雜的環境中面臨問題,格物之道需:濁而靜之徐清,安以動之徐生。 雲中,恰是如此!