Search Results for

      Show / Hide Table of Contents

      Intent.Dapr.AspNetCore.Secrets

      This module implements patterns for working with Dapr (Distributed Application Runtime) Secrets component.

      What's is Dapr Secrets component?

      Dapr (Distributed Application Runtime) Secrets is a component within the Dapr framework designed to manage sensitive information such as passwords, API keys, and connection strings in a secure manner for distributed applications. It provides a standardized and consistent way to access secrets from various secret stores, like Azure Key Vault, AWS Secrets Manager, HashiCorp Vault, and more. Dapr abstracts away the complexities of interacting with different secret management systems, enabling developers to easily retrieve and utilize secrets without hard-coding them directly into their application code. This enhances security by centralizing secret management and reducing the risk of exposing sensitive data.

      For more information on Dapr Secrets component, check out their official site. And more specifically for .Net.

      What's in this module?

      This module loads the configured secrets, and loads them into the application's IConfiguration for consumption in the application. Secret stores can be configured in as per the Dapr documentation. Out the box this module will generate an Environment Variable secret store for ease of usage in the development environment. NB should be re-configured for production, as per Dapr guidance.

      Module Limitations

      Because this module is designed to work with Man.Dapr.Sidekick.AspNetCore, there are a few limitations

      • The fully configured IConfiguration is only available after ConfigureServices (Startup.cs), as this is when SideKick starts up the Sidecar, which is needed to fetch the secrets.
      • The local file secret store needs to be configured with an absolute path.

      appsettings.json configuration

      In the Dapr.Secrets section you can configure the following settings

      • StoreName, which secrets store to connect to.
      • Descriptors (optional), comma separated list of which secrets you would like to load.
      
        "Dapr.Secrets": {
          "StoreName": "secret-store",
          "Descriptors": "ConnectionStrings:DefaultConnection"
        }
      

      Developer Usage Example

      Given then following Dapr Secret Store configuration:

      
      apiVersion: dapr.io/v1alpha1
      kind: Component
      metadata:
        name: secret-store
      spec:
        type: secretstores.local.env
        version: v1
        metadata:
      
      

      Create an Environment variable as follows :

      Environment Variable Creation

      Note, when you modify Environment variable you need to restart applications for the new values to take effect.

      Update your appsettings.json as follows:

      
        "Dapr.Secrets": {
          "StoreName": "secret-store",
          "Descriptors": "ConnectionStrings:DefaultConnection"
        }
      
      

      When you application starts up the ConnectionStrings:DefaultConnection will now be loaded from the configured Secret store through Dapr Secrets.

      • Edit this page
      ☀
      ☾
      In this article
      Back to top Copyright © 2017-, Intent Architect Holdings Ltd