繁体   English   中英

使用 Azure Active Directory 访问 Service Fabric 应用程序的 Key Vault

[英]Access Key Vault for a Service Fabric application using Azure Active Directory

我有一个在 Service Fabric(SF) 群集中运行的应用程序,但我不想从中访问 Key Vault。

群集承载了许多应用程序,我想为我的应用程序授予对 Key Vault 的访问权限,而不授予对其他应用程序的访问权限。 默认情况下,应用程序在与 SF 集群相同的用户下运行,但每个应用程序都有自己的唯一名称,我的名称为 fabric:/application1。

我的问题是,是否可以为 fabric:/application1 创建 Active Directory 应用程序帐户并授予对密钥保管库的访问权限?

我知道可以在 SF 清单中使用 RunAs 选项,但这需要我在清单/源代码中存储加密密码,如果可能,我想尝试避免这种情况。

AFAIK,

获得这种灵活性的唯一方法是使用ClientID & SecretService Principal certificates并且每个应用程序管理自己的凭据。

服务主体证书已经集成到 AD 中,但不需要应用程序、用户或主机成为域的一部分,唯一的要求是在 AD 上设置一个用户以授予 Keyvault 的权限。

还有其他使用 AD 集成的解决方案,例如Azure 资源的托管标识(以前的:托管服务标识),但我不确定您是否能够像您描述的那样限制每个应用程序的访问,因为 MI 将此作为服务添加到节点中,因此从技术上讲,其他应用程序也可以访问,值得尝试验证是否可以限制它。

如果你想尝试这种方法,你可以使用Microsoft.Azure.Services.AppAuthentication在您的集群,其中节点是设置与管理身份延伸等记载运行的服务的隐含认证这里

东西链接这个: 在此处输入图片说明

当您使用Microsoft.Azure.Services.AppAuthentication 时,第 2 步将由库处理,您无需对 Key Vault 身份验证逻辑添加太多更改。

在 Azure 应用服务或启用了托管标识的 Azure VM 上运行代码时,库会自动使用托管标识。 无需更改代码。

以下文档描述了可用于 KeyVault 身份验证的其他选项。

PS:我已经使用客户端密钥和证书完成了其他 KeyVault 集成,它们足够安全,有了证书,您可以将其存储在托管商店或应用程序中,只有当您的解决方案需要时,我才会推荐 MI。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM