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

Azure KeyVault秘密获取抛出身份验证错误

柯骏
2023-03-14

我正在设置一个KeyVault来从我的. NET Azure WebApp中删除秘密,并通过CredScan,据我所知,一切都已正确连接。

KeyVault与应用程序存在于同一资源组中,并且具有所需的机密。应用程序服务在KeyVault的访问策略中设置了显式读取权限。所有正确的参数都用于在代码中创建API客户机,遵循文档。

然而,当我使用标准API调用使用客户端实际访问一个秘密时,即。

SecretClient client = new SecretClient(keyVaultURI, new DefaultAzureCredential());
string secret = client.GetSecret(secretName).Value.Value;

我得到以下错误:

DefaultAzureCredential无法从包含的凭据中检索令牌。\r\n环境凭据身份验证不可用。环境变量未完全配置。\r\n ManagedIdtyCredential身份验证不可用,找不到托管标识终结点。\r\n共享令牌CacheCredential身份验证不可用。用户令牌获取失败。请确保已使用支持Azure单点登录的开发人员工具进行身份验证。

我猜一定有一些我不知道的必要配置步骤或设置。

共有1个答案

姬飞飙
2023-03-14

我将整个解决方案总结如下。

如果您想DefaultAzureCredential访问Azure应用程序服务中的Azure key vault,则需要启用MSI并为Azure key vault中的MSI配置正确的访问策略。有关更多详细信息,请参阅该文件

具体步骤如下。

A.启用系统分配的MSI

  • 向下滚动到左侧导航中的设置组。
  • 选择身份。
  • 在系统分配选项卡中,将状态切换为打开。单击保存。在此处输入图像描述

b、 配置访问策略

  • 在Azure Portal的“搜索资源对话框”中搜索密钥库
 类似资料:
  • 问题内容: 使用developers.google.com,我们创建了api用户,并将凭据下载为json文件。现在,在我的Macbook上,gspread身份验证在使用凭据.json时工作正常。当将相同的配置移到aws上的linux服务器上时,给出了403权限不足错误。 Pip和python版本相同。 例外 基本代码 问题答案: 尝试将变量更改为以下内容: 确保在API控制台中启用了Drive A

  • 我有一个电子邮件/密码firebase认证的应用程序。 它从登录活动开始 然后在我的onStart中,我检查当前用户是否为空,然后它导航到我的主要活动。这部分工作得非常好。 问题来了,在主活动中我有一个按钮,在这里我从LoginActivity.java调用signout函数: 问题是当logMeOut运行时,我得到了这种美 java.lang.NullPointerException:尝试对空对

  • 我正在运行fabric 1.4.0网络,我是它的管理员。我丢失了其中一个身份(不是管理员)的密码/机密。 我怎样才能知道这个秘密 我知道,每当我们注册一个新身份时,我们就会得到这个秘密(如果尚未提供的话),并且可以将这个秘密用于注册和其他目的。但我失去了这个秘密。 我也知道,我可以通过使用命令来向身份发布一个新的秘密。但是,这不是我的选择。我想得到现有的一个。 我运行了来查看身份信息,但没有在那里

  • 身份验证工作正常,但是,每次我使用错误的密码登录时,我会得到以下异常,而不是密码锁定异常。我认为Spring LDAP在对用户进行身份验证时并没有检查PwdPolicy(计算密码尝试)。 ne=(javax.naming.authenticationexception)javax.naming.authenticationexception:[LDAP:错误代码49-invalid_credent

  • 我的网站安全配置如下; 当我给出错误的用户名时,身份验证会按预期失败。但是,如果我一次验证成功,之后所有密码错误但用户名正确的请求都会成功验证。。。。 它被缓存在什么地方了吗? 我可以禁用此功能吗? 难道它不应该给出错误密码的身份验证失败吗? 注意:我正在学习Spring安全。我没有任何HTML页面在这个应用程序和测试从邮递员。