cURLでWindows資格情報を渡すにはどうすればよいですか?


19

私はcURLを使用して内部Webサーバーからデータをプルするスクリプトを書いています。--userと--ntlmを組み合わせて明示的に使用できますが、すべてがうまく機能しますが、ログインしている人を認識して透過的に渡すことはできません。Chrome / Firefox / IEの同じサイトにアクセスすると、プロンプトなしですぐに許可が与えられます(重要な場合はここでプロキシを使用しています)。サーバーはIISを使用しています。

回答:


26

私は(Windowsドメイン環境で)使用します:

curl --ntlm -u : ...

cUrlはドメイン資格情報の提供を認識しており、毎回機能します。


3
ありがとう@ BillP3rd!頭に浮かぶ:これは、Windowsコマンドプロンプト内でcurlを実行している場合は完全に機能しますが、WindowsマシンでCygwinなどのターミナルエミュレーター内で実行している場合は機能しません。
ErinsMatthew

5

-u :空のユーザーコードとパスワードを提供するuse を使用して、資格情報ストアからそれらを取得する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
    
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.