Join us at FabCon Atlanta from March 16 - 20, 2026, for the ultimate Fabric, Power BI, AI and SQL community-led event. Save $200 with code FABCOMM.
Register now!The Power BI Data Visualization World Championships is back! Get ahead of the game and start preparing now! Learn more
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!
Solved! Go to Solution.
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
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
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.
The Power BI Data Visualization World Championships is back! Get ahead of the game and start preparing now!
| User | Count |
|---|---|
| 9 | |
| 6 | |
| 4 | |
| 4 | |
| 3 |