piersharding / RMDX

RMDX is an XML/A OLAP MDX interface
GNU General Public License v3.0
4 stars 2 forks source link

Connect via Windows Authentication #1

Open ericbrownaustin opened 6 years ago

ericbrownaustin commented 6 years ago

I'm trying to connect to a SSAS cube using Windows Authentication and have not been able to. Is this possible or am I not using the correct authentication?

conn <- RMDX('ServerURL', 'domain\\username', 'password'

* Could not resolve host: http * Closing connection 0 Error in function (type, msg, asError = TRUE) : Could not resolve host: http

piersharding commented 6 years ago

Hi - I'm not sure if this will work (I have no way of testing it) but I have patched https://github.com/piersharding/RMDX .

You need to change you connection details to be something like:

    conn <- RMDX(url='http://some.server/url',
                 userid='domain\\username',
                 password='password',
                 curlopts=list(httpauth=5L))

Check https://curl.haxx.se/libcurl/c/CURLOPT_HTTPAUTH.html, and https://stackoverflow.com/questions/26255964/r-negotiate-authentication-with-rcurl-or-httr for details.

Let me know how you get on.

Cheers, Piers.

ericbrownaustin commented 6 years ago

Still running into an error with the updated option.

Rebuilt URL to: https://ServerURL/?userid=Domain%5CUsername&password=Password
*   Trying ServerAddress...
* connect to ServerAddress port 443 failed: Timed out
* Failed to connect to ServerURL port 443: Timed out
piersharding commented 6 years ago

Hi - Could you share the code (sufficiently redacted) that you are using as the userid and password should not be passed on the URL. Cheers.

ericbrownaustin commented 6 years ago

conn <- RMDX(url='serverURL', userid='domain\\username', password='password', curlopts=list(httpauth=5L))

piersharding commented 6 years ago

OK - so that looks all correct. Looking at the previous error message it seems like RCurl cannot connect to port 443 on the server.

Can you check that the server is reachable with something like: telnet server.fqdn 443 ?

Do you need to go via a proxy to reach the server?

piersharding commented 6 years ago

As an after thought, you could also try something direct like:

library("RCurl")
RCurl::getURL(url='<server.url>',
               verbose=TRUE,
               ssl.verifypeer = FALSE,
               userpwd='<user\\domain>:<password>',
               httpauth=5L)

It might shine some light on what curl thinks is going on?

ericbrownaustin commented 6 years ago

Returned this error:

 * Rebuilt URL to: https://serverURL
 *   Trying serverAddress...
 * connect to serverAddress port 443 failed: Connection refused
 * Failed to connect to serverURL port 443: Connection refused
 * Closing connection 0
 Error in function (type, msg, asError = TRUE)  : 
   Failed to connect to serverURL port 443: Connection refused
piersharding commented 6 years ago

Hi - this still looks like a fundamental networking issue. Have you tried the telnet serverAddress 443 test to see if you can connect to that server? Maybe you use a proxy ?

ericbrownaustin commented 6 years ago

I'm not sure how to test via Telnet, but I tried via adminkit.net. Testing my server address under port 443 and received this response.

Connection failed: A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond serverAddress:443

Please let me know if this is not the correct way to test.

piersharding commented 6 years ago

Hi - isn't adminkit.net working external to your own private network? If this is the case then it will not work. You could try using curl (download from here https://curl.haxx.se/dlwiz/?type=bin), running a command something like:

curl -vvvv https://ServerURL/

If you are still getting a connection error something like:

* Rebuilt URL to: https://<servername>/
*   Trying x.x.x.x...
* connect to x.x.x.x port 443 failed: Connection refused
* Failed to connect to <servername> port 443: Connection refused
* Closing connection 0
curl: (7) Failed to connect to <servername> port 443: Connection refused

then I am convinced that you have a separate network issue. In that case, do you have network people that you can talk to about it?

Cheers, Piers.