Как я могу передать свои учетные данные Windows в cURL?


20

Я пишу скрипт, который использует cURL для извлечения данных с внутреннего веб-сервера. Я могу явно использовать --user в сочетании с --ntlm, и все работает хорошо, но я не могу заставить его распознать, кто вошел в систему, и передать его прозрачно. Если я захожу на тот же сайт в Chrome / Firefox / IE, он сразу же дает мне разрешения без каких-либо подсказок (здесь мы используем прокси, если это важно). Сервер использует IIS.

Ответы:


26

Я использую (в среде домена Windows):

curl --ntlm -u : ...

cUrl знает, как предоставить мои доменные учетные данные, и это работает каждый раз.


3
Спасибо @ BillP3rd! Просто наперед: это прекрасно работает при запуске curl в командной строке Windows, но не работает, если вы работаете в эмуляторе терминала, таком как Cygwin, на вашем компьютере с Windows.
ErinsMatthew

5

Используйте, -u :который предоставляет пустой код пользователя и пароль, чтобы заставить cURL забрать их из хранилища учетных данных.

Я использую это на Unix с GSSAPI и curl -u : --negotiate ...


1

Подробно расскажу о @Phil P, вот как я это сделал из своего окна Ubuntu.

  1. Узнайте IP-адрес инструкции вашего контроллера домена о том, как это сделать, здесь
  2. Установить Kerberos sudo apt-get install krb5-user
  3. Введите следующее в вашем /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
    
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.