15

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

3 ответа3

21

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

curl --ntlm -u : ...

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

4

Используйте -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
    

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .