/// <summary>
 /// Create key vault service client
 /// </summary>
 /// <param name="config">Keyvault configuration.</param>
 /// <param name="provider"></param>
 /// <param name="certificates"></param>
 /// <param name="factory"></param>
 public KeyVaultServiceClient(ICertificateRepository certificates,
                              ICertificateFactory factory, IKeyVaultConfig config,
                              Auth.ITokenProvider provider) : this(certificates, factory, config,
                                                                   new KeyVaultClient(async(_, resource, scope) => {
     var token = await provider.GetTokenForAsync(
         resource, scope.YieldReturn());
     return(token.RawToken);
 })) {
 }
        /// <summary>
        /// Create key vault service client
        /// </summary>
        /// <param name="config">Keyvault configuration.</param>
        /// <param name="client"></param>
        /// <param name="certificates"></param>
        /// <param name="factory"></param>
        public KeyVaultServiceClient(ICertificateRepository certificates,
                                     ICertificateFactory factory, IKeyVaultConfig config,
                                     IKeyVaultClient client)
        {
            if (config == null)
            {
                throw new ArgumentNullException(nameof(config));
            }

            _vaultBaseUrl   = config.KeyVaultBaseUrl;
            _keyStoreIsHsm  = config.KeyVaultIsHsm;
            _factory        = factory ?? throw new ArgumentNullException(nameof(factory));
            _certificates   = certificates ?? throw new ArgumentNullException(nameof(certificates));
            _keyVaultClient = client ?? throw new ArgumentNullException(nameof(client));
        }
Beispiel #3
0
 /// <summary>
 /// Create key vault service client
 /// </summary>
 /// <param name="config">Keyvault configuration.</param>
 /// <param name="serializer"></param>
 /// <param name="certificates"></param>
 /// <param name="factory"></param>
 /// <param name="provider"></param>
 public KeyVaultServiceClient(ICertificateRepository certificates,
                              ICertificateFactory factory, IKeyVaultConfig config, IJsonSerializer serializer,
                              ITokenProvider provider) : this(certificates, factory, config, serializer,
                                                              new KeyVaultClient(async(_, resource, scope) => {
     if (resource != "https://vault.azure.net")
     {
         // Tunnels the resource through to the provider
         scope = resource + "/" + scope;
     }
     var token = await provider.GetTokenForAsync(
         Resource.KeyVault, scope.YieldReturn());
     return(token.RawToken);
 })) {
     if (provider?.Supports(Resource.KeyVault) != true)
     {
         throw new ArgumentNullException(nameof(provider));
     }
 }