c# - C# - 具有托管服务标识的 Azure 存储
问题描述
是否有人设法通过 Azure 存储实现或拥有有关托管服务标识 (MSI) 的任何文档 - 理想情况下使用 Blob
我的目标是通过带有存储的 MSI 对我的 WebApp/WebJob 进行身份验证。设置身份验证后,我会将 blob 推送到存储。我需要这个的原因是从我的应用程序配置中消除任何形式的连接字符串和密码。
解决方案
更新 Azure Blob 存储现在支持“无密钥”身份验证方案的 MSI(托管服务标识)!在此处查看支持的服务列表。
旧答案
不幸的是,不支持 Blob 存储,无论是拥有自己的身份还是提供对拥有自己身份的服务的访问。原因是 Blob 存储(所有 Azure 存储)不适用于 Azure Active Directory。
但是,您确实有其他选项,例如可以通过 MSI 访问的 Azure Data Lake Store 或 SQL Server。
另请注意,支持 Key Vault。在您的情况下,我将创建一个具有相关限制的存储 SAS 密钥,然后将 SAS 密钥放在 Key Vault 中。使用 WebApp 中的 MSI 从 Key Vault 检索密钥。有趣的是,我们已经能够使用 ARM 模板构建此配置,信任 WebApp MSI 和 Key Vault 中的存储密钥,只有部署帐户知道密钥,很好且安全,开发人员永远看不到或不需要SAS 密钥...
您可以在此链接中找到支持 MSI(托管服务标识)的服务列表。
推荐阅读
- python - 如何使用 pandas.dataframe.where() 更改值?
- c++ - 如何在 MSVC 2019 中的 CMake 管理的 C++ 项目中将命令行启动参数添加到发布目标?
- delphi - Delphi将base64字符串转换为PNG图像
- javascript - 不返回真
- c++ - 我需要哪些 DLL 和库才能使用“timeBeginPeriod”或“timeapi.h”的其他部分?
- ruby-on-rails - Rspec 种子作业在模型验证后运行
- python - tqdm 将我的程序减慢了至少 8 倍
- reactjs - React.js:在 API 响应中访问 Retry-After 标头
- heap - 带有伪代码的堆和优先级队列
- android - 如何在 Android 的 camera2 中正确使用新的 createCaptureSession()?