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); } }
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, }, }); }