(Migrated) Outgoing SOAP connection with NTML authentication

(This message has been automatically imported from the retired mailing list)

Hi,

I need to contact a Microsoft Dynamics NAV server that uses NTLM authentica=
tion. Zato 1.1 doesn’t seem to know this security model.

I have noticed that there is a Python module for this (https://code.google.=
com/p/python-ntlm/), but I don’t have any idea how much effort it would tak=
e to implement this in Zato.

Is there any effort going on already, or does anyone have experience with t=
his?

Finn Gruwier Larsen

Forbrugerr?det Taenk er en uafhaengig medlemsorganisation, der arbejder for=
et Danmark, hvor alle forbrugere kan traeffe et trygt valg.
F? nyheder, informationer om test, tilbud og gode r?d 1-2 gange om ugen. Ti=
lmeld dig vores nyhedsbreve p? taenk.dk/nyhedsbrev

On 01/29/2014 12:28 PM, Finn Gruwier Larsen wrote:

I need to contact a Microsoft Dynamics NAV server that uses NTLM authentication. Zato 1.1 doesn’t seem to know this security model.

I have noticed that there is a Python module for this (https://code.google.com/p/python-ntlm/),
but I don’t have any idea how much effort it would take to implement this in Zato.

Is there any effort going on already, or does anyone have experience with this?

Hi Finn,

This could be certainly added but until it is, please have a look at
this call.

https://zato.io/docs/progguide/outconn/http.html#post

In particular, args and kwargs and passed into requests

https://pypi.python.org/pypi/requests/

directly as is, so if you can build an NTLM auth object and pass it to
the underlying library, this would be how this can be done as of now.

This library’s examples use urllib2 whereas requests uses its own copy
urllib3 - they are related so there’s a chance everything can be made to
work together.

You’d probably have to build a sort of a gluing service akin to this
OpenERP client

https://github.com/zatosource/zato-labs/blob/master/openerp-client/code/src/zato/openerp/init.py

off of which your business services would descend and inherit a method
to use NTML.

On 01/29/2014 12:28 PM, Finn Gruwier Larsen wrote:

I need to contact a Microsoft Dynamics NAV server that uses NTLM authentication. Zato 1.1 doesn’t seem to know this security model.

I have noticed that there is a Python module for this (https://code.google.com/p/python-ntlm/),
but I don’t have any idea how much effort it would take to implement this in Zato.

Is there any effort going on already, or does anyone have experience with this?

Hi Finn,

This could be certainly added but until it is, please have a look at
this call.

https://zato.io/docs/progguide/outconn/http.html#post

In particular, args and kwargs and passed into requests

https://pypi.python.org/pypi/requests/

directly as is, so if you can build an NTLM auth object and pass it to
the underlying library, this would be how this can be done as of now.

This library’s examples use urllib2 whereas requests uses its own copy
urllib3 - they are related so there’s a chance everything can be made to
work together.

You’d probably have to build a sort of a gluing service akin to this
OpenERP client

https://github.com/zatosource/zato-labs/blob/master/openerp-client/code/src/zato/openerp/init.py

off of which your business services would descend and inherit a method
to use NTML.

Hi Dariusz,

I’m not really shure what you mean by building an NTLM auth object.

What I can do at this point is to call the SOAP service with Suds + python-ntlm libraries. It looks like this:

from suds.client import Client
from suds.transport.https import WindowsHttpAuthenticated
url =
ntlm = WindowsHttpAuthenticated(username=‘xxx’, password=‘yyy’)
client = Client(url, transport=ntlm)
result = client.service.SayHello()
print result

This works fine. But what exactly is needed to get it working in Zato?

Finn Gruwier Larsen

-----Oprindelig meddelelse-----
Fra: Zato-discuss [mailto:zato-discuss-bounces@lists.zato.io] På vegne af Dariusz Suchojad
Sendt: 29. januar 2014 12:35
Til: zato-discuss@lists.zato.io
Emne: Re: [Zato-discuss] Outgoing SOAP connection with NTML authentication

On 01/29/2014 12:28 PM, Finn Gruwier Larsen wrote:

I need to contact a Microsoft Dynamics NAV server that uses NTLM authentication. Zato 1.1 doesn’t seem to know this security model.

I have noticed that there is a Python module for this
(https://code.google.com/p/python-ntlm/),
but I don’t have any idea how much effort it would take to implement this in Zato.

Is there any effort going on already, or does anyone have experience with this?

Hi Finn,

This could be certainly added but until it is, please have a look at this call.

https://zato.io/docs/progguide/outconn/http.html#post

In particular, args and kwargs and passed into requests

https://pypi.python.org/pypi/requests/

directly as is, so if you can build an NTLM auth object and pass it to the underlying library, this would be how this can be done as of now.

This library’s examples use urllib2 whereas requests uses its own copy
urllib3 - they are related so there’s a chance everything can be made to work together.

You’d probably have to build a sort of a gluing service akin to this OpenERP client

https://github.com/zatosource/zato-labs/blob/master/openerp-client/code/src/zato/openerp/init.py

off of which your business services would descend and inherit a method to use NTML.

On 01/31/2014 01:58 PM, Finn Gruwier Larsen wrote:

What I can do at this point is to call the SOAP service with Suds + python-ntlm libraries. It looks like this:

from suds.client import Client
from suds.transport.https import WindowsHttpAuthenticated
url =
ntlm = WindowsHttpAuthenticated(username=‘xxx’, password=‘yyy’)
client = Client(url, transport=ntlm)
result = client.service.SayHello()
print result

This works fine. But what exactly is needed to get it working in Zato?

These two features will be implemented in those tickets