Come posso trasferire le mie credenziali di Windows in cURL?


20

Sto scrivendo uno script che utilizza cURL per estrarre dati da un server Web interno. Posso usare esplicitamente --user in combinazione con --ntlm e tutto funziona bene, ma non riesco a riconoscere chi ha effettuato l'accesso e a passarlo in modo trasparente. Se visito lo stesso sito in Chrome / Firefox / IE mi dà immediatamente i permessi senza alcuna richiesta (qui stiamo usando un proxy se è importante). Il server utilizza IIS.

Risposte:


26

Io uso (in un ambiente di dominio Windows):

curl --ntlm -u : ...

cUrl sa fornire le mie credenziali di dominio e funziona sempre.


3
Grazie @ BillP3rd! Solo un avvertimento: funziona perfettamente quando si esegue il ricciolo all'interno di un prompt dei comandi di Windows, ma non funziona se si esegue all'interno di un emulatore di terminale come Cygwin sul proprio computer Windows.
ErinsMatthew

5

Utilizzare ciò -u :che fornisce un codice utente e una password vuoti, per ottenere cURL per prelevarli dall'archivio credenziali.

Lo uso su Unix con GSSAPI e curl -u : --negotiate ...


1

Per approfondire su @Phil P, ecco come l'ho fatto dalla mia casella di Ubuntu.

  1. Scopri l'indirizzo IP delle istruzioni del controller di dominio su come farlo qui
  2. Installa Kerberos sudo apt-get install krb5-user
  3. Inserisci quanto segue nel tuo /etc/krb5.conf

    [libdefaults]
        default_realm = YOURDOMAN
        # note that this must be in UPPER CASE
        krb4_config = /etc/krb.conf
        krb4_realms = /etc/krb.realms
        kdc_timesync = 1
        ccache_type = 4
        forwardable = true
        proxiable = true
        v4_instance_resolve = false
        v4_name_convert = {
            host = {
                rcmd = host
                ftp = ftp
            }
            plain = {
                something = something-else
            }
        }
        fcc-mit-ticketflags = true
    [realms]
        YOURDOMAN = {
            kdc = YOUR_DOAMIN_CONTROLLER_IP
        }
    [domain_realm]
        yourdomain = yourdomain
        yourdomain. = yourdomain
    
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.