如何使应用程序 ID URI 格式正常工作

How to get Application ID URI formats working

我无法让任何 Application ID URI 工作。我有一个 Blazor WebAssembly 托管应用程序,用 ASP.NET Core 5.0 编写。使用 api://<appId> 格式很好,但这在 Terraform 中效果不佳。我可以让我的客户端使用 api://<appId> 与服务器通信,所以我知道代码工作正常。当我交换应用程序 ID URI 以使用任何其他格式时,例如 https://<verifiedCustomDomain>/<string>api://<tenantId>/<string>,我收到 401 错误。我正在使用经过验证的 Azure AD 域。

我可以看到 <string> 的意思是“主机或 api 路径段的字符串值。”,但我不确定那是什么意思。我一直在测试 <string> 设置为我的应用程序服务的名称以及应用程序注册的名称。我还尝试将应用程序注册从单租户更改为多租户(以防万一)。

如有任何建议,我们将不胜感激。

对于遇到此问题的任何人,解决方案是确保将受众包含在 appsettings.json 的 AzureAD 块中。

"AzureAd": {
  "Instance": "https://login.microsoftonline.com/",
  "TenantId": "7867-7866-7687-8678-8678678676",
  "ClientId": "5456-6567-5676-5675-5675757565",
  "Audience": "https://myapp.example.com"
}

应用程序 ID URI(在应用程序注册中 - 公开 API 部分)应与受众值完全相同。