2017-03-20 1 views
0

J'accède à KeyVault avec le client .NET avec une application AAD. Bien que toutes les permissions sous secrets soient activées pour cette application AAD (capture d'écran ci-dessous), la liste "L'opération" n'est pas activée dans la politique d'accès de ce coffre-fort si je navigue vers le panneau Secret. Je voudrais être en mesure de définir les autorisations via l'application AAD et donc l'utilisation de Powershell ne serait pas une option.Azure Keyvault - La liste "Opération" n'est pas autorisée par la politique de coffre-fort mais toutes les autorisations sont vérifiées

Si je définis les autorisations via Powershell, cela fonctionne.

Comment je crée mes politiques d'accès:

 var accessPolicy = new AccessPolicyEntry 
     { 

      ApplicationId = app, 
      ObjectId = Obid, 
      PermissionsRawJsonString = "{ \"keys\": [ \"all\" ], \"secrets\": [ \"all\" ], \"certificates\": [ \"all\" ] }", 
      TenantId = ten, 

     }; 

     return accessPolicy; 

qui me donne enter image description here

l'erreur de liste apparaît et donc je dois utiliser

Set-AzureRmKeyVaultAccessPolicy -VaultName vaultname -ResourceGroupName location -ObjectId obid -PermissionsToKeys all -PermissionsToSecrets all 

qui va se débarrasser de l'erreur mais je préférerais de beaucoup une solution afin que je puisse travailler avec le SDK .NET pour résoudre.

Répondre

0

Après avoir essayé de trier ce problème, le problème se situait dans le code des stratégies d'accès. Lorsqu'un utilisateur est enregistré dans le code, il s'associe à l'identifiant de l'application. L'identifiant de l'application est le problème car il pense que l'utilisateur est une application ET un utilisateur. Le signe révélateur de ceci est si vous allez dans le portail, puis "Access Policy" sur un Keyvault et il dira Application + Utilisateur ci-dessous. Si vous essayez d'ajouter un utilisateur (qui est déjà sur la liste) - il va ajouter le deuxième utilisateur - de sorte que vous aurez 2 de la même chose.

Donc, tout ce qui est nécessaire est de:

 var accessPolicy = new AccessPolicyEntry 
    { 

     ApplicationId = app, // Delete this line 
     ObjectId = Obid, 
     PermissionsRawJsonString = "{ \"keys\": [ \"all\" ], \"secrets\": [ \"all\" ], \"certificates\": [ \"all\" ] }", 
     TenantId = ten, 

    }; 

    return accessPolicy; 

La documentation Microsoft peut être vague parfois et je crois que c'est l'un d'entre eux.

0

Voyez-vous cette erreur lorsque vous allez sur le portail Azure? Quelle identité avez-vous utilisée pour vous connecter au portail Azure? Cette identité possède-t-elle des autorisations de liste secrète pour le coffre-fort de clés?

+0

Oui, je vois cette erreur dans le portail lorsque je navigue aux volets "secrets" ou "clés". La capture d'écran que vous voyez est pour le compte avec lequel j'ai été connecté. – Pikapops

+0

Est-ce que votre identité d'utilisateur est autorisée à répertorier des secrets? –

+0

Oui, c'est le cas :) – Pikapops

1

J'ai eu le même problème et la solution a été de se rendre à la lame de mon coffre Access Policies, puis cliquez sur ma demande et activer List sur Key permissions/Secret permissions