Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

The Power BI Data Visualization World Championships is back! Get ahead of the game and start preparing now! Learn more

Reply
dpiret
Helper I
Helper 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 which I've found examples in Power shell and in c# (Configure credentials programmatically for Power BI )

 

Is there any way to encrypt the credentials with Node or using an API-based third-party service? 

 

Thanks!

1 ACCEPTED SOLUTION
dpiret
Helper I
Helper I

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-...  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

 

 

View solution in original post

4 REPLIES 4
dpiret
Helper I
Helper I

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-...  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

 

 

Anonymous
Not applicable

Hi @dpiret ,

Please check the content of the following documents and we hope they will help you to achieve your needs.

An example of RSA Encryption implemented in Node.js

Implementing RSA Encryption and Signing in Node.js (With Examples)

(Node.js) RSA-OAEP with SHA256 hashing

Best Regards

Thanks, @Anonymous I already tried but none worked for me.

lbendlin
Super User
Super User

Helpful resources

Announcements
Power BI DataViz World Championships

Power BI Dataviz World Championships

The Power BI Data Visualization World Championships is back! Get ahead of the game and start preparing now!

December 2025 Power BI Update Carousel

Power BI Monthly Update - December 2025

Check out the December 2025 Power BI Holiday Recap!

FabCon Atlanta 2026 carousel

FabCon Atlanta 2026

Join us at FabCon Atlanta, March 16-20, for the ultimate Fabric, Power BI, AI and SQL community-led event. Save $200 with code FABCOMM.