cancel
Showing results for 
Search instead for 
Did you mean: 
Reply
Highlighted
Advocate III
Advocate III

BindToGateway Powershell REST API POST failing - Need Help

Hi,

I am struggling to get the BindToGateway REST API call to work in powershell https://docs.microsoft.com/en-us/rest/api/power-bi/datasets/bindtogatewayingroup

 

Below is my code for doing the API call

 

 

 

Invoke-PowerBiRestMethod -Url "groups/$($workspaceid)/datasets/$($datasetid)/Default.BindToGateway" -Method POST -Body $jsonPostBody

 

 


The workspace and dataset varibales are correct, and the Body is in the format:

 

 

 

{
"datasourceObjectIds": [
"dc2f2dac-e5e2-4v37-af76-2a0bc10f1bs5",
"3bfe5d33-ag7d-4d24-b0b5-e2b96eb01cf5"
] ,
"gatewayObjectId": "1f85e798-5852-4fdd-ab01-33cc14b6e934"
}

 

 



When I run this as a user who is an administrator on the gateway I get the error

 

 

 

Response status code does not indicate success: 404 (Not Found).

StackTrace : at System.Net.Http.HttpResponseMessage.EnsureSuccessStatusCode()
at Microsoft.PowerBI.Commands.Profile.InvokePowerBIRestMethod.<INVOKERESTMETHOD>d__31.MoveNext()
Exception : System.Net.Http.HttpRequestException
InvocationInfo : {Invoke-PowerBIRestMethod}
Line : Invoke-PowerBiRestMethod -Url $url -Method POST -Body $jsonPostBody
Position : At line:1 char:1
+ Invoke-PowerBiRestMethod -Url $url -Method POST -Body $jsonPostBody
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

 

 


When I run it as a service principal with all deletgated API permissions and an admin on the workspace and dataset owner I get the following error

 

 

 

Message: Response status code does not indicate success: 400 (Bad Request).

StackTrace : at System.Net.Http.HttpResponseMessage.EnsureSuccessStatusCode()
at Microsoft.PowerBI.Commands.Profile.InvokePowerBIRestMethod.<INVOKERESTMETHOD>d__31.MoveNext()
Exception : System.Net.Http.HttpRequestException
InvocationInfo : {Invoke-PowerBIRestMethod}
Line : Invoke-PowerBiRestMethod -Url $url -Method POST -Body $jsonPostBody
Position : At line:1 char:1
+ Invoke-PowerBiRestMethod -Url $url -Method POST -Body $jsonPostBody
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

 

 



So one gives me a 400 and the other a 404 error with no further usfull info which I can see.

Can anyone offer any suggestions?&nbsp;

Thanks
Dominic

1 ACCEPTED SOLUTION

Accepted Solutions
Highlighted
Advocate III
Advocate III

I have found the reasons why this wasnt working so thought I would list them here for future users. To get this to work there are a few things to be aware of:

 

1. If the datasource is not assigned to a gateway you need to not include the datasource ID values (you wont actually be able to get these ID values if it is unassigned). I assume the ability to specify the data source id values is only relevent when the dataset is already assigned to a gateway, but I dont know if you can use two separate gateways for one dataset with two datasources.

 

2. Service principals cant be set to administrators of gateways, so you cant use them

 

3. Users must be set as administrators of gateways

 

4. The user must be assigned as a user of the data source defined on the gateway (different from being a gateway admin)

 

With all this set up properly it works like a charm 🙂

View solution in original post

7 REPLIES 7
Highlighted
Advocate III
Advocate III

Anyone able to get this API working at all?
Highlighted
Advocate III
Advocate III

I have found the reasons why this wasnt working so thought I would list them here for future users. To get this to work there are a few things to be aware of:

 

1. If the datasource is not assigned to a gateway you need to not include the datasource ID values (you wont actually be able to get these ID values if it is unassigned). I assume the ability to specify the data source id values is only relevent when the dataset is already assigned to a gateway, but I dont know if you can use two separate gateways for one dataset with two datasources.

 

2. Service principals cant be set to administrators of gateways, so you cant use them

 

3. Users must be set as administrators of gateways

 

4. The user must be assigned as a user of the data source defined on the gateway (different from being a gateway admin)

 

With all this set up properly it works like a charm 🙂

View solution in original post

Highlighted
Frequent Visitor

Dom99... I am also facing with the same issue.

Are you saying that with a Service principal we cannot achive this?

if it can be achieved can you provide more details.

Highlighted
Regular Visitor

Is someone able to pick the DSN attached to the gateway via an API or Powershell?

Highlighted

 How did you manage to bind gateway with service principal?

Highlighted

I didnt, it wasnt possible for reasons listed in the solution. 

 

As far as I'm aware it is still not possible, if you want to do this you will need to bind it as a user with a pro license who is an administrator of the gateway, and point number 4 listed in the solution

Highlighted

Its quite shocking to know such simple operation is not yet possible. Did you manage to raise a ticket with microsoft to be told this is not currently possible?

 

1) Have you been able to add App id to gateway datasource users - https://docs.microsoft.com/en-us/rest/api/power-bi/gateways/adddatasourceuser - there's an example with app id. Perhaps once  Added binding might work?

https://github.com/MicrosoftDocs/powerbi-docs/issues/1198

 

2) I guess its still not possible to add app id as an admin to gateway?

I'm able to Connect-DataGatewayServiceAccount -ApplicationId $ApplicationId -ClientSecret $securePassword  -Tenant $Tenantid

but after this step non of the gateway commandlets return anything. Ex: Get-DataGatewayCluster

any success with that?

 

Using a user account with pro license for automated deployment is not ideal

 

Helpful resources

Announcements
Community Conference

Power Platform Community Conference

Check out the on demand sessions that are available now!

Community Conference

Microsoft Power Platform Communities

Check out the Winners!

secondImage

Create an end-to-end data and analytics solution

Learn how Power BI works with the latest Azure data and analytics innovations at the digital event with Microsoft CEO Satya Nadella.