I am running the nodejs server in azure VM running win8 server, and I need to secure the configuration data. Since I am deploying the server by hand; not using azure role, manifest, iisnode integration etc – I need to figure out way for securing the configuration data.
.Net frameworks has the useful api ProtectedData.Protect and nodejs has a useful interop module edge for interop between nodejs and c# from Tomasz Janczuk @msft.
config data is earlier protected using the ProtectedData.Protect(), encoded base64 and saved to file. Code snippet below uses edge module with c# code to decrypt/unprotect the config data.
var edge = require('edge');
function unprotect(fileName, callback)
{
var unprotectCsFunc = edge.func(function unprotectCsFunc()
{/*
#r "System.Security.dll"
using System;
using System.IO;
using System.Security.Cryptography;
async (fileName) => {
string cipherText = File.ReadAllText(fileName.ToString());
byte[] cipherBytes = Convert.FromBase64String(cipherText);
var data = ProtectedData.Unprotect(cipherBytes, null, DataProtectionScope.CurrentUser);
return data;
}*/});
unprotectCsFunc(fileName, function (error, result)
{
callback(error, result);
});
}
What do you use to protect configuration data for your nodejs server?
