2013-03-29 17 views
14

Nie mogę się tego obejść. Próbuję skryptu automatyzację o przesyłanie CSV ale ilość zwijającego się niepowodzeniem z 401.Korzystanie z curl z uwierzytelnianiem NTLM, aby spowodować zawieszenie się postu

curl -v --ntlm -u username --upload-file ~/galaxy/forums/pt_update.csv https://connect.example.com/11063/csv_import?op=add -k 
Enter host password for user 'username: 
* About to connect() to connect.example.com port 443 (#0) 
* Trying x.x.x.x... connected 
* successfully set certificate verify locations: 
* CAfile: none 
    CApath: /etc/ssl/certs 
* SSLv3, TLS handshake, Client hello (1): 
* SSLv3, TLS handshake, Server hello (2): 
* SSLv3, TLS handshake, CERT (11): 
* SSLv3, TLS handshake, Server finished (14): 
* SSLv3, TLS handshake, Client key exchange (16): 
* SSLv3, TLS change cipher, Client hello (1): 
* SSLv3, TLS handshake, Finished (20): 
* SSLv3, TLS change cipher, Client hello (1): 
* SSLv3, TLS handshake, Finished (20): 
* SSL connection using RC4-MD5 
* Server certificate: 
* subject: C=US; ST=Washington; L=internetland; O=example.com Inc.; CN=connect.example.com 
* start date: 2012-06-11 14:53:47 GMT 
* expire date: 2013-06-11 14:53:47 GMT 
* common name: connect.example.com (matched) 
* issuer: DC=com; DC=example; DC=ant; CN=example.com Infosec CA G2 
* SSL certificate verify result: unable to get local issuer certificate (20), continuing anyway. 
* Server auth using NTLM with user 'username' 
> PUT /11063/csv_import?op=add HTTP/1.1 
> Authorization: NTLM TlRMTVNTUAABAAAABoIIAAAAAAAAAAAAAAAAAAAAAAA= 
> User-Agent: curl/7.22.0 (x86_64-pc-linux-gnu) libcurl/7.22.0 OpenSSL/1.0.1 zlib/1.2.3.4 libidn/1.23 librtmp/2.3 
> Host: connect.example.com 
> Accept: */* 
> Content-Length: 0 
> Expect: 100-continue 
> 
< HTTP/1.1 401 Authorization Required 
< Date: Fri, 29 Mar 2013 03:47:00 GMT 
< Server: Server 
< WWW-Authenticate: Basic realm="ANT (Windows) Login" 
< Content-Length: 401 
< Connection: close 
< Content-Type: text/html; charset=iso-8859-1 
< 
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> 
<html><head> 
<title>401 Authorization Required</title> 
</head><body> 
<h1>Authorization Required</h1> 
<p>This server could not verify that you 
are authorized to access the document 
requested. Either you supplied the wrong 
credentials (e.g., bad password), or your 
browser doesn't understand how to supply 
the credentials required.</p> 
</body></html> 
* Closing connection #0 
* SSLv3, TLS alert, Client hello (1): 

I przykład, w którym moja rzeczywista domena otrzymuje, a ja na pewno stosując prawo login/pw dla mojego domena.

Odpowiedz

23

spróbować tego

Jeśli masz stronę obsługiwana w IIS i które współpracują z NTLM następnie należy umieścić:

(na przykład w SharePoint strona)

curl http://enterprisesharepoint -v --ntlm --negotiate -u USER123:PASSWORD123 

To działa dobrze dla mnie i można zobaczyć wiadomość nagłówki

--Edit--

jeśli umieścisz negocjować, to daje konto lokalne i zalogować się na serwerze, jeśli nazwa użytkownika i hasło są nieprawidłowe, to bez względu na to, ponieważ negocjuj automatyczne uwierzytelnianie z kontem systemu Windows dla lokalnego użytkownika logowanego. Jeśli nie podoba ci się to zachowanie, powinieneś umieścić tylko ntlm dla prawidłowego logowania do NTLM.

+0

Usunięcie "--negotiate" sprawiło, że zadziałało to dla mnie. (do punktu końcowego zintegrowanego okna logowania systemu AD FS, uwierzytelniającego się do domeny systemu Windows) –