# AspireKeyVaultExtensions Methods

- Package: [Aspire.Azure.Security.KeyVault](/reference/api/csharp/aspire.azure.security.keyvault.md)
- Type: [AspireKeyVaultExtensions](/reference/api/csharp/aspire.azure.security.keyvault/aspirekeyvaultextensions.md)
- Kind: `Methods`
- Members: `7`

Provides extension methods for registering and configuring Azure Key Vault secrets in an Aspire application.

## AddAzureKeyVaultCertificateClient(IHostApplicationBuilder, string, Action<AzureSecurityKeyVaultSettings>, Action<IAzureClientBuilder<CertificateClient, CertificateClientOptions>>)

- Name: `AddAzureKeyVaultCertificateClient(IHostApplicationBuilder, string, Action<AzureSecurityKeyVaultSettings>, Action<IAzureClientBuilder<CertificateClient, CertificateClientOptions>>)`
- Modifiers: `extension`
- Source: [GitHub](https://github.com/microsoft/aspire/blob/5bd693ae1897dee5e2ce71c2cc08879c1c7eff51/src/Components/Aspire.Azure.Security.KeyVault/AspireKeyVaultExtensions.cs#L85-L90)

Registers `Certificates.CertificateClient` as a singleton in the services provided by the `builder`.

```csharp
public static class AspireKeyVaultExtensions
{
    public static void AddAzureKeyVaultCertificateClient(
        this IHostApplicationBuilder builder,
        string connectionName,
        Action<AzureSecurityKeyVaultSettings>? configureSettings = null,
        Action<IAzureClientBuilder<CertificateClient, CertificateClientOptions>>? configureClientBuilder = null)
    {
        // ...
    }
}
```

## Parameters

- `builder` (`IHostApplicationBuilder`)
  The `Hosting.IHostApplicationBuilder` to read config from and add services to.
- `connectionName` (`string`)
  A name used to retrieve the connection string from the ConnectionStrings configuration section.
- `configureSettings` (`Action<AzureSecurityKeyVaultSettings>`) `optional`
  An optional method that can be used for customizing the [AzureSecurityKeyVaultSettings](/reference/api/csharp/aspire.azure.security.keyvault/azuresecuritykeyvaultsettings.md). It's invoked after the settings are read from the configuration.
- `configureClientBuilder` (`Action<IAzureClientBuilder<CertificateClient, CertificateClientOptions>>`) `optional`
  An optional method that can be used for customizing the `Extensions.IAzureClientBuilder`2`.

## Exceptions

- `InvalidOperationException` -- Thrown when mandatory [AzureSecurityKeyVaultSettings.VaultUri](/reference/api/csharp/aspire.azure.security.keyvault/azuresecuritykeyvaultsettings/properties.md#vaulturi) is not provided.

## Remarks

Reads the configuration from "Aspire:Azure:Security:KeyVault:{name}" section.

## AddAzureKeyVaultClient(IHostApplicationBuilder, string, Action<AzureSecurityKeyVaultSettings>, Action<IAzureClientBuilder<SecretClient, SecretClientOptions>>)

- Name: `AddAzureKeyVaultClient(IHostApplicationBuilder, string, Action<AzureSecurityKeyVaultSettings>, Action<IAzureClientBuilder<SecretClient, SecretClientOptions>>)`
- Modifiers: `extension`
- Source: [GitHub](https://github.com/microsoft/aspire/blob/5bd693ae1897dee5e2ce71c2cc08879c1c7eff51/src/Components/Aspire.Azure.Security.KeyVault/AspireKeyVaultExtensions.cs#L40-L45)

Registers `Secrets.SecretClient` as a singleton in the services provided by the `builder`. Enables retries, corresponding health check, logging and telemetry.

```csharp
public static class AspireKeyVaultExtensions
{
    public static void AddAzureKeyVaultClient(
        this IHostApplicationBuilder builder,
        string connectionName,
        Action<AzureSecurityKeyVaultSettings>? configureSettings = null,
        Action<IAzureClientBuilder<SecretClient, SecretClientOptions>>? configureClientBuilder = null)
    {
        // ...
    }
}
```

## Parameters

- `builder` (`IHostApplicationBuilder`)
  The `Hosting.IHostApplicationBuilder` to read config from and add services to.
- `connectionName` (`string`)
  A name used to retrieve the connection string from the ConnectionStrings configuration section.
- `configureSettings` (`Action<AzureSecurityKeyVaultSettings>`) `optional`
  An optional method that can be used for customizing the [AzureSecurityKeyVaultSettings](/reference/api/csharp/aspire.azure.security.keyvault/azuresecuritykeyvaultsettings.md). It's invoked after the settings are read from the configuration.
- `configureClientBuilder` (`Action<IAzureClientBuilder<SecretClient, SecretClientOptions>>`) `optional`
  An optional method that can be used for customizing the `Extensions.IAzureClientBuilder`2`.

## Exceptions

- `InvalidOperationException` -- Thrown when mandatory [AzureSecurityKeyVaultSettings.VaultUri](/reference/api/csharp/aspire.azure.security.keyvault/azuresecuritykeyvaultsettings/properties.md#vaulturi) is not provided.

## Remarks

Reads the configuration from "Aspire:Azure:Security:KeyVault" section.

## AddAzureKeyVaultKeyClient(IHostApplicationBuilder, string, Action<AzureSecurityKeyVaultSettings>, Action<IAzureClientBuilder<KeyClient, KeyClientOptions>>)

- Name: `AddAzureKeyVaultKeyClient(IHostApplicationBuilder, string, Action<AzureSecurityKeyVaultSettings>, Action<IAzureClientBuilder<KeyClient, KeyClientOptions>>)`
- Modifiers: `extension`
- Source: [GitHub](https://github.com/microsoft/aspire/blob/5bd693ae1897dee5e2ce71c2cc08879c1c7eff51/src/Components/Aspire.Azure.Security.KeyVault/AspireKeyVaultExtensions.cs#L129-L134)

Registers `Keys.KeyClient` as a singleton in the services provided by the `builder`.

```csharp
public static class AspireKeyVaultExtensions
{
    public static void AddAzureKeyVaultKeyClient(
        this IHostApplicationBuilder builder,
        string connectionName,
        Action<AzureSecurityKeyVaultSettings>? configureSettings = null,
        Action<IAzureClientBuilder<KeyClient, KeyClientOptions>>? configureClientBuilder = null)
    {
        // ...
    }
}
```

## Parameters

- `builder` (`IHostApplicationBuilder`)
  The `Hosting.IHostApplicationBuilder` to read config from and add services to.
- `connectionName` (`string`)
  A name used to retrieve the connection string from the ConnectionStrings configuration section.
- `configureSettings` (`Action<AzureSecurityKeyVaultSettings>`) `optional`
  An optional method that can be used for customizing the [AzureSecurityKeyVaultSettings](/reference/api/csharp/aspire.azure.security.keyvault/azuresecuritykeyvaultsettings.md). It's invoked after the settings are read from the configuration.
- `configureClientBuilder` (`Action<IAzureClientBuilder<KeyClient, KeyClientOptions>>`) `optional`
  An optional method that can be used for customizing the `Extensions.IAzureClientBuilder`2`.

## Exceptions

- `InvalidOperationException` -- Thrown when mandatory [AzureSecurityKeyVaultSettings.VaultUri](/reference/api/csharp/aspire.azure.security.keyvault/azuresecuritykeyvaultsettings/properties.md#vaulturi) is not provided.

## Remarks

Reads the configuration from "Aspire:Azure:Security:KeyVault:{name}" section.

## AddAzureKeyVaultSecrets(IConfigurationManager, string, Action<AzureSecurityKeyVaultSettings>, Action<SecretClientOptions>, AzureKeyVaultConfigurationOptions?)

- Name: `AddAzureKeyVaultSecrets(IConfigurationManager, string, Action<AzureSecurityKeyVaultSettings>, Action<SecretClientOptions>, AzureKeyVaultConfigurationOptions?)`
- Modifiers: `extension`
- Source: [GitHub](https://github.com/microsoft/aspire/blob/5bd693ae1897dee5e2ce71c2cc08879c1c7eff51/src/Components/Aspire.Azure.Security.KeyVault/AspireKeyVaultExtensions.cs#L173-L178)

Adds the Azure KeyVault secrets to be configuration values in the `configurationManager`.

```csharp
public static class AspireKeyVaultExtensions
{
    public static void AddAzureKeyVaultSecrets(
        this IConfigurationManager configurationManager,
        string connectionName,
        Action<AzureSecurityKeyVaultSettings>? configureSettings = null,
        Action<SecretClientOptions>? configureClientOptions = null,
        AzureKeyVaultConfigurationOptions? options = null)
    {
        // ...
    }
}
```

## Parameters

- `configurationManager` (`IConfigurationManager`)
  The `Configuration.IConfigurationManager` to add the secrets to.
- `connectionName` (`string`)
  A name used to retrieve the connection string from the ConnectionStrings configuration section.
- `configureSettings` (`Action<AzureSecurityKeyVaultSettings>`) `optional`
  An optional method that can be used for customizing the [AzureSecurityKeyVaultSettings](/reference/api/csharp/aspire.azure.security.keyvault/azuresecuritykeyvaultsettings.md). It's invoked after the settings are read from the configuration.
- `configureClientOptions` (`Action<SecretClientOptions>`) `optional`
  An optional method that can be used for customizing the `Secrets.SecretClientOptions`.
- `options` (`AzureKeyVaultConfigurationOptions?`) `optional`
  An optional `Secrets.AzureKeyVaultConfigurationOptions` instance to configure the behavior of the configuration provider.

## AddKeyedAzureKeyVaultCertificateClient(IHostApplicationBuilder, string, Action<AzureSecurityKeyVaultSettings>, Action<IAzureClientBuilder<CertificateClient, CertificateClientOptions>>)

- Name: `AddKeyedAzureKeyVaultCertificateClient(IHostApplicationBuilder, string, Action<AzureSecurityKeyVaultSettings>, Action<IAzureClientBuilder<CertificateClient, CertificateClientOptions>>)`
- Modifiers: `extension`
- Source: [GitHub](https://github.com/microsoft/aspire/blob/5bd693ae1897dee5e2ce71c2cc08879c1c7eff51/src/Components/Aspire.Azure.Security.KeyVault/AspireKeyVaultExtensions.cs#L107-L112)

Registers `Certificates.CertificateClient` as a singleton for given `name` in the services provided by the `builder`.

```csharp
public static class AspireKeyVaultExtensions
{
    public static void AddKeyedAzureKeyVaultCertificateClient(
        this IHostApplicationBuilder builder,
        string name,
        Action<AzureSecurityKeyVaultSettings>? configureSettings = null,
        Action<IAzureClientBuilder<CertificateClient, CertificateClientOptions>>? configureClientBuilder = null)
    {
        // ...
    }
}
```

## Parameters

- `builder` (`IHostApplicationBuilder`)
  The `Hosting.IHostApplicationBuilder` to read config from and add services to.
- `name` (`string`)
  The name of the component, which is used as the `ServiceDescriptor.ServiceKey` of the service and also to retrieve the connection information from the ConnectionStrings configuration section.
- `configureSettings` (`Action<AzureSecurityKeyVaultSettings>`) `optional`
  An optional method that can be used for customizing the [AzureSecurityKeyVaultSettings](/reference/api/csharp/aspire.azure.security.keyvault/azuresecuritykeyvaultsettings.md). It's invoked after the settings are read from the configuration.
- `configureClientBuilder` (`Action<IAzureClientBuilder<CertificateClient, CertificateClientOptions>>`) `optional`
  An optional method that can be used for customizing the `Extensions.IAzureClientBuilder`2`.

## Exceptions

- `InvalidOperationException` -- Thrown when mandatory [AzureSecurityKeyVaultSettings.VaultUri](/reference/api/csharp/aspire.azure.security.keyvault/azuresecuritykeyvaultsettings/properties.md#vaulturi) is not provided.

## Remarks

Reads the configuration from "Aspire:Azure:Security:KeyVault:{name}" section.

## AddKeyedAzureKeyVaultClient(IHostApplicationBuilder, string, Action<AzureSecurityKeyVaultSettings>, Action<IAzureClientBuilder<SecretClient, SecretClientOptions>>)

- Name: `AddKeyedAzureKeyVaultClient(IHostApplicationBuilder, string, Action<AzureSecurityKeyVaultSettings>, Action<IAzureClientBuilder<SecretClient, SecretClientOptions>>)`
- Modifiers: `extension`
- Source: [GitHub](https://github.com/microsoft/aspire/blob/5bd693ae1897dee5e2ce71c2cc08879c1c7eff51/src/Components/Aspire.Azure.Security.KeyVault/AspireKeyVaultExtensions.cs#L63-L68)

Registers `Secrets.SecretClient` as a singleton for given `name` in the services provided by the `builder`. Enables retries, corresponding health check, logging and telemetry.

```csharp
public static class AspireKeyVaultExtensions
{
    public static void AddKeyedAzureKeyVaultClient(
        this IHostApplicationBuilder builder,
        string name,
        Action<AzureSecurityKeyVaultSettings>? configureSettings = null,
        Action<IAzureClientBuilder<SecretClient, SecretClientOptions>>? configureClientBuilder = null)
    {
        // ...
    }
}
```

## Parameters

- `builder` (`IHostApplicationBuilder`)
  The `Hosting.IHostApplicationBuilder` to read config from and add services to.
- `name` (`string`)
  The name of the component, which is used as the `ServiceDescriptor.ServiceKey` of the service and also to retrieve the connection information from the ConnectionStrings configuration section.
- `configureSettings` (`Action<AzureSecurityKeyVaultSettings>`) `optional`
  An optional method that can be used for customizing the [AzureSecurityKeyVaultSettings](/reference/api/csharp/aspire.azure.security.keyvault/azuresecuritykeyvaultsettings.md). It's invoked after the settings are read from the configuration.
- `configureClientBuilder` (`Action<IAzureClientBuilder<SecretClient, SecretClientOptions>>`) `optional`
  An optional method that can be used for customizing the `Extensions.IAzureClientBuilder`2`.

## Exceptions

- `InvalidOperationException` -- Thrown when mandatory [AzureSecurityKeyVaultSettings.VaultUri](/reference/api/csharp/aspire.azure.security.keyvault/azuresecuritykeyvaultsettings/properties.md#vaulturi) is not provided.

## Remarks

Reads the configuration from "Aspire:Azure:Security:KeyVault:{name}" section.

## AddKeyedAzureKeyVaultKeyClient(IHostApplicationBuilder, string, Action<AzureSecurityKeyVaultSettings>, Action<IAzureClientBuilder<KeyClient, KeyClientOptions>>)

- Name: `AddKeyedAzureKeyVaultKeyClient(IHostApplicationBuilder, string, Action<AzureSecurityKeyVaultSettings>, Action<IAzureClientBuilder<KeyClient, KeyClientOptions>>)`
- Modifiers: `extension`
- Source: [GitHub](https://github.com/microsoft/aspire/blob/5bd693ae1897dee5e2ce71c2cc08879c1c7eff51/src/Components/Aspire.Azure.Security.KeyVault/AspireKeyVaultExtensions.cs#L151-L156)

Registers `Keys.KeyClient` as a singleton for given `name` in the services provided by the `builder`.

```csharp
public static class AspireKeyVaultExtensions
{
    public static void AddKeyedAzureKeyVaultKeyClient(
        this IHostApplicationBuilder builder,
        string name,
        Action<AzureSecurityKeyVaultSettings>? configureSettings = null,
        Action<IAzureClientBuilder<KeyClient, KeyClientOptions>>? configureClientBuilder = null)
    {
        // ...
    }
}
```

## Parameters

- `builder` (`IHostApplicationBuilder`)
  The `Hosting.IHostApplicationBuilder` to read config from and add services to.
- `name` (`string`)
  The name of the component, which is used as the `ServiceDescriptor.ServiceKey` of the service and also to retrieve the connection information from the ConnectionStrings configuration section.
- `configureSettings` (`Action<AzureSecurityKeyVaultSettings>`) `optional`
  An optional method that can be used for customizing the [AzureSecurityKeyVaultSettings](/reference/api/csharp/aspire.azure.security.keyvault/azuresecuritykeyvaultsettings.md). It's invoked after the settings are read from the configuration.
- `configureClientBuilder` (`Action<IAzureClientBuilder<KeyClient, KeyClientOptions>>`) `optional`
  An optional method that can be used for customizing the `Extensions.IAzureClientBuilder`2`.

## Exceptions

- `InvalidOperationException` -- Thrown when mandatory [AzureSecurityKeyVaultSettings.VaultUri](/reference/api/csharp/aspire.azure.security.keyvault/azuresecuritykeyvaultsettings/properties.md#vaulturi) is not provided.

## Remarks

Reads the configuration from "Aspire:Azure:Security:KeyVault:{name}" section.
