The ultimate Fabric, Power BI, SQL, and AI community-led learning event. Save €200 with code FABCOMM.
Get registeredEnhance your career with this limited time 50% discount on Fabric and Power BI exams. Ends September 15. Request your voucher.
How do I give my service principal profile access to a gateway datasource?
I'm currently trying to call https://docs.microsoft.com/en-us/rest/api/power-bi/gateways/add-datasource-user with gatewayid, datasourceid, identifier (service principal app id) and profile (service principal profile).
The API call is authenticated using the service principal in question. (not the profile)
The service principal is member of an AD security group that is "Admin" for the gateway, and "Owner" for the datasource.
The API call results in an "Unathourized" response.
Solved! Go to Solution.
Problem was solved by sending the correct object id as "identifier" to the API. Ref https://docs.microsoft.com/en-us/power-bi/developer/embedded/embedded-troubleshoot#what-is-the-diffe...
Problem was solved by sending the correct object id as "identifier" to the API. Ref https://docs.microsoft.com/en-us/power-bi/developer/embedded/embedded-troubleshoot#what-is-the-diffe...
Thanks, this was useful, I will only add this in case someone else needs it. The correct payload for a service principal profile is the one below:
{
"datasourceAccessRight": "Read",
"identifier": "{{Object ID}}", //fix, this is the enterprise application
"principalType":"App", //enterprise application
"profile": {
"id": "{{Service Principal Profile ID}}",
"displayName": "{{Service Principal Profile Name}}" //this is optional.
}
}
Gateway data sources are consumed by developer personas. The regular report users do not need to know about that setup at all. Are you saying that your service principal is a developer?