cURL에서 Windows 자격 증명을 전달하려면 어떻게해야합니까?


20

내부 웹 서버에서 데이터를 가져 오기 위해 cURL을 사용하는 스크립트를 작성 중입니다. 명시 적으로 --user와 --ntlm을 함께 사용할 수 있지만 모든 것이 잘 작동하지만 로그인 한 사람을 인식하여 투명하게 전달할 수는 없습니다. Chrome / Firefox / IE에서 동일한 사이트를 방문하면 프롬프트없이 즉시 권한을 부여합니다 (중요한 경우 여기에서 프록시를 사용함). 서버가 IIS를 사용하고 있습니다.

답변:


26

나는 (Windows 도메인 환경에서) 사용합니다 :

curl --ntlm -u : ...

cUrl은 내 도메인 자격 증명을 제공한다는 것을 알고 있으며 매번 작동합니다.


3
감사합니다 @ BillP3rd! 그냥 헤딩 : 이것은 Windows 명령 프롬프트에서 curl을 실행할 때 완벽하게 작동하지만 Windows 컴퓨터의 Cygwin과 같은 터미널 에뮬레이터 내에서 실행하면 작동하지 않습니다.
ErinsMatthew

5

-u :자격 증명 저장소에서 cURL을 가져 오려면 빈 사용자 코드와 비밀번호를 제공하는를 사용하십시오 .

나는 이것을 GSSAPI와 함께 유닉스에서 사용하고 curl -u : --negotiate ...


1

@Phil P에 대해 자세히 설명하기 위해 여기 우분투 상자에서 어떻게했는지 설명합니다.

  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
    
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.