> ## Documentation Index
> Fetch the complete documentation index at: https://dify-6c0370d8-release-1-15-0.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# 認証とコンテキスト

> サインイン、セッション管理、保存済みのホストとアカウントの切り替え

> このドキュメントは AI によって自動翻訳されています。不正確な部分がある場合は、[英語版](/en/cli/reference/auth-and-contexts) を参照してください。

`difyctl` は、複数の Dify ホストとアカウントへのサインインを同時に保持できます。各ホストとアカウントの組み合わせが 1 つのコンテキストです。そのメタデータは [設定ディレクトリ](/ja/cli/reference/environment-variables) 内の `hosts.yml` に保存され、bearer token は OS の認証情報ストアに保存されます（保護されたファイルへのフォールバックあり）。

各タスクは 1 つのコマンドに対応します。

* [`difyctl auth login`](#サインイン) でホストにサインインします
* [`auth whoami`](#現在の認証情報を確認) でサインイン中の認証情報を表示します
* [`auth list`](#保存済みのコンテキストを一覧表示) で保存済みのコンテキストを一覧表示します
* [`auth logout`](#サインアウト) でアクティブなホストからサインアウトします
* [`use host`](#アクティブなホストを切り替える) / [`use account`](#アクティブなアカウントを切り替える) でアクティブなコンテキストを切り替えます
* [`auth devices list`](#アクティブなセッションを一覧表示) でアクティブなセッションを一覧表示します
* [`auth devices revoke`](#セッションを取り消す) で心当たりのないセッションを取り消します

サインインの手順については、[認証](/ja/cli/authenticate) を参照してください。

## サインイン

```text theme={null}
difyctl auth login [flags]
```

`auth login` は OAuth 2.0 デバイスフローを実行します。ワンタイムコードと検証 URL を表示してブラウザでその URL を開き、ブラウザでサインインが承認されるのを待ちます。CLI がパスワードに触れることは一切ありません。

### フラグ

| フラグ            | 型       | デフォルト | 説明                                                                                                                                                                                                                                                                                                                  |
| :------------- | :------ | :---- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `--host <url>` | string  | none  | サインイン先の Dify ホスト：<ul><li>Dify Cloud の場合は `https://cloud.dify.ai` を使用します。</li><li>セルフホストの Dify では [コンソール API URL](/ja/self-host/deploy/configuration/environments#console_api_url) を指定します。</li></ul>スキームのない URL には `https://` が付与されます。<br /><br />ターミナルでは省略でき、その場合はホストの入力を求められます。非対話セッション（スクリプト、CI、パイプ）ではこのフラグは必須です。 |
| `--no-browser` | boolean | false | ブラウザを自動で開かず、検証 URL のみを表示します。                                                                                                                                                                                                                                                                                        |
| `--insecure`   | boolean | false | `http://` ホストを許可します（ローカル開発のみ）。                                                                                                                                                                                                                                                                                      |

### 例

Dify ホストにサインインします。

```bash theme={null}
difyctl auth login --host https://cloud.dify.ai
```

SSH セッションからサインインし、検証 URL を別のデバイスで開きます。

```bash theme={null}
difyctl auth login --no-browser
```

### 出力

コードのプロンプトは stderr に出力され、その後スピナーがブラウザ側の承認を待ちます。

```text theme={null}
! Copy this one-time code: WDJP-XKLM
  Open: https://cloud.dify.ai/device
```

成功すると、確認メッセージが stdout に出力されます。

```text theme={null}
✓ Logged in to cloud.dify.ai as <your-email> (<your-name>)
  Workspace: <your-workspace>
```

`Workspace:` の行はデフォルトのワークスペースです。

サインインのたびに、`difyctl on <hostname>` というラベルのサーバー側セッションも登録されます。[`auth devices list`](#アクティブなセッションを一覧表示) を実行すると、すべてのセッションを確認できます。すでにサインイン済みのホストにサインインすると、そのコンテキストに保存された token が更新されます。

### 終了コード

| 終了コード | 意味                                                              |
| :---- | :-------------------------------------------------------------- |
| `0`   | サインイン完了                                                         |
| `1`   | ネットワークまたはサーバーエラー                                                |
| `2`   | 使用方法のエラー。ターミナル外での `--host` の欠落や、`--insecure` のない非 `https` ホストなど |
| `4`   | サインインが拒否された（`access_denied`）か、承認前にコードが期限切れになった（`expired_token`） |
| `6`   | サーバーにデバイスフローのサインインエンドポイントがない（`unsupported_endpoint`）            |
| `7`   | レート制限（HTTP 429）                                                 |

すべての終了コードについては、[出力形式と終了コード](/ja/cli/reference/output-formats-and-exit-codes) を参照してください。

## 現在の認証情報を確認

```text theme={null}
difyctl auth whoami [flags]
```

`auth whoami` は、アクティブなコンテキストが誰のものかを表示します。保存されたコンテキストを読み取るだけでサーバーには接続しないため、「どの認証情報がアクティブか」には答えますが、「token がまだ有効か」には答えません。セッションがサーバー側で期限切れになっていても、`0` で終了します。

### フラグ

| フラグ      | 型       | デフォルト | 説明                          |
| :------- | :------ | :---- | :-------------------------- |
| `--json` | boolean | false | プレーンテキストの行ではなく JSON を出力します。 |

### 例

```bash theme={null}
difyctl auth whoami
```

スクリプト用：

```bash theme={null}
difyctl auth whoami --json
```

### 出力

```text theme={null}
<your-email> (<your-name>)
```

`--json` の出力は、`id`、`email`、`name` を含む 1 行です。

```json theme={null}
{"id":"3c90c3cc-0d44-4b50-8888-8dd25736052a","email":"<your-email>","name":"<your-name>"}
```

### 終了コード

| 終了コード | 意味                          |
| :---- | :-------------------------- |
| `0`   | アクティブなコンテキストが存在する           |
| `4`   | サインインしていない（`not_logged_in`） |

## 保存済みのコンテキストを一覧表示

```text theme={null}
difyctl auth list [flags]
```

`auth list` は、保存済みのすべてのホストとアカウントの組み合わせを表示し、アクティブなものに印を付けます。`auth whoami` と同様に、完全にローカルで動作し、サーバーには接続しません。

### フラグ

| フラグ           | 型      | デフォルト | 説明                                                      |
| :------------ | :----- | :---- | :------------------------------------------------------ |
| `-o <format>` | string | none  | 出力形式：`json`、`yaml`、または `name`。フラグを省略するとデフォルトのテーブルになります。 |

### 例

```bash theme={null}
difyctl auth list
```

### 出力

| 形式                  | stdout に出力される内容                                            |
| :------------------ | :--------------------------------------------------------- |
| デフォルト               | コンテキストのテーブル：ホスト、アカウント、アクティブ印。                              |
| `-o json`、`-o yaml` | `contexts` 配列。各エントリに `host`、`account`、`name`、`active` を含む。 |
| `-o name`           | アカウントのメールアドレスを 1 行に 1 件ずつ。                                 |

デフォルトのテーブル：

```text theme={null}
HOST                    ACCOUNT                      ACTIVE
cloud.dify.ai           you@company.com (Your Name)  *
dify.internal.acme.com  you@acme.com (Your Name)
```

`-o json`：

```json theme={null}
{
  "contexts": [
    {
      "host": "cloud.dify.ai",
      "account": "you@company.com",
      "name": "Your Name",
      "active": true
    },
    {
      "host": "dify.internal.acme.com",
      "account": "you@acme.com",
      "name": "Your Name",
      "active": false
    }
  ]
}
```

### 終了コード

| 終了コード | 意味                            |
| :---- | :---------------------------- |
| `0`   | 成功。保存済みのコンテキストがない場合も含む        |
| `2`   | 使用方法のエラー。サポートされていない `-o` の値など |

## サインアウト

```text theme={null}
difyctl auth logout
```

`auth logout` は、アクティブなコンテキストのセッションをサーバー上で取り消し、その token と `hosts.yml` のエントリをマシンから削除します。他の保存済みコンテキストには影響しません。

ローカルのクリーンアップは常に実行されます。サーバー側の取り消しが失敗した場合、`difyctl` は stderr に警告を表示し、認証情報はそのまま削除します。

サインアウト時に読み取れない OS のキーチェーン（ロック中、またはデスクトップセッションがない）に token がある場合も同様です。取り消しはスキップされ、ローカルのクリーンアップは実行されます。

### フラグ

なし。

### 例

```bash theme={null}
difyctl auth logout
```

### 出力

```text theme={null}
✓ Logged out of cloud.dify.ai
```

### 終了コード

| 終了コード | 意味                          |
| :---- | :-------------------------- |
| `0`   | サインアウト完了                    |
| `4`   | サインインしていない（`not_logged_in`） |

## アクティブなホストを切り替える

```text theme={null}
difyctl use host [flags]
```

`use host` は、後続のコマンドの実行先となる保存済みホストを切り替えます。これはローカルな操作で、既存のサインインの中でアクティブなコンテキストを切り替えるだけです。新しいホストを追加するには、代わりに [`auth login --host`](#サインイン) を実行します。

### フラグ

| フラグ               | 型      | デフォルト | 説明                                                                                                                                |
| :---------------- | :----- | :---- | :-------------------------------------------------------------------------------------------------------------------------------- |
| `--domain <host>` | string | none  | 切り替え先の保存済みホスト。スキームを付けず、素のドメイン（`cloud.dify.ai`）で指定します。<br /><br />ターミナルでは省略して、保存済みのホストから選択できます。非対話セッション（スクリプト、CI、パイプ）ではこのフラグは必須です。 |

### 例

ドメインを指定して保存済みのホストに切り替えます。

```bash theme={null}
difyctl use host --domain dify.internal.acme.com
```

### 出力

成功すると、新しいアクティブホストが確認されます。

```text theme={null}
✓ Active host is now dify.internal.acme.com
```

サインインしたことのないドメインを指定すると、既知のホストを列挙した使用方法のエラーになります。

### 終了コード

| 終了コード | 意味                                         |
| :---- | :----------------------------------------- |
| `0`   | 切り替え完了                                     |
| `2`   | 使用方法のエラー：不明なホスト、またはターミナル外での `--domain` の欠落 |
| `4`   | 保存済みのサインインがない（`not_logged_in`）             |

## アクティブなアカウントを切り替える

```text theme={null}
difyctl use account [flags]
```

`use account` は、現在のホストでアクティブな保存済みアカウントを切り替えます。`use host` と同様にローカルな操作で、既存のサインインを切り替えるだけです。

### フラグ

| フラグ               | 型      | デフォルト | 説明                                                                                         |
| :---------------- | :----- | :---- | :----------------------------------------------------------------------------------------- |
| `--email <email>` | string | none  | 切り替え先のアカウント。<br /><br />ターミナルでは省略して、保存済みのアカウントから選択できます。非対話セッション（スクリプト、CI、パイプ）ではこのフラグは必須です。 |

### 例

アクティブなホスト上で別のアカウントに切り替えます。

```bash theme={null}
difyctl use account --email teammate-bot@company.com
```

### 出力

成功すると、新しいアクティブアカウントが確認されます。

```text theme={null}
✓ Active account on cloud.dify.ai is now teammate-bot@company.com
```

アクティブなホストに保存されていないメールアドレスを指定すると、既知のアカウントを列挙した使用方法のエラーになります。保存された token がなくなったアカウント（取り消し済み、または [セッションの取り消し](#セッションを取り消す) で削除）を指定すると、サインインしていないエラーになり、再サインインを促すヒントが表示されます。

### 終了コード

| 終了コード | 意味                                          |
| :---- | :------------------------------------------ |
| `0`   | 切り替え完了                                      |
| `2`   | 使用方法のエラー：不明なアカウント、またはターミナル外での `--email` の欠落 |
| `4`   | このホストに保存済みのサインインがない、または選択したアカウントの認証情報がない    |

## アクティブなセッションを一覧表示

```text theme={null}
difyctl auth devices list [flags]
```

デバイスフローのサインインはいずれも、デフォルトで `difyctl on <hostname>` というラベルのサーバー側セッションを登録します。`auth devices list` はアカウントで有効なセッションを一覧表示するので、心当たりのないものを見つけて [取り消す](#セッションを取り消す) ことができます。

### フラグ

| フラグ           | 型       | デフォルト | 説明                                                                                          |
| :------------ | :------ | :---- | :------------------------------------------------------------------------------------------ |
| `--json`      | boolean | false | テーブルではなく JSON を出力します。                                                                       |
| `--page <n>`  | integer | 1     | ページ番号。                                                                                      |
| `--limit <n>` | integer | 20    | ページサイズ、1 から 200。フラグが優先され、次に [`DIFY_LIMIT`](/ja/cli/reference/environment-variables) が使われます。 |

### 例

アカウントで有効なセッションを一覧表示します。

```bash theme={null}
difyctl auth devices list
```

### 出力

```text theme={null}
DEVICE                        CREATED               LAST USED             CURRENT
difyctl on Yours-MacBook-Pro  2026-06-02T09:14:31Z  2026-06-11T08:02:17Z  *
difyctl on build-runner-3     2026-05-28T11:40:09Z  2026-06-10T22:51:44Z
```

テーブルでは、現在のサインインが使用しているセッションに `*` が付きます。サインイン以降に使用していないセッションは、`LAST USED` が空になります。

`--json` は単行の JSON を出力します。セッションごとに 1 エントリの `data` 配列に加え、ページング用フィールドの `page`、`limit`、`total`、`has_more` を含みます。各エントリには `id`、`prefix`、`client_id`、`device_label`、`created_at`、`last_used_at`、`expires_at` が含まれます。

### 終了コード

| 終了コード | 意味                      |
| :---- | :---------------------- |
| `0`   | 成功                      |
| `1`   | ネットワークまたはサーバーエラー        |
| `2`   | 使用方法のエラー。`--limit 0` など |
| `4`   | 認証の失敗                   |
| `7`   | レート制限（HTTP 429）         |

## セッションを取り消す

```text theme={null}
difyctl auth devices revoke [<target>] [flags]
```

`auth devices revoke` はセッションをサーバー側で終了します。ターゲットは、まずラベルの完全一致、次にセッション ID の完全一致、最後に大文字小文字を区別しないラベルの部分一致で照合されます。複数のセッションに一致するターゲットを指定すると、候補が列挙されて失敗するため、正確な ID を渡して曖昧さを解消します。

ターミナルでは、`difyctl` がまず確認を求めます。`-y`/`--yes` を渡すとプロンプトをスキップできます。ターミナル外（スクリプトやパイプ）では、確認なしで取り消します。

現在のサインインが使用しているセッションを取り消すと、`difyctl` はそのコンテキストのローカル認証情報も削除します。このマシンではサインアウトされます。

### 引数

* `<target>`：[`auth devices list`](#アクティブなセッションを一覧表示) で得られるデバイスラベルまたはセッション ID。`--all` を渡す場合を除き必須です。

### フラグ

| フラグ         | 型       | デフォルト | 説明                           |
| :---------- | :------ | :---- | :--------------------------- |
| `--all`     | boolean | false | 現在のセッションを除くすべてのセッションを取り消します。 |
| `-y, --yes` | boolean | false | 確認プロンプトをスキップします。             |

### 例

ラベルを指定して 1 つのセッションを取り消します。

```bash theme={null}
difyctl auth devices revoke "difyctl on build-runner-3"
```

このマシンのセッションを残し、他のすべての場所からサインアウトします。

```bash theme={null}
difyctl auth devices revoke --all
```

### 出力

成功すると、`difyctl` は `✓ Revoked <N> session(s)` を出力します。指定したターゲットが何にも一致しない場合は、`no session matches "<target>"` で失敗します。他にセッションがない状態で `--all` を指定すると、`no sessions to revoke` を出力して `0` で終了します。

### 終了コード

| 終了コード | 意味                                                                |
| :---- | :---------------------------------------------------------------- |
| `0`   | 取り消し完了、または `--all` で取り消すものがない                                     |
| `1`   | ネットワークまたはサーバーエラー                                                  |
| `2`   | 使用方法のエラー：ターゲットも `--all` もない、ターゲットが曖昧、一致するセッションがない、または確認プロンプトを拒否した |
| `4`   | 認証の失敗                                                             |
| `7`   | レート制限（HTTP 429）                                                   |

すべての終了コードについては、[出力形式と終了コード](/ja/cli/reference/output-formats-and-exit-codes) を参照してください。
