# 1PasswordでZendesk CLIを安全に認証する

### **1PasswordでZendesk CLIを安全に認証する** <a href="#id-6spwrftuc1wh" id="id-6spwrftuc1wh"></a>

Zapier CLIシェルプラグインを使うと、1Passwordを使って[ZCLI](https://developer.zendesk.com/documentation/apps/getting-started/using-zcli/)を安全に認証できます。資格情報を平文でSaveするのではなく、フィンガープリント、Apple Watch、またはシステム認証を使ってSaveします。

指示に従ってデフォルトの資格情報を設定し、plugins.shファイルを取得すると、生体認証を使ってZCLIを認証するように求められます。

### 必要条件 <a href="#scoi6ebt8bxz" id="scoi6ebt8bxz"></a>

1. [1Passwordにサインアップしてください。](https://1password.com/pricing)
2. [Mac](https://support.1password.com/get-the-apps/?mac)または[Linux](https://support.1password.com/get-the-apps/?linux)用の1Password 8をインストールしてサインインします。
3. [1Password CLI](https://app-updates.agilebits.com/product_history/CLI2) 2.17.0以降をインストールします。1Password CLIを既にインストールしている場合は、[最新版に更新する](https://developer.1password.com/docs/cli/reference/update/)方法を確認してください。
4. [1Password CLIを1Passwordアプリに接続します](https://developer.1password.com/docs/cli/app-integration/)。
5. [ZCLI](https://developer.zendesk.com/documentation/apps/getting-started/using-zcli/#installing-and-updating-zcli)をインストールします。

次のシェルがサポートされています。

* Bash
* Zsh
* fish

### **ステップ 1：デフォルトの資格情報を設定する** <a href="#gpid6s7q8sif" id="gpid6s7q8sif"></a>

Zendesk CLIシェルプラグインを使い始めるには次のように入力してください。

1. Zendesk CLIプラグインで使う 1Password アカウントにサインインします。\
   $ op signin
2. 特定のディレクトリーでのみプラグインを設定したい場合は、そのディレクトリーに変更します。
3. プラグインを設定するには、次のコマンドを実行します。\
   $ op plugin init zcli

Zendesk CLIの資格情報をあなたの資格情報がSaveされている保存済みの1Passwordアイテムにインポートするよう求められます。そしてその後にいつその資格情報を使うべきかを設定するよう求められます。

![op plugin init コマンドと、アイテムをインポートまたは選択するためのオプションを表示するターミナル ウィンドウ。](https://4200399111-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F8GVOyHz3wUSpdV3qlPwR%2Fuploads%2FHyf4NIuPcK0JEXnettOc%2F0.png?alt=media)

#### **ステップ 1.1：アイテムをインポートまたは選択する** <a href="#ss8o9e46fop" id="ss8o9e46fop"></a>

**新しいアイテムをインポートする場合**

Zendesk CLIの認証情報を1PasswordにまだSaveしていない場合は、\[Import into 1Password]を選択します。認証情報を入力し、新しい1Passwordアイテムの名前を選択して、Save先の保管庫を選択します。

1Passwordがローカル開発環境で資格情報を検出すると、自動的にインポートするように求められます。

![トークン、アイテム名、ボールトなど、アイテムをインポートするために使用できるフィールドを表示するターミナル ウィンドウ。](https://4200399111-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F8GVOyHz3wUSpdV3qlPwR%2Fuploads%2FMAXmkbbcDg8WLMQsSbZQ%2F1.png?alt=media)

**保存済みのアイテムを選択する場合**

Zendesk CLI の認証情報を1PasswordにSaveしている場合は、\[Search in 1Password]を選択します。

関連するアイテムとそれらがSaveされている保管庫のリストが表示されます。資格情報が表示されない場合は、\[Expand search]を選択して、アカウント内の全アイテムを参照します。

![1Password アカウント内の既存のアイテムを検索するオプションが表示されたターミナル ウィンドウ。](https://4200399111-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F8GVOyHz3wUSpdV3qlPwR%2Fuploads%2FooE5zSQIwQbbdw62ngOA%2F2.png?alt=media)

#### **ステップ 1.2：デフォルトの資格情報のスコープを設定する** <a href="#m8st51e4f2ns" id="m8st51e4f2ns"></a>

資格情報を選択またはインポートすると、その項目をZendesk CLIの認証に使うタイミングを設定するように求められます。

* \[Prompt me for each new terminal session]を選択すると、現在のターミナルセッションの期間中のみ資格情報が設定されます。ターミナルを終了すると、デフォルトは削除されます。
* \[Use automatically when in this directory or subdirectories]を選択すると、他のディレクトリー固有のデフォルトが設定されていない限り、現在のディレクトリーとその全てのサブディレクトリーで資格情報がデフォルトになります。ターミナルセッションのデフォルトは、ディレクトリー固有のデフォルトよりも優先されます。![資格情報をいつ使用するかを設定するためのオプションを表示するターミナル ウィンドウ。](https://4200399111-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F8GVOyHz3wUSpdV3qlPwR%2Fuploads%2F53g3DCBoRKgXL8BmOtk9%2F3.png?alt=media)
* \[Use as global default on my system]を選択すると、資格情報が全ターミナルセッションとディレクトリーのデフォルトとして設定されます。ディレクトリー固有のデフォルトは、グローバルデフォルトよりも優先されます。

### **ステップ2：plugins.shファイルをsourceする** <a href="#id-1nmsaxij4lb1" id="id-1nmsaxij4lb1"></a>

プラグインを使えるようにするには、plugins.shファイルをソースします。

例：

$ source \~/.config/op/plugins.sh

あなたの環境のopフォルダーのファイルパスは、[設定ディレクトリー](https://developer.1password.com/docs/cli/config-directories/)によって異なる場合があります。op plugin initコマンドで、正しいファイルパスを含むソースコマンドを出力します。<br>

シェルプラグインを初めてインストールする場合は、現在のターミナルセッションを超えてプラグインを永続化するために、RCファイルまたはシェルプロファイルにsourceコマンドを追加する必要があります。\
例：

* Bash

$ echo "source \~/.op/plugins.sh" >> \~/.bashrc && source \~/.bashrc

* zsh

$ echo "source \~/.op/plugins.sh" >> \~/.zshrc && source \~/.zshrc

* fish

$ echo "source \~/.op/plugins.sh" >> \~/.config/fish/config.fish && source \~/.config/fish/config.fish

### **ステップ3：CLIを利用する** <a href="#xj57a89mzti0" id="xj57a89mzti0"></a>

次回Zendesk CLIでコマンドを入力するときに、生体認証またはシステム認証による認証を求めるメッセージが表示されます。![1Password CLI 生体認証ロック解除を使用して認証されている CLI。](https://4200399111-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F8GVOyHz3wUSpdV3qlPwR%2Fuploads%2FlIS5CCucil5eHPDeA9CP%2F4.png?alt=media)

### **ステップ4：インポートした資格情報をディスクから削除する** <a href="#pvmyi1m9caci" id="pvmyi1m9caci"></a>

Zendesk CLIの認証情報を1PasswordにSaveしたら、以前にディスクにSaveした全てのローカルコピーを削除できます。

### 次のステップ <a href="#hi9a40urazix" id="hi9a40urazix"></a>

1Password Shellプラグインは[60を超えるサードパーティーのCLI](https://developer.1password.com/docs/cli/shell-plugins/#get-started)をサポートしています。サポートされているCLIのリストを表示するには次のように入力してください。

$ op plugin list

別のプラグインを選択して開始するには次のように入力してください。

$ op plugin init

[シームレスなコンテキスト切り替えのためにシェルプラグインを使うには、複数の環境](https://developer.1password.com/docs/cli/shell-plugins/environments/)または[複数のアカウント](https://developer.1password.com/docs/cli/shell-plugins/multiple-accounts/)でプラグインを構成する方法を学んでください。

### ヘルプを取得する <a href="#t2sbwt8z1jl6" id="t2sbwt8z1jl6"></a>

#### **設定を検査する** <a href="#oeqos7rt2cks" id="oeqos7rt2cks"></a>

現在のZendesk CLI設定を検査するには次のように入力してください。

$ op plugin inspect zcli

1Password CLIは、 Zendesk CLIで使うために設定した資格情報とそのデフォルトのスコープのリスト、およびZapier CLI用に設定されたエイリアスのリストを返します。

![コマンド op plugin examine の結果を表示するターミナル ウィンドウ。](https://4200399111-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F8GVOyHz3wUSpdV3qlPwR%2Fuploads%2FxuQdVcLn9z2Z7YFIccb6%2F5.png?alt=media)

#### **資格情報を消去する** <a href="#cfk2qcsa8nn5" id="cfk2qcsa8nn5"></a>

Zendesk CLIで使用される資格情報をリセットするには、次のように入力してください：

$ op plugin clear zcli

次の優先順位に従って、一度に 1 つの構成をクリアできます。

1. ターミナルセッションのデフォルト
2. ディレクトリーのデフォルト、現在のディレクトリーから$HOME
3. グローバルデフォルト<br>

例えば、$HOME/projects/awesomeProjectディレクトリー内にいて、ターミナルセッションのデフォルト、ディレクトリーのデフォルトが$HOMEおよび$HOME/projects/awesomeProjectであり、さらにグローバルデフォルトの資格情報が設定されている場合、全てのデフォルトをクリアするにはop plugin clear zcliを4回実行する必要があります。

グローバルデフォルト資格情報、ターミナルセッションデフォルト、および現在のディレクトリーのデフォルトを同時にクリアするには、op plugin clear zcli --allを実行します。

### **参考情報** <a href="#g27hf9l4tu3f" id="g27hf9l4tu3f"></a>

1Password は、プラグインコマンドに必要な資格情報を 1Passwordアカウントから直接環境変数に挿入することで、Zendesk CLIで認証します。

新しい項目をインポートするために使うのではなく、手動でZendesk CLI の資格情報を 1PasswordにSaveした場合は、フィールド名が以下の表と一致していることを確認してください。op plugin

アイテムに必要な名前のフィールドが含まれていない場合は、保存済みのフィールドのいずれかの名前を変更するように求められます。

| 1Passwordフィールド名 | 環境変数                |
| --------------- | ------------------- |
| サブドメイン          | ZENDESK\_SUBDOMAIN  |
| メール             | ZENDESK\_EMAIL      |
| トークン            | ZENDESK\_API\_TOKEN |

[このプラグインを提供してくれた](https://github.com/1Password/shell-plugins/pull/207)、[@williamhpark](https://github.com/williamhpark)に感謝します。[独自のシェルプラグインを構築する](https://developer.1password.com/docs/cli/shell-plugins/contribute/)方法を学びましょう。

さらに詳しく知るには

* [シェルプラグインを使用して複数の環境を切り替える](https://developer.1password.com/docs/cli/shell-plugins/environments/)
* [複数のアカウントでシェルプラグインを使う](https://developer.1password.com/docs/cli/shell-plugins/multiple-accounts/)
* [独自のシェルプラグインを構築する](https://developer.1password.com/docs/cli/shell-plugins/contribute/)
