簡體   English   中英

Azure Functions 中的 Azure AD 身份驗證

[英]Azure AD Authentication in Azure Functions

我是 Azure AD 的新手,正在嘗試在 Azure Functions 上啟用 Azure AD 身份驗證。 下面是架構。

有2個組件:

  1. 前端 Web 應用(Nodejs + Express 應用)
  2. 后端 API(使用 .NET 核心的 Azure 函數)
  • 已在前端應用程序上啟用 AD 身份驗證。 當用戶使用他們的 AD 憑據登錄時,應用程序會從 Azure 獲取訪問令牌、刷新令牌和 ID 令牌。
  • Azure Functions 上也啟用了 AD 身份驗證。
  • 當我們嘗試訪問 Azure Functions 時,來自 Web 應用程序的 id_token 作為 Auth 標頭中的不記名令牌傳遞。

參考: https : //docs.microsoft.com/en-us/azure/app-service/tutorial-auth-aad?pivots=platform-linux

問題:

  • 啟用使用 Express 模式對 Azure Functions(通過 Azure 門戶)進行身份驗證/授權時,我無法訪問或發布 Azure 函數。 如果 EasyAuth 關閉,我就可以在沒有任何問題的情況下訪問這些功能。

請建議我在這里缺少什么。 提前致謝!

以下是來自 LogStream 的異常信息:

Unhandled exception in request pipeline: System.Net.WebException: The remote server returned an error: (400) Bad Request.
2020-11-11T01:28:38.421239842Z: [INFO]           at System.Net.HttpWebRequest.GetResponse()
2020-11-11T01:28:38.429941331Z: [INFO]           at Microsoft.Azure.AppService.Middleware.OpenIdConnectConfiguration.Download(String url) in /EasyAuth/Microsoft.Azure.AppService.Middleware.Modules/OpenIdConnectConfiguration.cs:line 62
2020-11-11T01:28:38.437673222Z: [INFO]           at Microsoft.Azure.AppService.Middleware.OpenIdConnectConfiguration.ConfigManager.RefreshConfiguration() in /EasyAuth/Microsoft.Azure.AppService.Middleware.Modules/OpenIdConnectConfiguration.cs:line 163
2020-11-11T01:28:38.437688622Z: [INFO]           at Microsoft.Azure.AppService.Middleware.OpenIdConnectConfiguration.ConfigManager.GetCurrentConfiguration() in /EasyAuth/Microsoft.Azure.AppService.Middleware.Modules/OpenIdConnectConfiguration.cs:line 150
2020-11-11T01:28:38.437693322Z: [INFO]           at Microsoft.Azure.AppService.Middleware.AzureActiveDirectoryProvider.GetDefault() in /EasyAuth/Microsoft.Azure.AppService.Middleware.Modules/IdentityProviders/AzureActiveDirectoryProvider.cs:line 808
2020-11-11T01:28:38.437697222Z: [INFO]           at Microsoft.Azure.AppService.Middleware.EasyAuthModule.AuthenticateAsync(HttpContextBase context)
2020-11-11T01:28:38.437712122Z: [INFO]           at Microsoft.Azure.AppService.Middleware.EasyAuthModule.OnAuthenticateRequestAsync(HttpContextBase context) in /EasyAuth/Microsoft.Azure.AppService.Middleware.Modules/EasyAuthModule.cs:line 243
2020-11-11T01:28:38.437716222Z: [INFO]           at Microsoft.Azure.AppService.MiddlewareShim.Startup.OnRequest(HttpContext context) in /EasyAuth/Middleware.Host/Startup.cs:line 124
  

如果你使用 EasyAuth 來保護你的 Azure 函數,你應該使用access_token而不是id_token來調用它。 如果您有任何其他問題,請告訴我。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM