public async Task <string> GetValueAsync(string context, string key) { var ctx = ConvertJsonToContext(context); key = key ?? throw new SecureStoreException(); var passwordKey = key.GetExistingMetadata(); return(await ExecuteAzureKeyVaultOperation( async() => { IAzureKeyVaultClient keyVaultClient = _clientFactory.CreateClient(ctx); return await keyVaultClient.GetSecretAsync(passwordKey.VaultSecretName); }, "get")); }
public async Task <Credential> GetCredentialsAsync(string context, string key) { var ctx = ConvertJsonToContext(context); key = key ?? throw new SecureStoreException(); var passwordKey = key.GetExistingMetadata(); var secret = await ExecuteAzureKeyVaultOperation( async() => { IAzureKeyVaultClient keyVaultClient = _clientFactory.CreateClient(ctx); return(await keyVaultClient.GetSecretAsync(passwordKey.VaultSecretName)); }, "get"); return(JsonConvert.DeserializeObject <Credential>(secret)); }
public async Task <string> CreateValueAsync(string context, string key, string value) { var ctx = ConvertJsonToContext(context); // key is null for new secret value = value ?? throw new ArgumentNullException(nameof(value)); var passwordKey = key.GetWriteMetadata(null); await ExecuteAzureKeyVaultOperation( async() => { IAzureKeyVaultClient keyVaultClient = _clientFactory.CreateClient(ctx); return(await keyVaultClient.SetSecretAsync(passwordKey.VaultSecretName, value)); }, "set"); return(JsonConvert.SerializeObject(passwordKey)); }
public async Task <string> UpdateCredentialsAsync(string context, string key, string oldAugumentedKey, Credential value) { var ctx = ConvertJsonToContext(context); key = key ?? throw new ArgumentNullException(nameof(key)); oldAugumentedKey = oldAugumentedKey ?? throw new ArgumentNullException(nameof(oldAugumentedKey)); value = value ?? throw new ArgumentNullException(nameof(value)); var serializedCredential = JsonConvert.SerializeObject(value); var passwordKey = key.GetWriteMetadata(oldAugumentedKey); await ExecuteAzureKeyVaultOperation( async() => { IAzureKeyVaultClient keyVaultClient = _clientFactory.CreateClient(ctx); return(await keyVaultClient.SetSecretAsync(passwordKey.VaultSecretName, serializedCredential)); }, "set"); return(JsonConvert.SerializeObject(passwordKey)); }
public async Task RemoveValueAsync(string context, string key) { var ctx = ConvertJsonToContext(context); key = key ?? throw new ArgumentNullException(nameof(key)); var passwordKey = key.GetExistingMetadata(); try { await ExecuteAzureKeyVaultOperation( async() => { IAzureKeyVaultClient keyVaultClient = _clientFactory.CreateClient(ctx); await keyVaultClient.DeleteSecretAsync(passwordKey.VaultSecretName); }, "delete"); } catch (SecureStoreException sse) when(sse.ErrorType == SecureStoreException.Type.SecretNotFound) { // Ignore SecretNotFound } }
public SourceSystemConnectorService(IUnitOfWork unitOfWork, IAzureKeyVaultClient azureKeyVaultClient, IMetadataUtilityService metadataUtility) { _unitOfWork = unitOfWork; _azureKeyVaultClient = azureKeyVaultClient; _metadataUtility = metadataUtility; }
public SecretController(IAzureKeyVaultClient kvOperator) { _kvOperator = kvOperator; }