azure - 托管服务身份必须配置为使用身份验证 token 策略

标签 azure azure-api-management azure-managed-identity

我正在尝试让我的后端 API 使用托管身份验证来自 Azure APIM 的请求,以前这是通过证书身份验证完成的,但出于各种原因,我希望更改这一点。

当我向 APIM 发出请求时,我在应用程序洞察中收到以下错误。

Managed service identity must be configured to use authentication-token policy.

在后端,我使用 Owin 的 Windows Azure Active Directory 承载身份验证。

app.UseWindowsAzureActiveDirectoryBearerAuthentication(
    new WindowsAzureActiveDirectoryBearerAuthenticationOptions
    {
        Tenant = "https://tennant.co.uk/AzureADDAuth",
        TokenValidationParameters = new TokenValidationParameters
        {
            ValidAudience = "11111111-1111-1111-1111-111111111111"
        },
    });

在APIM中入站策略如下

<authentication-managed-identity resource="https://tennant.co.uk/AzureAADAuth" client-id="11111111-1111-1111-1111-111111111111" output-token-variable-name="msi-access-token" ignore-error="false" />
<set-header name="Authorization" exists-action="override">
    <value>@("Bearer " + (string)context.Variables["msi-access-token"])</value>
</set-header>

我发现错误消息相当模糊,而且我没有在网上找到任何帮助,所以我不确定需要做什么来设置此配置。我浏览了有关此主题的多个文档和博客文章,但找不到任何有关在 Azure Active Directory 中进行更改的内容。如果您能指出正确的方向,我将不胜感激。

最佳答案

我通过从 APIM 入站策略中删除客户端 ID 修复了此问题。

关于azure - 托管服务身份必须配置为使用身份验证 token 策略,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66565858/

相关文章:

azure - 通过Powershell将Function App导入API管理

c# - 如何使用 api 管理将证书作为请求的一部分发送

azure - 为什么 AzureServiceTokenProvider 返回过期的访问 token ?

c# - VSTS生成管道:测试无法连接到Azure Key Vault

Azure 应用服务返回错误 - 错误 403 - 禁止 您尝试访问的 Web 应用程序已阻止您的访问

azure - 默认情况下,Azure 子网中的 VM 之间的所有端口是否均开放

c# - Azure 搜索 - 较小的方面计数未从索引返回

azure - API 管理通过服务标签限制 IP 范围

javascript - 在 Postman 预请求脚本中获取 Azure REST 访问 token

azure-functions - 使用 MSI 从 Azure 函数将文件写入 Azure Data Lake 时出错