使用应用服务身份验证 (EasyAuth) 和自定义 OpenID 提供程序保护 Azure 函数时的受众无效
Invalid Audience when protecting Azure Function with App Service Authentication (EasyAuth) and a Custom OpenID Provider
我有一个 Azure 函数(尝试了 Windows 和 Linux 消费),使用 Azure App Service Authentication (Easy Auth) 和自定义 OpenId Connect 提供程序来使用 http 触发器验证我的 Azure 函数。
我在我的身份提供者中配置了一个客户端(基于 Duende 身份服务器),获取了一个令牌,然后向 Azure 函数发送了一个请求(仅包含 Visual Studio 在创建时最初创建的代码一个 Function App 项目)。
这是我在 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 中禁用身份验证,显然会触发该功能并 returns 响应。
您应该在生成令牌时尝试使用客户端 ID 作为范围。
在某些情况下,将 /.default
附加到范围会有所帮助。示例 eda25bbe-a724-43ba-8fa3-8977aba6fb36/.default
.
我有一个 Azure 函数(尝试了 Windows 和 Linux 消费),使用 Azure App Service Authentication (Easy Auth) 和自定义 OpenId Connect 提供程序来使用 http 触发器验证我的 Azure 函数。
我在我的身份提供者中配置了一个客户端(基于 Duende 身份服务器),获取了一个令牌,然后向 Azure 函数发送了一个请求(仅包含 Visual Studio 在创建时最初创建的代码一个 Function App 项目)。
这是我在 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 中禁用身份验证,显然会触发该功能并 returns 响应。
您应该在生成令牌时尝试使用客户端 ID 作为范围。
在某些情况下,将 /.default
附加到范围会有所帮助。示例 eda25bbe-a724-43ba-8fa3-8977aba6fb36/.default
.