我有一个在Service Fabric(SF)集群中运行的应用程序,我不想从它访问密钥库。
我知道在SF清单中使用RunAs选项是可能的,但这需要我在清单/源代码中存储加密的密码,如果可能的话,我想尽量避免这样做。
阿法伊克,
具有这种灵活性的唯一方法是使用clientid&secret
或service Principal certificates
,每个应用程序管理自己的凭据。
服务主体证书已经集成到AD,但不要求应用程序、用户或主机是域的一部分,唯一的要求是在AD上设置用户以授予KeyVault的权限。
如果要尝试此方法,可以与Microsoft.Azure.services.AppAuthentication一起使用,对群集中运行的服务进行隐式身份验证,其中的节点使用托管标识扩展插件设置,如本文所述。
当您使用Microsoft.Azure.Services.AppAuthentication时,步骤2将由库处理,您不必对密钥库身份验证逻辑添加太多更改。
当您在启用了托管标识的Azure App服务或Azure VM上运行代码时,库会自动使用托管标识。不需要更改代码。
以下文档描述了可以用于密钥库身份验证的其他选项。
附注:我使用客户端机密和证书做过其他KeyVault集成,它们足够安全,有了证书,您可以将其存储在托管存储或应用程序中,我只推荐您的解决方案需要MI。
这在调试期间也有效,但是当我发布到Azure时,它也会失败,因为我的密钥返回null。 任何帮助在哪里我应该看看如何解决这将是伟大的。为什么在生产中会得到null,而在提供相同凭据时却不进行调试?
我有一个启用了托管服务标识(MSI)的功能应用程序。 我正在尝试使用这个功能应用程序从我的密钥库访问一个秘密。 我已经将代码添加到我的函数应用程序中来检索秘密。 当我尝试添加主体时会发生什么。
我在大多数文章中读到,需要在Azure中部署应用程序,这样应用程序才能以编程方式访问存储在Azure密钥库中的秘密。 有没有一种方法可以不在azure中部署应用程序,并且仍然能够通过使用客户端id和客户端机密或证书来访问azure密钥库以获取机密?
我已经能够通过外部web应用程序使用oauth rest api访问azure key vault,但出于某种原因,我无法从密钥中检索机密。经过长时间的研究,我发现用powershell和C#可以做到这一点,但还没有找到用Python解决方案。有人知道python是否有可能,或者有一种方法可以模拟powershell正在做什么吗?以下是检索秘密的代码: 此外,我已经在azure portal中注册