用于内部自定义 C# 库的 Azure VMSS 托管标识

Azure VMSS Managed Identity for internal custom C# library

我们正在使用自定义 c# 库连接到 Azure 密钥保管库,并对库中可用的机密进行一些自定义处理。反过来,这个 c# 库被部署在 Azure 服务 Fabric 上的 .net 核心 Web API 应用程序使用。

到目前为止,我们的 c# 库(用于连接到 Azure Key Vault)使用安全证书和 AAD 应用程序连接到 Key Vault,但想要升级库以使用 Azure VMSS(其中 VMSS 由 Azure 服务管理) Fabric) 系统分配托管标识以访问密钥保管库。这行得通吗?

VMSS 的系统分配托管标识是否可用于 class 库,而后者又被托管在 Azure VMSS 上的 Web api 使用?问这个问题的原因是,托管在 VMSS 上的 Web api 不使用 VMSS 的托管标识,但 VMSS 的托管标识应该由我的 Web [=] 中使用的 c# class 库使用17=] 项目。请确认。

它应该可以工作,MSI 可以在 VMSS 中的任何地方使用。只要你的代码在VMSS中运行,就可以使用MSI。

为了确认这一点,您也可以尝试在您的自定义代码中make an http request to the Azure Instance Metadata Service (IMDS) endpoint,如评论中提到的,如果您能够成功获取令牌,则意味着您可以访问MSI。

我不确定您使用的是什么库,但如果该库封装了针对 AAD 的身份验证,那么它取决于它公开的功能。

无论如何,Microsoft 发布了一个库,用于使用系统分配的身份/托管身份/任何类型的身份验证方法针对 AAD 进行身份验证并获取 KeyVault(以及其他资源)的令牌。

看这里https://github.com/Azure/azure-sdk-for-net/tree/master/sdk/identity/Azure.Identity