在 C# 中访问 Azure 中系统托管标识的应用程序 ID

Access application id of a system managed identity in Azure in C#

目前,我们正在开发一个 Azure 应用服务应用程序,它在应用服务设置期间分配了一个系统管理的标识。我们使用带有 RBAC 的托管身份来访问其他 Azure 资源,并且工作正常。

现在我想从底层托管身份获取一些信息以执行一些检查。特别是我想读取分配给此托管身份的应用程序 ID。我想在 C# 中这样做。我如何访问这些信息?

感谢任何帮助。提前致谢。

此致, 统计

    var credential = new DefaultAzureCredential();
    string[] scopes = new string[] { "https://graph.microsoft.com/.default" };
    var token = await credential.GetTokenAsync(new Azure.Core.TokenRequestContext(scopes));

    var handler = new JwtSecurityTokenHandler();
    var jsonToken = handler.ReadToken(token.Token) as JwtSecurityToken;
    var appid = jsonToken.Claims.First(c => c.Type == "appid").Value;
    Console.WriteLine(appid);