【发布时间】:2020-03-10 09:44:00
【问题描述】:
我有一个托管在 Azure VM 中的 php 应用程序,在 Key Vault 中有一些秘密。我已设置托管身份并授予对保管库的访问权限。
所以我的应用程序可以使用从 Azure 实例元数据服务 (AIMS 169.254.169.254) 获得的令牌成功地从保管库中获取机密。
Azure SDK for php 不支持 Key Vault,所以我使用的是 REST 接口。
我的问题是在本地运行时,即我的代码在 VSCode 的桌面上运行时,我无法调用 AIMS 来获取令牌,因为我的本地计算机上没有托管标识。
我能想到的只有两个选项:
- 开发人员创建一个环境变量来保存秘密,或者
- 在我的代码中包含一个 localSettings 文件,其中包含用于存储机密的设置
然后我可以确定代码是否在本地运行,如果是,则从这个环境变量或 localSettings 中读取秘密。
有人知道更好的方法吗?
谢谢
请注意,Visual Studio 提供了 AzureServiceTokenProvider(),它使用登录用户的凭据来获取令牌。但不幸的是,这对我不可用。
【问题讨论】:
标签: php azure token azure-keyvault azure-managed-identity