2016-10-13 7 views
6

मैं Azure कुंजी तिजोरी से एक गुप्त प्राप्त करने के लिए निम्न कोड:Azure कुंजी तिजोरी: पहुँच से मना कर दिया है

public static async Task<string> GetToken(string authority, string resource, string scope) 
    { 
     var authContext = new AuthenticationContext(authority); 
     ClientCredential clientCred = new ClientCredential(...); //app id, app secret 
     AuthenticationResult result = await authContext.AcquireTokenAsync(resource, clientCred); 

     if (result == null) 
      throw new InvalidOperationException("Failed to obtain the JWT token"); 

     return result.AccessToken; 
    } 

    public static string GetSecret(string secretName) 
    { 
     KeyVaultClient keyVaultClient = new KeyVaultClient(GetToken); 
     try 
     { 
      return keyVaultClient.GetSecretAsync("my-key-vault-url", secretName).Result.Value; 
     } 
     catch(Exception ex) 
     { 
      return "Error"; 
     } 
    } 

त्रुटि मैं हो रही है कि "पहुँच से मना कर" है, जो (मुझे लगता है कि) का मतलब है कि आईडी, गुप्त और वॉल्ट का यूआरएल ठीक है। हालांकि, मुझे नहीं पता कि मैं इस त्रुटि को ठीक करने के लिए अलग-अलग क्या कर सकता हूं, क्या शायद एज़ूर पोर्टल में एक सेटिंग है जो मुझे एक रहस्य पढ़ने से रोक रही है?

उत्तर

5

पहुँच ठीक करने के लिए इनकार कर दिया आप सक्रिय निर्देशिका अनुमतियों को कॉन्फ़िगर करना। KeyVault तक पहुंच प्रदान करें।

भागो अगले आदेश:

Set-AzureRmKeyVaultAccessPolicy -VaultName 'yourKeyVaultName' -ServicePrincipalName ClientId -PermissionsToSecrets Get 

:

Set-AzureRmKeyVaultAccessPolicy -VaultName 'XXXXXXX' -ServicePrincipalName XXXXX -PermissionsToKeys decrypt,sign,get,unwrapKey 

Authorize the application to use the key or secret

0

आप रहस्य अपने तिजोरी में पढ़ने के लिए है कि एक ही आवेदन प्राधिकृत करना चाहते हैं, तो निम्न चलाने जब आप Azure ClientId में एप्लिकेशन पंजीकृत करते हैं तो उत्पन्न होता है।

संबंधित मुद्दे