JWT ベースフローを使用した組織の認証
継続的インテグレーション (CI) 環境は完全に自動化されており、Web ベースフローのユーザインタラクションはサポートされていません。この場合、JWT ベースフローを使用して Dev Hub を認証する必要があります。
JWT ベース認証フローでは、最初にデジタル証明書の生成と接続アプリケーションの作成を行う必要があります。次のタスクを 1 回のみ実行します。その後、CI 環境で実行されるスクリプトで Dev Hub を認証できるようになります。
Travis CI での JWT ベース認証の使用については、「Salesforce DX を使用した継続的インテグレーション」Trailhead モジュールを参照してください。
- 独自の非公開鍵とデジタル証明書がない場合は、OpenSSL を使用して鍵と自己署名証明書を作成します。このタスクでは、非公開鍵ファイルの名前が server.key で、デジタル証明書の名前が server.crt であることを前提としています。
- 接続アプリケーションを作成して Salesforce DX 用に設定します。このタスクには、server.crt デジタル証明書ファイルのアップロードが含まれます。後で必要になるため、接続アプリケーションの保存時にコンシューマ鍵を書き留めておきます。
-
認証する組織が https://login.salesforce.com でホストされていない場合、プロジェクトの設定ファイル (sfdx-project.json) を更新します。sfdcLoginUrl パラメータをこのログイン URL に設定します。他のログイン URL の例として、カスタムサブドメインや Sandbox 用の https://test.salesforce.com などが挙げられます。たとえば、次のようにします。
1"sfdcLoginUrl" : "https://test.salesforce.com"または、次のステップのように force:auth:jwt:grant コマンドの --instanceUrl パラメータを使用して URL を指定します。
-
force:auth:jwt:grant CLI コマンドを実行します。接続アプリケーションのクライアント ID (コンシューマ鍵とも呼ばれる)、非公開鍵ファイル (server.key) へのパス、および JWT 認証ユーザ名を指定します。Dev Hub を認証するときに --setdefaultdevhubusername パラメータでデフォルトに設定します。たとえば、次のようにします。
1sfdx force:auth:jwt:grant --clientid 04580y4051234051 --jwtkeyfile /Users/jdoe/JWT/server.key --username jdoe@acdxgs0hub.org --setdefaultdevhubusername --setalias my-hub-org別のログイン URL を指定するには、次のようにします。
1sfdx force:auth:jwt:grant --clientid 04580y4051234051 --jwtkeyfile /Users/jdoe/JWT/server.key --username jdoe@acdxgs0hub.org --setdefaultdevhubusername --setalias my-hub-org --instanceUrl https://test.salesforce.com