We are using the on-prem gateway in enterprise mode with a custom connector to refresh an oAuth2 protected odata service. Each time you request a new access token from this service you also get a new refresh token and the previous refresh token is invalidated (this behaviour is optional in the oAuth2 RFC).
In the desktop version of Power BI refreshing data with our custom connector works just fine. The desktop version also seems to respect the expiration date of the access token.
However, using the gateway and the Power BI service, the expiration time of the access token seems not to be respected. The service always requests a new access token using the refresh token. The service also requests a new token for each source (even if they are part of the same connection). This results in multiple requests for new refresh tokens (almost simultaneously) that seem to cross each other, which results in the fact that the second, third, etc call is done with an already invalidated refresh token, which in turn results in an access denied by the oData service.
Why is the desktop version and the service behaviour different? Does anybody have experience with the same issues?
For custom connectors to work with the On-premises data gateway, they need to implement a “TestConnection” section in the custom connector’s code. This is not required when using custom connectors with Power BI Desktop. You can have one that works with the Desktop, but not with the gateway for this reason. Please refer tothis documentationon how to implement a TestConnection section.
Best Regards Maggie
Community Support Team _ Maggie Li If this posthelps, then please considerAccept it as the solutionto help the other members find it more quickly.