Forum Discussion
dpiret
4 years agoHelper I
How to RSA-OAEP encrypt credentials using Node js (not c# or PowerShell)
Hi there, I need to create a data source on a gateway that connects to an on-premises SQL Server. I have understood that I need to RSA-OAEP encrypt the credentials (Basic username/password), for w...
- 4 years ago
In case this helps anyone seekeing a solution for the sale problem, here's what I did.
I used a PowerShell script as described here https://endjin.com/blog/2020/12/how-to-update-credentials-for-an-on-prem-power-bi-data-source-using-powershell.html then executed ith with Node, retrieving the resulting JSON. The Node code looks like this
```javascript const { exec } = require('child_process'); const PShellScriptFile = './rsa-oeap-encrypt-credentials.ps1' const datasourceCredentialsEncryptedFile = "./datasourceCredentialsEncryptedFile.json" var username = "useNameHere" var password = "passwordHere" // WARNING. Gateway module is fixed and should go as param exec(`${PShellScriptFile} -username ${username} -password ${password} -outputFile ${datasourceCredentialsEncryptedFile}`, {'shell':'powershell.exe'}, (error, stdout, stderr)=> { // you can use stdout but I choose getting the JSON file already generated by the script }) ```The outcome looks like this
{ "credentialDetails": { "encryptedConnection": "Encrypted", "credentialType": "Basic", "credentials": "oCvURzaedv3WNvV...lRQZ", "privacyLevel": "Private", "encryptionAlgorithm": "RSA-OAEP" } }Which you can then use in Gateways - Create Datasource - REST API (Power BI Power BI REST APIs) | Microsoft Docs
lbendlin
4 years agoSuper User