はじめに
Proxy環境下では、何かと開発環境の構築に苦労する事が多いのですが、その中でもNTLM認証を使用したProxy環境下とVSCode×Salesforceの環境構築に苦労したので、忘れないために、まとめておきます。
Salesforce CLIのインストール
Salesforce Extension Pack のインストール
については、深くは触れません。
NTLM認証Proxyの代理サーバを中継に利用
いわゆるIDE(VSCodeやEclipse)などからは、基本的にNTLM認証に対応している事は、ほとんどありません。
諦めて、自分のローカルに代理サーバを構築するのが早いです。
代理サーバ(NTLM認証)
公式サイト
ダウンロードURL
ZIP版をダウンロードして解凍することで利用可能です。
(pythonを利用しているようで、dllを内包していたり、Pythonインストールが必要だったりバージョンに依存しますが、Pythonで動作しているというあたりを認識しておく)
代理サーバ(NTLM認証)の設定
解凍したファイル群の中にある
- server.cfg
に必要事項を設定する。
項目名 | 設定内容 |
---|---|
LISTEN_PORT | ローカルPCの受付ポート番号 |
PARENT_PROXY | NTLM認証のPROXYサーバのホスト名 |
PARENT_PROXY_PORT | NTLM認証のPROXYサーバのポート番号 |
PARENT_PROXY_TIMEOUT | NTLM認証のPROXYサーバとのタイムアウト秒数 |
FRIENDLY_IPS | 転送を許可するIPアドレス(ローカルPCのIPアドレス) |
NT_HOSTNAME | ローカルPCのホスト名 |
NT_DOMAIN | ローカルPCの所属するWindowsドメイン名 |
USER | ユーザ名(Windows環境) |
PASSWORD | パスワード(Windows環境) |
NTLM認証は、ログインするWindowsドメインの認証を利用する仕組みなので、『FRIENDLY_IPS』で許可するIPアドレスは自分のPCのみを許可するのが望ましい。(なりすまし防止)
VSCode×Salesforceの環境のProxy
- settings.json
にProxyの設定が可能ですが、Salesforceプラグインから起動されるCLIは、別の実行端末環境が起動しているようで『settings.json』のProxy設定を引き継がない模様です。
とはいえ、念の為にこちらにも設定
設定名 | 値 |
---|---|
http.proxyAuthorization | http://ユーザ名:@ローカルPCのIPアドレス:受付ポート |
http.proxy | http://ローカルPCのIPアドレス:受付ポート |
http.proxyStrictSSL | false |
Windowsのシステム環境変数にProxyの設定を追加すると、『組織の認証』が成功するようになります。
システム環境変数 | 値 |
---|---|
HTTP_PROXY | http://ローカルPCのIPアドレス:受付ポート |
HTTPS_PROXY | http://ローカルPCのIPアドレス:受付ポート |
※『HTTPS_PROXY』の方も、『http(sなし)』であることに注意
Salesforceの組織『SFDX:組織を認証』には、Javaが必要
- settings.json
設定値 | 値 |
---|---|
salesforcedx-vscode-apex.java.home | javaのJRE環境(C:\Program Files\Java\jdk1.8.0_xxx\jreなど) |
お世話になった記事
プラグインの使い方自体などは、こちらを参照させて頂きました。(非常に参考になりました。)
まとめ
NTLM認証Proxy環境下での開発環境構築は大変なので、ローカルPCに代理サーバを立てて、何でもかんでも代理サーバを通すようにするとイロイロと開発環境構築時のトラブルを回避できる。