curlでADのドメインユーザーでプロキシを超える
curlでADのドメインユーザーで認証してプロキシを超えたい こちらのサイト でslackにsnmp trapを送信する方法が書かれていたのに触発されてシステムのエラーを通知するのに、MicrosoftのTeamsのWebhookにjsonで飛ばしてみようと思ったらcurlでつながらない。 ADユーザーでプロキシ認証しないと外に出られない、Linux好きにとっては反吐の出る環境のため、それが原因で外に出れなかった。 ネット上にcurlで認証通す場合こうしたらいいよ~みたいなのがいっぱい転がっているが、なんかいまいちなので自分のやったことを備忘録として乗っけとく。 実際のコマンド例 ほんとは出力するメッセージを加工したりする処理を入れているのだが、要素だけ掲載すると下記のようなコマンドで飛ばせる。 WEBHOOKのURL作ったりするところはggrksでよろしくお願いします。 #環境変数定義 MESSAGE=<なんかメッセージ> TEAMS_WEBHOOKURL=<TEAMSのWEBHOOKURL> #コマンド実行 echo "{ \" text \" : \" ${MESSAGE} \" } " | \ curl -H 'Content-type:application/json' \ -U "<ドメイン>\<ユーザー名>:<パスワード>" \ --proxy-ntlm \ -proxy <プロキシサーバ>:<ポート> \ -insecure -d @- ${TEAMS_WEBHOOKURL} プロキシ越えの肝となるオプション ポイントは下記の3つで、特にADのドメインユーザーで認証する場合、ntlm認証のために「--proxy-ntlm」オプションが必要らしい。 -U "<ドメイン>\<ユーザー名>:<パスワード>" --proxy-ntlm -proxy <プロキシサーバ>:<ポート>