Estoy accediendo a KeyVault con un cliente .NET con una aplicación AAD. Aunque todos los permisos en secretos están habilitados para esta aplicación de AAD (captura de pantalla a continuación), obtengo "La operación "Lista" no está habilitada en la política de acceso de este almacén de claves" si navego al panel Secreto.
Me gustaría poder establecer los permisos a través de la aplicación AAD, por lo que usar Powershell no sería una opción.
Si configuro los permisos a través de Powershell, funciona.
Cómo estoy creando mis políticas de acceso:
var accessPolicy = new AccessPolicyEntry { ApplicationId = app, ObjectId = Obid, PermissionsRawJsonString = "{ \"keys\": [ \"all\" ], \"secrets\": [ \"all\" ], \"certificates\": [ \"all\" ] }", TenantId = ten, }; return accessPolicy;Luego aparece el error de lista y entonces tengo que usar
Set-AzureRmKeyVaultAccessPolicy -VaultName vaultname -ResourceGroupName location -ObjectId obid -PermissionsToKeys all -PermissionsToSecrets allEso eliminará el error, pero preferiría una solución para poder trabajar con el SDK de .NET para resolverlo.
Tengo el error:
La operación "Lista" no está habilitada en la directiva de acceso de este almacén de claves.
No está autorizado para ver estos contenidos.
La clave aquí fue mirar You are unauthorized to view these contents.
Navegue a Access policies y agregue su usuario conectado actualmente como principal con al menos privilegio de List :
Ahora puede ver los secretos si los hay:
Tuve el mismo problema y la solución fue acceder a la hoja de Access Policies de mi bóveda, luego hacer clic en mi aplicación y activar List en Key permissions / Secret permissions
Después de siglos de intentar solucionar este problema, el problema estaba en el código de las políticas de acceso. Cuando un usuario está registrado en el código, se asocia con la ID de la aplicación. El ID de la aplicación es el problema, ya que cree que el usuario es una aplicación Y un usuario.
La señal reveladora de esto es si ingresa al portal, luego "Política de acceso" en un Keyvault y dirá Aplicación + Usuario debajo. Si intenta agregar un usuario (que ya está en la lista), agregará el segundo usuario, por lo que tendrá 2 iguales.
Así que todo lo que se necesita es:
var accessPolicy = new AccessPolicyEntry { ApplicationId = app, // Delete this line ObjectId = Obid, PermissionsRawJsonString = "{ \"keys\": [ \"all\" ], \"secrets\": [ \"all\" ], \"certificates\": [ \"all\" ] }", TenantId = ten, }; return accessPolicy;La documentación de Microsoft puede ser vaga a veces y creo que esta es una de ellas.