Skip to content

Latest commit

 

History

History
59 lines (45 loc) · 1.71 KB

README.md

File metadata and controls

59 lines (45 loc) · 1.71 KB

SecretManager

To embed the SecretManager in your application:

  • import the components:

    using EdgeSecrets.CryptoProvider;
    using EdgeSecrets.SecretManager;
  • create a CryptoProvider (see here for more information):

    cryptoProvider = new WorkloadApiCryptoProvider(initializationVector);
    
    // other options
    // cryptoProvider = new IdentityServiceCryptoProvider();
    // cryptoProvider = new AzureKeyVaultCryptoProvider();
  • create a SecretManagerClient:

    string secretsFile  = "/usr/local/cache/secrets.json";
    string keyId        = "my-key-id";
    
    // IoT Edge
    var mqttSetting = new MqttTransportSettings(TransportType.Mqtt_Tcp_Only);
    ITransportSettings[] settings = { mqttSetting };
    var moduleClient = await ModuleClient.CreateFromEnvironmentAsync(settings);
    
    OR
    
    // Identity Service
    var moduleClient = ModuleClient.CreateFromConnectionString(connectionString);
    
    var secretManagerClient = new SecretManagerClient()
        .WithRemoteSecretStore(moduleClient)
        .WithFileSecretStore(secretsFile, cryptoProvider, keyId)
        .WithInMemorySecretStore();
        
    Console.WriteLine("Secret manager client created.");
  • get a secret:

    var mySecretValue = await secretManagerClient.GetSecretValueAsync("mySecretName", null, DateTime.Now);

Samples and demos

Design

Secrets lifecycle

Secrets store

Contracts

Secret request and response contract: here