Bjoern Sjut on 29 Mar 2016 19:24:59
Add oauth(2) as an option to authenticate for e.g. web.contents.
Administrator on 30 Oct 2018 01:34:04
This is enabled via Custom Connectors: https://docs.microsoft.com/en-us/power-query/startingtodevelopcustomconnectors
- Comments (130)
RE: oauth
What a garbage response. Oath is the standard for API authentication. By not enabling it Microsoft is preventing Power BI from being able to access a ton of data. Choosing to not implement this is a terrible decision. The workaround (Custom Connectors) doesn't work in the cloud.
RE: oauth
The code was copied from: https :// docs.leanix.net/ docs/custom-integrations
RE: oauth
So sad Microsoft is not willing to help us here.
Maybe this code helps some of you to get it done...
Copied from
let
BaseURL = "https://.leanix.net", // This is evaluated by Power BI Online to check if auto-refresh is possible without authentication
AuthKey = "APITOKEN_ENCODED", // Base64 Encoded "apitoken:API Token" string
AuthHeader = "Basic " & AuthKey, // Concatenate two strings for "Authorization:" Header in POST Request to get OAuth access token
AuthRelativePath = "services/mtm/v1/oauth2/token", // Here we get our access token from with our AuthKey
grant_type = "grant_type=client_credentials", // Indicates the type of grant presented in exchange for an authentication token
Endpoint = "graphql", // The endpoint we are interested in
EndpointRelativePath = "services/pathfinder/v1/" & Endpoint, // We can call this HTTP REST Endpoint via GET to get all applications as JSON once we have the OAuth acccess Token
gqlQuery = "{ ""query"": ""{allFactSheets(factSheetType:Application){edges{node{id name description ... on Application{lifecycle{asString} technicalSuitability technicalSuitabilityDescription businessCriticality businessCriticalityDescription functionalSuitability functionalSuitabilityDescription }}}}}}}}""}",
// We do a HTTP POST Request to BaseURL + AuthRelativePath with our AuthenticationKey in the Header and some extra data to get the access token in JWT format
JWT = Json.Document(Web.Contents(BaseURL, [RelativePath=AuthRelativePath, Headers=[#"Authorization"=AuthHeader, #"Content-Type"="application/x-www-form-urlencoded"], Content=Text.ToBinary(grant_type)])),
// OAuth 2.0 authentication is done and we use the access token to construct the Authorization Header fo
RE: oauth
Looks like we still can't do anything for the cloud...
RE: oauth
This "solution" also doesn't address use outside of PowerBI Desktop.
RE: oauth
Ha ha ha, This is a laughable response. So now I am to either carry on using Basic Auth on my APIs or start telling my customers: "Here download and follow these installation instructions to install this weird file before you can use Power BI for what it was intended to do". That's even worse than asking a client to follow instructions on how to generate an API key and I've never seen that work out well.
We considered Custom Connectors but didn't want to wear the cost of providing application support to 5000 customers.
I mean, I had to roll my own Basic Auth provider when we started working onto dotNET Core just to support Power BI and Excel. Did you hear me?! I rolled my own Auth provider to a data API to support your product; that's insane!
Please reopen this idea, please implement OAuth as a connector. I fail to understand how this can be hard for you to do or what Microsoft's strategic value is in not providing it.
RE: oauth
Daniel there is a link posted in their response on how create custom connections.
RE: oauth
Hi Miguel. I can understand you saying 'not planned', but you have not given us any alternative to connect to API's? Please provide a solution.
RE: oauth
Disappointed. Not a relevant solution.
RE: oauth
An unexpected short answer after all that time. How about Power BI Online? What is the story around that ?