> For the complete documentation index, see [llms.txt](https://manual.dxable.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://manual.dxable.com/1password/use-1password-to-securely-authenticate-ngrok.md).

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

**1Passwordでngrokを安全に認証する**

ngrokシェルプラグインを使うと、1Passwordを使用して[ngrok CLI](https://ngrok.com/docs/)を安全に認証できます。資格情報をプレーンテキストでSaveするのではなく、指紋、Apple Watch、またはシステム認証を使用してSaveします。

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

<https://developer.1password.com/videos/ngrok.mp4>

### 必要条件 <a href="#pw1mjr1r5y8a" id="pw1mjr1r5y8a"></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 をインストールしてサインインしてください。
3. [1Password CLI](https://app-updates.agilebits.com/product_history/CLI2) 2.14.0 以降をインストールします。 1Password CLI を既にインストールしている場合は、[インストールを更新する](https://developer.1password.com/docs/cli/reference/update/)方法を確認してください。
4. [1Password CLIを1Password アプリと統合](https://developer.1password.com/docs/cli/get-started/#step-2-turn-on-the-1password-desktop-app-integration)してください。
5. [ngrok CLI](https://ngrok.com/docs/getting-started)をインストールしてください。

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

* Bash
* Zsh
* fish

### **ステップ 1: デフォルトの**[**資格情報**](https://developer.1password.com/docs/cli/shell-plugins/ngrok/#step-1-configure-your-default-credentials) <a href="#xwwen4rbbskp" id="xwwen4rbbskp"></a>

ngrokシェル プラグインを使い始めるには:

1. ngrokプラグインで使う 1Password アカウントにサインインします。

$ op signin

1. 特定のディレクトリでのみプラグインを設定したい場合は、そのディレクトリに変更します。
2. プラグインを設定するには、次のコマンドを実行します。

$ op plugin init ngrok

ngrok認証情報を 1Passwordにインポートするか、認証情報がSaveされている保存済みの 1Password 項目を選択して、認証情報をいつ使うかを設定するように求められます。

![op plugin init コマンドと、アイテムをインポートまたは選択するためのオプションを表示するターミナル ウィンドウ。](/files/KkOLfuyKoD7gQ4bI05o0)

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

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

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

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

![トークン、アイテム名、ボールトなど、アイテムをインポートするために使用できるフィールドを表示するターミナル ウィンドウ。](/files/oV1gPdipW0OaGlW4yhQd)

**保存済みのアイテムを選択**

**既に** 1Passwordにngrok認証情報をSaveしている場合は、**Search in 1Password**を選択します。

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

![1Password アカウント内の既存のアイテムを検索するオプションが表示されたターミナル ウィンドウ。](/files/K815qlGBYYpRMGUQ6pKE)

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

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

![資格情報をいつ使用するかを設定するためのオプションを表示するターミナル ウィンドウ。](/files/jgLKphrlKNN8zkgXVvNe)

* **"Prompt me for each new terminal session"**&#x3092;選択すると、現在のターミナル セッションの期間中のみ資格情報が設定されます。ターミナルを終了すると、デフォルトは削除されます。
* **"Use automatically when in this directory or subdirectories"**&#x3092;選択すると、他のディレクトリ固有のデフォルトが設定されていない限り、現在のディレクトリとその全てのサブディレクトリで資格情報がデフォルトになります。ターミナル セッションのデフォルトは、ディレクトリ固有のデフォルトよりも優先されます。
* **"Use as global default on my system"**&#x3092;選択すると、資格情報が全てのターミナル セッションとディレクトリのデフォルトとして設定されます。ディレクトリ固有のデフォルトは、グローバル デフォルトよりも優先されます。

#### **オプション: APIキーの追加** <a href="#id-83yib6buxpbx" id="id-83yib6buxpbx"></a>

ngrok シェル プラグインは、デフォルトで、http、service、start、tcp、tls、tunnel の ngrok コマンドの認証を設定します。

コマンドの認証を構成するにはngrok api、ngrok アイテムに[カスタム フィールドを追加し](https://support.1password.com/custom-fields/#add-a-custom-field)API Key、そこに[ngrok API キーをSave](https://dashboard.ngrok.com/api/keys)します。

### **ステップ2: plugins.shファイルをsource化** <a href="#id-7a80twojf55l" id="id-7a80twojf55l"></a>

プラグインを使用できるようにするには、plugins.shファイルをソース化します。例:

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

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

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

* Bash

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

* Zsh

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

* fish

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

### **ステップ3: CLIを使う** <a href="#id-6jrqv343jrup" id="id-6jrqv343jrup"></a>

次回ngrokを使用してコマンドを入力すると、生体認証またはシステム認証による認証を求めるメッセージが表示されます。

![1Password CLI 生体認証ロック解除を使用して認証されている CLI。](/files/L6XL12jIJU6xaqDK73ko)

### **ステップ4: インポートした資格情報をdiskから削除** <a href="#vh65vno3rli" id="vh65vno3rli"></a>

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

ngrok 構成ファイルの場所を見つけるには、次のコマンドを実行します。

$ ngrok config check

資格情報を削除するには、rm構成ファイルのファイルパスを指定して実行します。例:

* Mac

$ rm "\~/Library/Application Support/ngrok/ngrok.yml"

* Linux

$ rm \~/.config/ngrok/ngrok.yml

### **次のステップ** <a href="#q57jkgfwdyaw" id="q57jkgfwdyaw"></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="#ym0nrs593ea" id="ym0nrs593ea"></a>

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

現在のngrok構成を検査するには:

$ op plugin inspect ngrok

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

![コマンド op plugin examine の結果を表示するターミナル ウィンドウ。](/files/yKiur8rGhkxWqKLQIy6W)

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

ngrokで使用される資格情報をリセットするには:

$ op plugin clear ngrok

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

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

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

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

### **参照** <a href="#id-63uc1cvnj9vn" id="id-63uc1cvnj9vn"></a>

ngrok 3.2.1 以降を使用している場合、1Password は、プラグイン コマンドに必要な資格情報を 1Password アカウントから直接環境変数に挿入して、ngrok で認証します。

以前のバージョンの ngrok を使用している場合、1Password は適切な資格情報を含む一時ファイルを挿入して認証します。

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

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

| 1Password**フィールド名** | **YAML 設定フィールド** | **環境変数**         |
| ------------------- | ---------------- | ---------------- |
| Auth Token          | authtoken        | NGROK\_AUTHTOKEN |
| API Key             | api\_key         | NGROK\_API\_KEY  |

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