2024.06.17
こんにちは、CS部で Salesforce の開発に携わっている平石です。
Salesforce のバージョン Spring’24 をもって Ant 移行ツールのサポートが終了されました。
これまで、組織へのメタデータのデプロイは Ant 移行ツールを使用していた方がたくさんいらっしゃることと思います。
今後、 Ant 移行ツールと同様にメタデータ形式でデプロイしたい場合は、 Salesforce CLI を用いることになりますので、その手順について説明したいと思います。
Salesforce CLI を用いてデプロイ先の組織にログインする方法として、 JWT フローログインを使用します。
JWT フローでは、デジタル証明書と非公開鍵を用いて任意の組織で作成された接続アプリケーションをデプロイ対象となる組織にインストールすることにより、ログイン画面を開くことなく、コマンドプロンプト上で組織にログインすることが可能となります。
事前準備として、パソコンに OpenSSL がインストールされている必要があります。次のコマンドで OpenSSL がインストールされているか確認します。インストールされていない場合はインストールしてください。
>openssl version

非公開鍵を保存するフォルダを作成し、移動します。
>mkdir JWT_Test
>cd JWT_Test

次のコマンドで非公開鍵を作成し、 server.key というファイルに保存します。
>openssl genpkey -des3 -algorithm RSA -pass pass:SomePassword -out server.pass.key -pkeyopt rsa_keygen_bits:2048
>openssl rsa -passin pass:SomePassword -in server.pass.key -out server.key

作成した server.key ファイルを使用して、証明書署名要求を作成します。入力を求められた項目は適切な値を入力します。
>openssl req -new -key server.key -out server.csr

server.key および server.csr からデジタル証明書を作成します。デジタル証明書のファイル名は server.crt として保存します。
>openssl x509 -req -sha256 -days 365 -in server.csr -signkey server.key -out server.crt


接続アプリケーションを作成する組織にログインし、設定メニューからアプリケーションマネージャーを選択し、「新規接続アプリケーション」をクリックします。

必須項目と基本情報を入力します。
「サポートされる認証フローに Proof Key for Code Exchange (PKCE) 拡張を要求」のチェックは外します。
その他の入力値は下記のように設定して保存します。



保存後の画面は下のようになります。

コンシューマの詳細を管理のボタンをクリックします。ここで、本人確認を求められた場合は、 Email に送信された確認コードを入力します。

ここに表示されたコンシューマ鍵をJWTフローログインで使用するので、コピーしておきます。
「[接続アプリケーションを管理する] に戻る」をクリックして、接続アプリケーションを管理する画面に戻り、「 manage 」→「ポリシーを編集」とクリックします。( Lightning Experience 画面に戻って操作してOKです。)
更新トークンポリシーやタイムアウト値を推奨値に変更し、許可されているユーザーは「管理者が承認したユーザーは事前承認済み」を選択し、保存します。

JWTフローでログインするユーザーのプロファイルまたは権限セットを追加します。

これで、接続アプリケーションの作成が完了しました。
メタデータをデプロイする対象の組織に接続アプリケーションをインストールします。
まず、対象組織に下記コマンドでログインします。
続けて、コンシューマの秘密を入力してEnterを入力します。(コンシューマの秘密はコマンドプロンプト上には表示されません。)
>sf org login web -i [コンシューマ鍵]

接続アプリケーションのアクセスの確認画面が出たら、許可をクリックします。

ログイン後、設定メニューの接続アプリケーションの OAuth の利用状況画面を開き、接続アプリケーションをインストールします。

確認画面が出たら、「インストール」を押下します。

インストール直後の画面はこのようになります。

「ポリシーを編集」ボタンを押し、更新トークンポリシーやタイムアウト値を推奨値に変更し、許可されているユーザーは「管理者が承認したユーザーは事前承認済み」を選択し、保存します。
プロファイルを管理するボタンを押下し、今回はデプロイを実行するユーザーのプロファイルを設定します。


これで、接続アプリケーションのインストールと設定が完了しました。
次のコマンドで、デプロイ対象の組織に JWT フローでログインできるか確認します。
>sf org login jwt --client-id [コンシューマの鍵] --jwt-key-file server.key --username [ユーザー名]

無事ログインできました。
Salesforce CLI の project コマンドを実行するためには SFDX プロジェクトの作成が必要なため、下記のコマンドでプロジェクトを作成します。
>sf project generate --name [プロジェクト名]

作成したプロジェクト以下のソース(例: deploy-proj\force-app\main\default )を、デプロイするメタデータに差し替えます。
デプロイ対象のメタデータを記載した package.xml も格納します。

では、いよいよ下記コマンドを使用して、デプロイ対象の組織にメタデータ形式でメタデータをデプロイします。
>sf project deploy start --metadata-dir force-app/main/default -o [ユーザー名] --dry-run
--dry-run オプション指定すると、デプロイチェックのみを行います。

デプロイチェックが成功しました。--dry-runオプションを外して実行すればデプロイされます。
いかがでしたでしょうか。
接続アプリケーションを一度インストールしてしまえば、コマンドプロンプト上で Salesforce CLI コマンドを実行することで、ログイン画面を開くことなくメタデータのデプロイが実行できるため、Ant移行ツールと同じような手軽さでデプロイできるようになります。
今後もメタデータ形式で Salesforce のデータを管理する場合は、この手順を利用されてはいかがでしょうか。
2026.04.27
水木しげるさんの戦記や関連著作を5冊読み比べながら、それぞれの本の魅力と心に残った点を紹介します。戦争の過酷さや生き残ったことの重みが描かれる一方で、文章や絵の力によって不思議と「もっと知りたい」と思わされる読書体験が綴られています。戦後90年に向けて、戦争を知らない世代が何を受け取り、どうつないでいくかを考えるきっかけになる内容です。
2026.04.24
Salesforceの動的ゲージグラフにおいて、数式を用いた目標値の設定方法を解説します。年間目標から月次目標を算出する基本的な使い方に加え、役職や勤続年数に応じて目標値を変動させる方法を紹介。IF関数や日付項目を活用することで、複数条件に基づいた柔軟な目標設定が可能になります。さらに、カスタムオブジェクトやフローを組み合わせることで、より高度な管理にも対応できる点についても触れています。
2026.04.20
春は新生活のスタートとともに、アレルギーに悩まされる方も多い季節です。対処療法で乗り切ってきた中で、睡眠や食事といった基本を見直すことで体調の安定を実感しています。
2026.04.13
2026年2月に開催された佐賀県ラージボール卓球選手権大会に出場し、60~64歳クラスで優勝した体験を振り返ります。予選リーグを順調に勝ち上がり、トーナメントでは日頃から対戦経験のある選手との接戦を制して決勝へ。決勝ではファイナルゲームまでもつれる白熱した試合となり、最後は接戦をものにしました。これまでの経験や戦術の変化を実感しながら、試合ならではの緊張感も味わうことができました。