[Dicá rápida] .NET User Secrets
Veja neste post rápido uma forma de trabalhar com secrets no .NET em ambiente de desenvolvimento
No desenvolvimento de aplicações .NET, gerenciar configurações sensíveis de forma segura é essencial para proteger informações como strings de conexão, chaves API, e outros segredos que não devem ser expostos em repositórios públicos ou em ambientes de produção.
O .NET oferece uma solução prática para esses cenários, especialmente em ambientes de desenvolvimento. Neste artigo irei explicar o que são User Secrets e como configurá-los.
User Secrets são uma forma de armazenar informações de configuração que não devem ser compartilhadas ou versionadas com o código fonte.
Este recurso é disponível apenas para ambientes de desenvolvimento, o que significa que ele não deve ser usado para armazenar segredos em produção.
É isso mesmo pessoal, a ideia deste artigo é demonstrar uma forma na qual vocês podem criar secrets em um ambiente de desenvolvimento, para produção é recomendado que utilize soluções mais robustas como Azure Key Vault, AWS Secrets Manager ou variáveis de ambiente, dependendo da plataforma de hospedagem.
Bom, para começar a usar User Secrets, você precisa ter um projeto .NET Core ou .NET 5/6/7/8 ou o 9 que no momento que escrevo este artigo esta em preview.
Com o seu projeto OK, vamos configurar ele para utilizar a secrets:
- Abra um prompt de comando ou terminal no seu navegador, em seguida, navegue até a pasta do seu projeto e execute o seguinte comando para habilitar os User Secrets:
dotnet user-secrets init
2. Esse comando adiciona uma entrada UserSecretsId
ao seu arquivo .csproj
, que vincula o projeto ao armazenamento de segredos.
Agora para adicionar um segredo ao armazenamento, use o comando:
dotnet user-secrets set "ConnectionString" "mongodb://localhost/db_local"
Em seguida para acessar acessar os User Secrets no seu código, você deve configurar o provedor de configuração para lê-los, geralmente no método CreateHostBuilder
em Program.cs
. Aqui está um exemplo básico:
var builder = WebApplication.CreateBuilder(args);
var mongoConnectionString = builder.Configuration["ConnectionString"];
Console.WriteLine($"API Key: {mongoConnectionString}");
Simples assim :) Agora executando o projeto nós temos o seguinte resultado:
Bom, espero que tenham gostado e em um próximo artigo eu demonstrarei como trabalhar com Azure Key Vault e AWS Secrets Manager ;)
Até mais pessoal.