3

我有一个 Azure 函数(尝试了 Windows 和 Linux 消费),它使用Azure 应用服务身份验证(Easy Auth)和自定义 OpenId Connect 提供程序来使用 http 触发器对我的 Azure 函数进行身份验证。

我在身份提供程序中配置了一个客户端(基于 Duende 身份服务器),获取了一个令牌,然后向 Azure Function 发送了一个请求(仅包含 Visual Studio 在创建 Function App 项目时最初创建的代码)。

这是我在 Azure 门户中所做的配置: 描述 Azure 门户中的配置的图像

当我现在将请求发送到 Azure 函数端点时,我总是收到以下错误:

{
    "code": 401,
    "message": "IDX10214: Audience validation failed. Audiences: 'System.String'. Did not match: validationParameters.ValidAudience: 'System.String' or validationParameters.ValidAudiences: 'System.String'."
}

我没有找到在 Azure 门户中或通过 Azure CLI 配置受众的任何选项,也没有关于受众必须如何被接受的文档。

我还发现了一个描述基本相同错误的 Github 问题: https ://github.com/MicrosoftDocs/azure-docs/issues/72019

如何查看有效受众是什么、在 Azure AppService 身份验证中配置有效受众或完全修复该错误?

PS:如果我在 Azure 中禁用身份验证,显然会触发该功能并返回响应。

4

1 回答 1

2

您应该在生成令牌时尝试使用客户端 ID 作为范围。

在某些情况下,附加/.default到范围会有所帮助。例子eda25bbe-a724-43ba-8fa3-8977aba6fb36/.default

于 2021-12-19T18:10:09.173 回答