web-dev-qa-db-ja.com

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

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

21
MGSoto

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

curl --ntlm -u : ...

cUrlは私のドメイン資格情報を提供することを知っており、それは常に機能します。

28
BillP3rd

空のユーザーコードとパスワードを提供する-u :を使用して、cURLがクレデンシャルストアから取得するようにします。

私はGSSAPIとcurl -u : --negotiate ...を使用してUnixでこれを使用します

9
Phil P

@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
    
2
Will Munn