gpt4 book ai didi

Azure Keyvault - "The operation "列表“在此 Key Vault 的访问策略中未启用。”以编程方式创建 KeyVault 时

转载 作者:行者123 更新时间:2023-12-03 02:35:04 30 4
gpt4 key购买 nike

我正在使用 .net core 2.1 和 OpenIdConnect 以及以下 AccessPolicies 创建 azure keyvault

 AccessPolicies = new List<AccessPolicyEntry>()
{
new AccessPolicyEntry
{
TenantId = Guid.Parse(tenantId),
ObjectId = objectId,
Permissions = new Permissions
{
Secrets = new List<string> { "all" },
Keys = new string[] { "all" },
Certificates = new string[]{"all" }
}
}
}

使用它,现在我可以创建 keyvault,但是当转到新创建的 keyvault(在 Azure 门户中)设置 Blade {Key,Secret,Certificate} 时,它会显示警告“此 key 保管库的访问策略中未启用“列表”操作。” enter image description here

注意:- 如上面的代码所示“已授予所有权限”。我可以在 azure 门户中看到它。

我尝试过的:-我试图引用以下堆栈溢出问题的答案

根据上述 stackoverflow 答案“需要传递 Azure AD 应用程序的服务主体的对象 ID,而不是 Azure AD 应用程序的对象 ID”。

我尝试使用以下 powershell 脚本找出 azure AD 应用程序的服务主体的对象 ID

Get-AzADServicePrincipal -ServicePrincipalName "<app client ID>"

它给出了以下结果

enter image description here

我尝试在 AccessPolicyEntry 的 objectId 中使用“Id”(在上面的屏幕截图中),但没有解决问题。

问题:-

  1. 是否需要在 AccessPolicyEntry 中设置其他权限?
  2. AccessPolicyEntry 中的 objectID 应该是什么(目前,我提供的是 Azure AD 应用程序的 objectID)?
  3. 如果需要服务主体的objectId。如何以编程方式获取它?

最佳答案

好吧,我可以在我这边重现您的问题。

首先,操作传递服务主体的对象 ID 而不是 Azure AD 应用程序的对象 ID 是完全正确的。将访问策略中的所有权限授予服务主体后,服务主体将拥有该权限。

但是当您检查门户中的 keyvault 时,您使用的是登录 Azure 门户的用户帐户而不是服务主体,因此导致了警告。

因此,如果您想修复该警告,只需通过门户中的 + 添加访问策略 按钮在访问策略 中添加您的用户帐户,或者您也可以指定代码中用户帐户的对象 ID 以及创建 keyvault 时的权限。

然后关于你的问题:

Is any other permission need to set in AccessPolicyEntry?

不,权限足够了。

What should be the objectID in AccessPolicyEntry(currently, I am giving obectId of Azure AD application)?

您不应该使用 AD 应用程序的对象 ID,您的选择是使用服务主体/安全组/用户帐户的对象 ID,这取决于您的要求,详细信息 here

If needed objectId of service principal. how can get it programmatically?

您可以使用之前使用的 powershell 命令,或通过服务主体名称使用 Azure CLI az ad sp show

或者,如果您可以将 Microsoft Graph SDK for C#filter 一起使用,例如:

GraphServiceClient graphClient = new GraphServiceClient( authProvider );

var serviceprincipals = await graphClient.Serviceprincipals
.Request().
.Filter("some condition").
.GetAsync();

关于Azure Keyvault - "The operation "列表“在此 Key Vault 的访问策略中未启用。”以编程方式创建 KeyVault 时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63488864/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com