可以在本地使用“用户分配的托管身份”吗?

2024-05-22

我正在尝试使用User Assigned Managed Identity https://learn.microsoft.com/en-us/azure/active-directory/managed-identities-azure-resources/how-to-manage-ua-identity-portal在我们的一个应用程序中。我还读到了之间的差异System Assigned Managed Identity and User Assigned Managed Identity https://learn.microsoft.com/en-us/azure/active-directory/managed-identities-azure-resources/overview#managed-identity-types.

我很清楚System Assigned Managed Identity无法在本地使用,因为您要将身份分配给 Azure 资源。

但是我不清楚是否User Assigned Managed Identity可以在本地使用。我唯一能找到的是以下内容:

在我的场景中,我想从 Azure Key Vault 读取一些机密。我创建了一个用户分配的托管身份,并在 Key Vault 上配置了访问策略,以向该身份授予必要的权限。考虑到我使用此身份来访问 Azure Key Vault(这是一种 Azure 资源),我的期望是,无论我的代码在何处运行(使用 JetBrains Rider 作为我的 IDE),它都应该可以工作。

但是,当我尝试做类似的事情时:

var managedIdentityCredential = new ManagedIdentityCredential("managed-identity-id");
SecretClient secretClient = new(new Uri("https://mykeyvault.vault.azure.net/"), managedIdentityCredential);
KeyVaultSecret secret = await secretClient.GetSecretAsync(key);

我得到了Azure.Identity.CredentialUnavailableException with ManagedIdentityCredential authentication unavailable. No Managed Identity endpoint found当我在本地运行代码时出现错误消息:

Azure.Identity.CredentialUnavailableException: ManagedIdentityCredential authentication unavailable. No Managed Identity endpoint found.
   at Azure.Identity.ManagedIdentityClient.AuthenticateAsync(Boolean async, TokenRequestContext context, CancellationToken cancellationToken)
   at Azure.Identity.ManagedIdentityCredential.GetTokenImplAsync(Boolean async, TokenRequestContext requestContext, CancellationToken cancellationToken)
   at Azure.Identity.CredentialDiagnosticScope.FailWrapAndThrow(Exception ex)
   at Azure.Identity.ManagedIdentityCredential.GetTokenImplAsync(Boolean async, TokenRequestContext requestContext, CancellationToken cancellationToken)
   at Azure.Identity.ManagedIdentityCredential.GetTokenAsync(TokenRequestContext requestContext, CancellationToken cancellationToken)
   at Azure.Security.KeyVault.ChallengeBasedAuthenticationPolicy.AuthenticateRequestAsync(HttpMessage message, Boolean async, AuthenticationChallenge challenge)
   at Azure.Security.KeyVault.ChallengeBasedAuthenticationPolicy.ProcessCoreAsync(HttpMessage message, ReadOnlyMemory`1 pipeline, Boolean async)
   at Azure.Core.Pipeline.RetryPolicy.ProcessAsync(HttpMessage message, ReadOnlyMemory`1 pipeline, Boolean async)
   at Azure.Core.Pipeline.RetryPolicy.ProcessAsync(HttpMessage message, ReadOnlyMemory`1 pipeline, Boolean async)
   at Azure.Core.Pipeline.HttpPipeline.SendRequestAsync(Request request, CancellationToken cancellationToken)
   at Azure.Security.KeyVault.KeyVaultPipeline.SendRequestAsync(Request request, CancellationToken cancellationToken)
   at Azure.Security.KeyVault.KeyVaultPipeline.SendRequestAsync[TResult](RequestMethod method, Func`1 resultFactory, CancellationToken cancellationToken, String[] path)
   at Azure.Security.KeyVault.Certificates.CertificateClient.GetCertificateAsync(String certificateName, CancellationToken cancellationToken)

对此的任何见解都将受到高度赞赏。


不。用户管理的身份也不支持ManagedIdentityCredential在当地环境中。

你应该使用默认Azure凭据 https://learn.microsoft.com/en-us/dotnet/api/azure.identity.defaultazurecredential?view=azure-dotnet使代码在本地环境中运行。

See the Note tip here https://learn.microsoft.com/en-us/azure/azure-app-configuration/howto-integrate-azure-managed-service-identity?tabs=core2x#use-a-managed-identity.

Note

The ManagedIdentityCredential仅适用于以下 Azure 环境 支持托管身份验证的服务。这不起作用 在当地环境中。使用默认Azure凭据对于代码 在本地和 Azure 环境中工作,因为它将回退到 很少有身份验证选项,包括托管身份。

如果您想使用用户分配的托管身份DefaultAzureCredential当部署到 Azure 时,指定 客户端ID.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

可以在本地使用“用户分配的托管身份”吗? 的相关文章

