Использование службы SOAP, размещенной на IIS в ActivePerl, выдает ошибку HTTP 401 "Неподдерживаемая схема проверки подлинности" согласование "".
Мое веб-приложение размещено на IIS, ОС: Windows Server 2012 R2 (x64). В каталоге приложения есть как ntlm, так и поставщики согласований, настроенные в Windows Authentication
Мой код ActivePerl выглядит следующим образом:
use strict;
use SOAP::Lite 'trace', 'debug';
use Authen::NTLM;
use Data::Dumper;
my $user = '\\username';
my $pass = 'password';
my $host = 'host.example.com:80';
ntlmv2(1);
my @ua_args = (keep_alive => 1);
my $soap = SOAP::Lite
-> uri('http://akhan/MicrosoftDynamicsAXAif60/')
-> proxy('http://akhan/MicrosoftDynamicsAXAif60/T4edEmpInfoSvcHttp/xppservice.svc', keep_alive => 1, credentials => [$host, '', $user, $pass])
-> on_action(sub { join '/', 'http://akhan.tatweer.edu.sa/MicrosoftDynamicsAXAif60', $_[1] })# needed for .NET
-> readable(1)
;
my $method = SOAP::Data->name('getAllNationalities')
->attr({xmlns => 'http://akhan/MicrosoftDynamicsAXAif60/'});
print $soap->call($method)->result;
sub SOAP::Transport::HTTP::Client::get_basic_credentials { return ('someUser' => 'someUsersPassword') };
Это ответ, который я получил
SOAP::Transport::HTTP::Client::send_receive: POST http://akhan/MicrosoftDynamics
AXAif60/T4edEmpInfoSvcHttp/xppservice.svc HTTP/1.1
Accept: text/xml
Accept: multipart/*
Accept: application/soap
Content-Length: 495
Content-Type: text/xml; charset=utf-8
SOAPAction: http://akhan.tatweer.edu.sa/MicrosoftDynamicsAXAif60/getAllNationali
ties
<?xml version="1.0" encoding="UTF-8"?>
<soap:Envelope
soap:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<soap:Body>
<getAllNationalities xmlns="http://akhan/MicrosoftDynamicsAXAif60/" xsi:nil=
"true" />
</soap:Body>
</soap:Envelope>
SOAP::Transport::HTTP::Client::send_receive: HTTP/1.1 401 Unauthorized
Date: Tue, 06 Nov 2018 09:58:53 GMT
Server: Microsoft-IIS/8.5
WWW-Authenticate: Negotiate
Content-Length: 0
Client-Date: Tue, 06 Nov 2018 09:58:53 GMT
Client-Peer: 172.18.40.53:80
Client-Response-Num: 1
Client-Warning: Unsupported authentication scheme 'negotiate'
X-Powered-By: ASP.NET
401 Unauthorized at C:\Perl64\perl1Maq2.pl line 40.