Reputation: 22074
For on-prem analysis services (reference https://learn.microsoft.com/en-us/sql/analysis-services/instances/configure-http-access-to-analysis-services-on-iis-8-0) it is possible to configure http endpoint (which you can use for implementing custom authentication). Is there a way to expose http endpoint also for azure version of analysis services ?
I tried playing with msmdpump.ini and all I got was various errors.
UPDATE
Looking at reflected Microsoft.AnalysisServices.AdomdClient.dll
- the azure endpoint actually IS http endpoint. The communication goes like:
POST https://[yourregion].asazure.windows.net/webapi/clusterResolve
{"serverName":"your_as_server_name"}
Reply:
{"clusterFQDN":"[prefix]-[yourregion].asazure.windows.net",
"coreServerName":"your_as_server_name",
"tenantId":"... tenantID"}
And then
POST https://[prefix]-[yourregion].asazure.windows.net/webapi/xmla
Authorization: Bearer your_azure_ad_jwt_here
x-ms-xmlaserver: your_as_server_name
// xmla request inside the body
So in theory one should be able to leverage that to create a http proxy. However neither of those is documented/officially suported.
Upvotes: 3
Views: 807
Reputation: 908
I tried this and made it work for case of Execute (you can use Execute + Statement for most tasks) With second request you need three more headers (not sure about User-Agent):
User-Agent: XmlaClient
SOAPAction: urn:schemas-microsoft-com:xml-analysis:Execute
x-ms-xmlacaps-negotiation-flags: 1,0,0,0,0
Upvotes: 1