private async Task ExecuteAzureKeyVaultOperation(Func <Task> func, string operation)
 {
     try
     {
         await func();
     }
     catch (AdalServiceException asex)
     {
         throw new SecureStoreException(
                   SecureStoreException.Type.InvalidCredential,
                   AzureKeyVaultUtils.GetLocalizedResource(nameof(Resource.InvalidSecureStoreCredentials)),
                   asex);
     }
     catch (KeyVaultErrorException kvee) when(kvee.Response?.StatusCode == System.Net.HttpStatusCode.Forbidden)
     {
         throw new SecureStoreException(
                   SecureStoreException.Type.UnauthorizedOperation,
                   AzureKeyVaultUtils.GetLocalizedResource(nameof(Resource.SecureStoreOperationNotAuthorizeded), operation),
                   kvee);
     }
     catch (KeyVaultErrorException kvee) when(kvee.Response?.StatusCode == System.Net.HttpStatusCode.NotFound)
     {
         throw new SecureStoreException(
                   SecureStoreException.Type.SecretNotFound,
                   AzureKeyVaultUtils.GetLocalizedResource(nameof(Resource.SecureStoreSecretNotFound)),
                   kvee);
     }
     catch (Exception ex)
     {
         throw new SecureStoreException($"Operation {operation} failed.", ex);
     }
 }
Пример #2
0
        public AzureKeyVaultContext Build()
        {
            if (_context == null)
            {
                throw new Exception("Invalid usage");
            }

            if (_context.KeyVaultUri == null || !_context.KeyVaultUri.IsAbsoluteUri)
            {
                throw new SecureStoreException(
                          SecureStoreException.Type.InvalidConfiguration,
                          AzureKeyVaultUtils.GetLocalizedResource(nameof(Resource.AzureKeyVaultSettingInvalidOrMissing), nameof(_context.KeyVaultUri)));
            }

            if (string.IsNullOrEmpty(_context.ClientId))
            {
                throw new SecureStoreException(
                          SecureStoreException.Type.InvalidConfiguration,
                          AzureKeyVaultUtils.GetLocalizedResource(nameof(Resource.AzureKeyVaultSettingInvalidOrMissing), nameof(_context.ClientId)));
            }

            if (string.IsNullOrEmpty(_context.ClientSecret))
            {
                throw new SecureStoreException(
                          SecureStoreException.Type.InvalidConfiguration,
                          AzureKeyVaultUtils.GetLocalizedResource(nameof(Resource.AzureKeyVaultSettingInvalidOrMissing), nameof(_context.ClientSecret)));
            }

            return(_context);
        }
 public IEnumerable <ConfigurationEntry> GetConfiguration()
 {
     return(new List <ConfigurationEntry>
     {
         new ConfigurationValue(ConfigurationValueType.String)
         {
             Key = "KeyVaultUri",
             DisplayName = AzureKeyVaultUtils.GetLocalizedResource(nameof(Resource.SettingKeyVaultUri)),
             IsMandatory = true,
         },
         new ConfigurationValue(ConfigurationValueType.String)
         {
             Key = "ClientId",
             DisplayName = AzureKeyVaultUtils.GetLocalizedResource(nameof(Resource.SettingClientId)),
             IsMandatory = true,
         },
         new ConfigurationValue(ConfigurationValueType.String)
         {
             Key = "ClientSecret",
             DisplayName = AzureKeyVaultUtils.GetLocalizedResource(nameof(Resource.SettingClientSecret)),
             IsMandatory = true,
         },
     });
 }