Pik*_*ops 6 .net c# powershell azure azure-keyvault
我正在使用带有AAD应用程序的.NET客户端访问KeyVault.虽然为这个AAD应用程序启用了秘密下的所有权限(下面的屏幕截图),但是如果我导航到"秘密"面板,我将在"此密钥库的访问策略中未启用"操作"列表".
我希望能够通过AAD应用程序设置权限,因此使用Powershell不是一个选项.
如果我通过Powershell设置权限 - 它确实有效.
我如何创建访问策略:
var accessPolicy = new AccessPolicyEntry
{
ApplicationId = app,
ObjectId = Obid,
PermissionsRawJsonString = "{ \"keys\": [ \"all\" ], \"secrets\": [ \"all\" ], \"certificates\": [ \"all\" ] }",
TenantId = ten,
};
return accessPolicy;
Run Code Online (Sandbox Code Playgroud)
然后出现列表错误,所以我必须使用
Set-AzureRmKeyVaultAccessPolicy -VaultName vaultname -ResourceGroupName location -ObjectId obid -PermissionsToKeys all -PermissionsToSecrets all
Run Code Online (Sandbox Code Playgroud)
这将摆脱错误,但我更喜欢一个解决方案,所以我可以使用.NET SDK来解决.
Ogg*_*las 15
得到错误:
此密钥保管库的访问策略中未启用“列表”操作。
您无权查看这些内容。
这里的关键是看 You are unauthorized to view these contents.
导航到Access policies
您当前登录的用户并将其添加为具有至少List
特权的主体:
您现在可以查看机密(如果有):
Hor*_*oma 11
我有同样的问题和解决办法是让我的保管库的Access Policies
刀片,然后点击我的应用程序,并激活List
上Key permissions
/Secret permissions
经过多年尝试解决此问题-问题出在访问策略代码中。当用户在代码中注册时-它会将自己与应用ID关联。应用程序ID是一个问题,因为它认为用户是应用程序和用户。
明显的迹象是,如果您进入门户网站,则进入Keyvault上的“访问策略”,并在下面说“应用程序+用户”。如果您尝试添加一个用户(已经在列表中),它将添加第二个用户,因此您将拥有两个相同的用户。
因此,所有需要做的是:
var accessPolicy = new AccessPolicyEntry
{
ApplicationId = app, // Delete this line
ObjectId = Obid,
PermissionsRawJsonString = "{ \"keys\": [ \"all\" ], \"secrets\": [ \"all\" ], \"certificates\": [ \"all\" ] }",
TenantId = ten,
};
return accessPolicy;
Run Code Online (Sandbox Code Playgroud)
Microsoft文档有时可能含糊不清,我相信这就是其中之一。
归档时间: |
|
查看次数: |
10887 次 |
最近记录: |