随机推荐

  • nginx上传client_max_body_size问题

    我正在运行 nginx ruby on rails 并且有一个简单的多部分表单来上传文件 一切正常 直到我决定限制要上传的文件的最大大小 为此 我设置了 nginxclient max body size to 1m 1MB 并且当该规则被
  • 如何诊断和修复 git fatal: 无法读取树

    我在用着git管理项目上的文件 并不断遇到这个问题 当我跑步时git status我收到消息 fatal unable to read tree e2d920161d41631066945a3cbcd1b043de919570 据我了解 我
  • 检查SQS队列是否为空的有效方法

    我有一个SQS Queue多个主机从中读取消息 我想在处理队列中的所有消息后运行一些作业 业务逻辑 如何检查队列是否为空 是的 我可以检查ApproximateNumberOfMessages and ApproximateNumberOf
  • 比较 jdbc 中的结果集

    在我的java代码中 我获得了两个结果集rs1和rs2 如下所示 rs1 statement executeQuery select from tableA rs2 statement executeQuery select from ta
  • 如何使用 C# 了解 Excel 中的分页符 [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我正在使用 C 创建并格式化 Excel 电子表格 因此我需要格式化 合并单元格 更改字体等 直到第一页的最后 如何知道 Excel 电子
  • 关于*多键*外连接的默认/填充值

    注意 下面的帖子是 多键 对应的先前的问题 https stackoverflow com q 39748976 559827我的 先前问题的解决方案仅适用于连接位于单个键上的情况 并且我不清楚如何将这些解决方案推广到下面介绍的多键情况 因
  • 具有默认值artifactID的Maven原型属性

    我想创建一个使用要创建的参数的原型 坚果我不知道以这种方式创建的参数是否正确
  • 多次调用方法的 Python Mock 对象

    我正在测试一个类 它具有另一个类的依赖项 该类的实例被传递给 CUT 的 init 方法 我想使用 Python Mock 库来模拟这个类 我所拥有的是这样的 mockobj Mock spec MyDependencyClass mock
  • 使用 CSS 的样式选择选项

    我正在尝试使用 CSS 设置选择选项列表的样式 我希望列表的时间之间有更多的填充 因为它们似乎被压在一起 我尝试向选项元素添加填充 但这似乎不起作用 有任何想法吗 这是我的代码 HTML
  • 如何将 .env 文件变量传递给 webpack 配置?

    我是 webpack 的新手 几乎完成了所有构建部分 但现在的问题是我想将环境变量从 env 文件传递 到 webpack 配置 以便我可以通过以下方式将该变量传递到我的构建文件webpack DefinePlugin plugin 目前我
  • 更新 Visual Studio 2017 15.6.2 时出错

    我试图将 VS 2017 更新到 15 6 2 版本 像往常一样 VS 要求我更新安装程序 但是安装程序更新失败 现在 当我尝试再次启动 VS 更新时 收到以下错误消息 加载 vs installershell exe 时出错 主题中不存在
  • 如何从 data.frame 中删除列?

    不是 你怎么 但更多的是 你怎么 如果有人给你一个包含 200 列的文件 并且你想将其减少到分析所需的少数列 你会如何做呢 一种解决方案是否比另一种解决方案更有优势 假设我们有一个包含列 col1 col2 到 col200 的数据框 如果
  • R 中的“右”滚动平均值和“左”滚动平均值是什么?

    如果我想计算之前的n意味着年份滞后于当年 我将如何实现这一点 它像 右 滚动平均窗口一样简单吗 或者它是一个 左 滚动平均窗口 我不确定这里使用哪个窗口 样本数据 set seed 1234 dat lt data frame year c
  • 如何衡量字符串的复杂度?

    我有一些长字符串 1 000 000 个字符 每个字符串仅包含定义字母表中的符号 例如 A 1 2 3 示例字符串 string S1 1111111111 meta complexity 0 string S2 1111222333 me
  • JSF Maven Mojarra 实施

    我尝试使用 JSF Eclipse 和 Maven 创建简单的项目 我用了
  • 使用 WebRTC 构建 iOS 本机应用程序

    我找了4天了 还是没找到 我构建了所有库并将其集成到我的自定义项目中 但我不知道应该采取哪些步骤才能使其正常工作 我在代码示例 解释中发现的唯一内容是 tech appear in 2015 05 25 Getting started wi
  • 使用 data.table 对分组数据进行插值

    这是我最初发布的问题的延续http r 789695 n4 nabble com subset Between data table list and single data table object tp4673202 html http
  • SvcUtil.exe 与添加引用

    当 VS NET 中的 添加服务引用 提供了您需要的所有代理类时 为什么有人会使用 SvcUtil exe 有时在 VS 中添加服务引用无法创建有用的代理 相反 它为您提供了一个空的 Reference cs 详细信息here https
  • GridSearchCV.best_score 与 cross_val_score 不同(GridSearchCV.best_estimator_)

    考虑以下网格搜索 grid GridSearchCV clf parameters n jobs 1 iid True cv 5 grid fit grid fit X train1 y train1 根据 Sklearn 的资源 grid
  • 可以在本地使用“用户分配的托管身份”吗?

    我正在尝试使用User Assigned Managed Identity https learn microsoft com en us azure active directory managed identities azure re