c# - Azure 函数 - 从 DefaultCredentials\Managed Identity 获取 token

标签 c# azure .net-core azure-functions azure-managed-identity

我正在使用一个 Azure 函数,该函数需要使用 JWT 对 API/APP 服务进行身份验证。

我已经查看了很多示例,并认为这是最合适的

public string GenerateToken()
{
    var credential = new Azure.Identity.DefaultAzureCredential();
    var token = credential.GetToken(new Azure.Core.TokenRequestContext(new[] { "https://management.azure.com/" }));
    return token.Token;
}

示例从这里诞生 https://learn.microsoft.com/en-us/dotnet/api/azure.core.tokencredential?view=azure-dotnet

我也尝试过使用这个https://learn.microsoft.com/en-us/azure/active-directory/managed-identities-azure-resources/how-to-use-vm-token#get-a-token-using-c

在这里,这与我的问题类似,但因为它没有使用托管身份,所以我工作的公司说这是不行的。 Create azure bearer token from azure function

我认为问题在于范围,但我找不到进入我的应用服务的正确范围。

我还尝试了 api://、资源 url 等

非常感谢您提供的所有帮助。

最佳答案

Azure AD 允许您使用 .default作为检索主体已被授予的所有访问权限的范围。

对于您的情况,您可以通过 api://<commonly-api-client-id-uuid>/.default这将检索一个 token ,其中包含您的 Azure 函数的托管身份主体已在目标 API/应用程序上授予的所有角色

关于c# - Azure 函数 - 从 DefaultCredentials\Managed Identity 获取 token ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72992376/

相关文章:

C# Linq 对字典列表进行过滤

azure - 避免覆盖 AZURE 的 blob

Azure Functions host.json 队列batchSize小于newBatchThreshold

azure - 在 ADF 上将列拆分为行

f# - 如何在 Visual Studio 2017 RC 中创建 F# .Net Core ConsoleApp

c# - 在 .net core 中编写 windows 服务

c# - 适用于 Windows Phone 8.1 的 XMPP 库

c# - 在 Visual Studio 2008 中为 .Net 托管应用程序从 WinDbg 调试 .dmp 文件

c# - 拥有较大的 dbContext 是否会影响性能?

c# - 从 Entity Framework Core 中的导航属性选择对象列表