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);
Secret request and response contract: here

