Mik*_*kko 5 azure azure-service-fabric azure-keyvault azure-managed-identity
我想通过托管服务标识(MSI)从我的Service Fabric应用程序访问密钥库。我已经在Azure门户中设置的虚拟机规模上启用了MSI,并赋予了它对我的Key Vault资源的访问权限。这就像云中的魅力一样。但是,我的本地开发环境存在问题。
据我了解,我可以授予自己对Key Vault的访问权限并az login在Azure CLI中运行。,,这在本地Service Fabric群集中运行应用程序时不起作用。我认为这是因为本地群集在NETWORK SERVICE帐户下运行。
如何使用MSI从本地群集访问Key Vault?
我假设您正在使用Microsoft.Azure.Services.AppAuthentication 库来获取使用 MSI 的令牌来对 Key Vault 进行身份验证,并且这在 Azure 上有效。如果是这样,您可以在本地开发环境中运行相同的代码。该库将自动切换为使用 Azure 上的 MSI。您可以在这里找到文档
\n\n\n\n\n注意:开发在当前用户下运行的应用程序(例如应用程序服务)时,MSI 场景的本地开发要容易得多。在这种情况下,您可以使用 Azure CLI/Visual Studio 帐户进行本地开发。您不需要创建单独的服务主体。Azure CLI/Visual Studio 不适用于 Service Fabric 本地开发,因为本地群集在网络服务帐户下运行。
\n
对于Service Fabric场景,请按照以下步骤操作:
\n\n创建服务主体并授予对 Key Vault 的访问权限。\n你有两个选择。证书的安全性更好,但做起来稍微困难一些。
\n\n选项 1:使用证书创建服务主体。确保您提供网络服务帐户或用于运行结构本地访问证书的任何帐户。请参阅有关如何授予访问权限的详细信息。
\n\n或者
\n\n选项 2:创建带有密码的服务主体
创建名为 \xe2\x80\x9cAzureServicesAuthConnectionString\xe2\x80\x9d 的环境变量。\n请参阅有关为服务结构创建环境变量的信息。
\n\n如果使用证书,请将“AzureServicesAuthConnectionString”设置为
\n\n\n\n\nRunAs=App;AppId={AppId};TenantId={TenantId};CertificateThumbprint= \n {Thumbprint};CertificateStoreLocation={LocalMachine 或 CurrentUser}
\n
如果使用密码,请将“AzureServicesAuthConnectionString”设置为
\n\n\nRunAs=应用程序;AppId={AppId};TenantId={TenantId};AppKey={ClientSecret}
\n
如果上述步骤不起作用,请发布您收到的错误。
\n| 归档时间: |
|
| 查看次数: |
3227 次 |
| 最近记录: |