当前位置: 首页 > 知识库问答 >
问题:

使用MSI从本地Service Fabric群集访问密钥库

阎鸿煊
2023-03-14

我想通过托管服务标识(MSI)从我的Service Fabric应用程序访问密钥库。我已经在Azure门户中设置的虚拟机规模上启用了MSI,并授予它访问我的密钥库资源的权限。这就像一个云中的魅力。然而,我的本地开发环境有问题。

据我所知,我可以授予自己对密钥库的访问权,并在Azure CLI中运行az login。唉,当在本地Service Fabric集群中运行应用程序时,这就不起作用了。我假设这是因为一个本地集群在NETWORK SERVICE帐户下运行。

如何使用MSI从本地群集访问密钥库?

共有1个答案

龙凯
2023-03-14

我假设您正在使用Microsoft.Azure.Services.AppAuthentication库使用MSI获取一个令牌来对密钥库进行身份验证,这在Azure上是有效的。如果是这样,您可以在本地开发环境中运行相同的代码。库将自动切换到在Azure上使用MSI。您可以在这里找到文档

注意:当开发在当前用户下运行的应用程序(例如应用程序服务)时,MSI场景的本地开发要容易得多。在这种情况下,您可以使用Azure CLI/Visual Studio帐户进行本地开发。您不需要创建单独的服务主体。Azure CLI/Visual Studio不适用于Service Fabric本地开发,因为本地群集是在Network Service帐户下运行。

对于Service Fabric场景,请执行以下步骤:

>

  • 创建服务主体并授予对密钥库的访问权限。你有两个选择。证书是更好的W.R.T安全,但稍难做。

    选项1:创建具有证书的服务主体。确保您给出了Network Service帐户或用于运行fabric本地访问证书的任何帐户。有关如何授予访问权限的详细信息,请参阅。

    选项2:使用密码创建服务主体

    创建一个名为“AzuReservicesAuthConnectionString”的环境变量。关于为service Fabric创建环境变量,请参阅此内容。

    如果以上步骤不起作用,请张贴您得到的错误。

  •  类似资料:
    • 据我所知,我可以授予自己对密钥库的访问权限,并在Azure CLI中运行az登录。唉,当在本地Service Fabric集群中运行应用程序时,这就不起作用了。我在service fabric中使用了.NET Core2.1并得到了下面提到的异常。 Azure.Identity.AuthenticationFailedException:DefaultAzureCredential无法从包含的凭据

    • 由于我是Azure的新手,这个问题可能很傻。我正在尝试构建一个提供和管理虚拟机集群的服务。出于安全考虑,我不想在每个集群上放一些敏感数据。因此我决定为每个集群提供一个Azure密钥库来存储这些数据,并创建一个MSI(managed identity)并分派给集群的每个节点,这样vm就可以访问密钥库来获取机密。 在服务端,我需要提供vms、密钥库和MSI。将MSI分配给每个VM,同时授予MSI访问A

    • 我在Powershell中编写了一个程序,该程序在Azure Functions应用程序中按计划运行。为了避免硬编码的凭据,我创建了一个Azure密钥库来存储秘密。我在Azure函数中创建了一个托管标识,在Azure Key Vault中创建了秘密,然后在Azure函数中创建了应用程序设置,并使用指向Azure Key Vault中秘密的URL。程序引用应用程序机密(APPSETTING),并按照

    • 我有一个启用了托管服务标识(MSI)的功能应用程序。 我正在尝试使用这个功能应用程序从我的密钥库访问一个秘密。 我已经将代码添加到我的函数应用程序中来检索秘密。 当我尝试添加主体时会发生什么。

    • 我正在使用JGit访问远程Git回购,我需要为此使用SSH。JGit使用JSch提供安全访问。但是,我不确定如何设置JGit的密钥文件和知道主机文件。我所尝试的如下。 创建SshSessionFactory的自定义配置,通过子类化JSchConfigSessionFactory使用: 在我访问远程Git回购的类中,执行了以下操作: 我不知道如何将这个JSch对象与JGit关联,以便它能够成功地连接

    • 我需要在JavaScript中访问Azure密钥库中的一些秘密值。它是普通的JavaScript,没有NPM和节点。有没有直接从JavaScript获取值的选项?或者我需要编写一个单独的API来检索密钥库。这与保护某些ID无关,我想知道是否有任何可能的选项从客户端获取密钥库值。 我希望这是在简单的JavaScript。