"Unauthorized" 使用 Azure AD OAuth 身份验证从 Azure 调度程序调用 API 应用程序时

"Unauthorized" when invoking an API App from Azure Scheduler with Azure AD OAuth authentication

我有一个 API 应用程序,我已使用 Azure Active Directory 身份验证对其进行保护。我想使用 Azure 调度程序调用此 API 应用程序的操作。我在调度程序操作中输入了租户 ID、客户端 ID 和密码。

当我安排或运行我得到的工作时:

Http Action - Response from host 'xxxx.azurewebsites.net': 'Unauthorized'

诊断应用程序日志给我:

JWT validation failed: IDX10214: Audience validation failed. Audiences:
'https://management.core.windows.net/'. Did not match:
validationParameters.ValidAudience: 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx' or    
validationParameters.ValidAudiences: 'https://xxxx.azurewebsites.net'.

经过一番挖掘,我发现 this somehow related entry

所以我真的进入了资源浏览器,一直到我的 API 应用程序的 authsettings 节点并添加了缺少的受众条目:

"allowedAudiences": [
  "https://xxxx.azurewebsites.net",
  "https://management.core.windows.net/"
],

问题已解决。