Làm cách nào tôi có thể vượt qua thông tin đăng nhập Windows của mình trong cURL?


19

Tôi đang viết một tập lệnh sử dụng cURL để lấy dữ liệu từ máy chủ web nội bộ. Tôi rõ ràng có thể sử dụng --user kết hợp với --ntlm và mọi thứ đều hoạt động tốt, nhưng tôi không thể nhận ra nó để nhận ra ai đã đăng nhập và chuyển nó trong suốt. Nếu tôi truy cập cùng một trang web trong Chrome / Firefox / IE, nó ngay lập tức cấp cho tôi quyền mà không cần bất kỳ lời nhắc nào (Chúng tôi đang sử dụng proxy ở đây nếu điều đó quan trọng). Máy chủ đang sử dụng IIS.

Câu trả lời:


26

Tôi sử dụng (trong môi trường miền Windows):

curl --ntlm -u : ...

cUrl biết cung cấp thông tin xác thực tên miền của tôi và nó hoạt động mọi lúc.


3
Cảm ơn @ BillP3rd! Chỉ cần cảnh giác: điều này hoạt động hoàn hảo khi chạy curl trong dấu nhắc lệnh của Windows, nhưng không hoạt động nếu bạn đang chạy trong trình giả lập thiết bị đầu cuối như Cygwin trên máy Windows của bạn.
ErinsMatthew

5

Sử dụng -u :cung cấp mã người dùng và mật khẩu trống, để có được cURL để chọn những người đó từ cửa hàng thông tin xác thực.

Tôi sử dụng điều này trên Unix với GSSAPI và curl -u : --negotiate ...


1

Để giải thích chi tiết về @Phil P, hãy trả lời đây là cách tôi đã làm từ hộp ubfox của mình.

  1. Tìm hiểu địa chỉ IP của hướng dẫn bộ điều khiển miền của bạn về cách thực hiện điều đó tại đây
  2. Cài đặt kerberos sudo apt-get install krb5-user
  3. Nhập nội dung sau vào /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
    
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.