目前,我们正在开发一个 Azure 应用服务应用程序,该应用程序具有在应用服务设置期间分配的系统托管标识。我们使用带有 RBAC 的托管标识来访问其他 Azure 资源,并且工作正常。
现在我想从底层托管标识中获取一些信息来执行一些检查。特别是我想读取分配给此托管标识的应用程序 ID。我想在 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);