> ## Documentation Index
> Fetch the complete documentation index at: https://docs.replit.com/llms.txt
> Use this file to discover all available pages before exploring further.

# 外部アクセストークン

> サインインなしにCIパイプライン、Webhook、その他の自動化サービスからプライベートなReplit Appにアクセスできるようにします。

外部アクセストークンは、特定のReplit Appのために発行するベアラートークンです。
[プライベートDev URL](/references/publishing/private-deployments) や [Private Deployment](/references/publishing/private-deployments) でURLがロックされていても、CIパイプライン、Webhook、ステータスチェックpinger、Slackボット、内部スクリプトなどの自動化サービスがアプリにアクセスできるようにします。

各トークンはパスワードと同様に扱ってください。トークンを持つ人は誰でも、有効期限が切れるか失効させるまでアプリにアクセスできます。

<Note>
  外部アクセストークンはReplit CoreおよびProプランで利用できます。
  Enterpriseのお客様は、ワークスペースでこの機能を有効にするために事前にReplitへのオプトインのリクエストが必要です。トークンはDeploymentがプライベートになった後にのみ、パブリッシュ設定に表示されます。
</Note>

## トークンを使うタイミング

ブラウザの外にあるものがプライベートなReplit Appを呼び出す必要がある場合に、外部アクセストークンを使用します。よくあるケース：

* すべてのコミットでDev URLに対してスモークテストを実行するGitHub Actionsワークフロー。
* パブリッシュ済みアプリのヘルスエンドポイントをチェックするアップタイムモニター（Better Stack、Pingdom、UptimeRobot）。
* Private DeploymentにPOSTするWebhookレシーバー（Stripe、Slack、GitHub）。
* デバッグ中のチームメートのマシンからの `curl` や `fetch` 呼び出し。

外部アクセストークンは**APIトラフィック**向けに設計されており、ブラウザでUIページを開くためのものではありません。シングルページアプリ（Vite、Next.jsなど）はフォローアップリクエストでJavaScriptバンドルを読み込みますが、それらのリクエストにはトークンが含まれないため失敗します。インタラクティブなブラウジングには、通常どおりサインインしてください。

## トークンの環境

各トークンは1つの環境に紐付けられます：

| 環境            | 有効な場所                                            | 用途                              |
| :------------ | :----------------------------------------------- | :------------------------------ |
| `Development` | アプリのワークスペースDev URL（`*.replit.dev`）               | 開発中の実行中のReplにアクセス               |
| `Production`  | アプリのパブリッシュ済みDeployment（`*.replit.app` とカスタムドメイン） | 外部サービスからPrivate Deploymentにアクセス |

`Production` トークンは*現在パブリッシュされている*Deploymentに紐付けられます。
新しいDeploymentに再パブリッシュした場合、既存のProductionトークンは無効になり、新しいトークンを発行する必要があります。

## 外部アクセストークンを作成する

<Steps>
  <Step>
    公開したいアプリを開き、**Publishing** ツールを開きます。
  </Step>

  <Step>
    **Adjust settings** を選択して、再デプロイオプションを展開します。
  </Step>

  <Step>
    **Security** セクションで **External access tokens** を見つけます。
  </Step>

  <Step>
    **Create access token** を選択して以下を入力します：

    * **Label**（任意）: 後でトークンを識別できる短い名前（`CI` や `Stripe webhook` など）。最大120文字。
    * **Environment**: 呼び出し元サービスがアクセスする場所に応じて `Development` または `Production` を選択。
    * **Expires after**: 有効期間を選択 — `1 hour`、`24 hours`、`7 days`、`30 days`、`3 months`、`1 year`、または `5 years`。用途に合った最短の期間を選択してください。「無期限」オプションはありません。
  </Step>

  <Step>
    **Create** を選択します。
  </Step>
</Steps>

Replitはトークンを**一度だけ**表示します。今すぐコピーしてください — ダイアログを閉じるとトークンを再度確認する方法はありません。紛失した場合は、そのトークンを失効させて新しいものを発行してください。

表示画面では2つのコピー操作が提供されます：

* **Copy query parameter** — URLに追加するための `?project-protection-bypass=<token>` をコピーします。手軽な `curl` チェックに便利です。
* **Copy token only** — 生のトークンをコピーします。`Authorization: Bearer` ヘッダーで送信するのに適しています。

<Info>
  最初のトークンを作成すると、まだ有効になっていない場合、アプリの外部アクセスが自動的に有効になります。シールドがなければトークンにバイパスするものがありません。
</Info>

## トークンを使用する

トークンを提示する方法は2つあります：

### Authorizationヘッダー（推奨）

```bash theme={null}
curl -H "Authorization: Bearer <token>" https://your-app.replit.app/health
```

これはほぼすべての用途に適した方法です — Webhook、CIスクリプト、バックエンド間の呼び出しなど。トークンはURLをキャプチャするログには表示されず、ブラウザの履歴にも残りません。

### クエリパラメーター

```bash theme={null}
curl "https://your-app.replit.app/health?project-protection-bypass=<token>"
```

クエリパラメーター形式は、ヘッダーを設定できない場合にのみ使用してください — たとえば、URLしか受け付けないサービスの場合です。トークンを含むURLはプロキシのログ、シェルの履歴、スクリーンショットに残ることがあるため、できる限りヘッダー形式を優先してください。

## 既存のトークンを管理する

**External access tokens** セクションには、アプリのために作成したすべてのトークンが新しい順に表示されます。ラベル、環境、作成日、有効期限、失効ステータスとともに表示されます。トークンの全体の値は作成時にのみ表示されるため、トークンを区別するために各行の末尾数文字が表示されます。

表示されるのは*自分が*作成したトークンのみです。アプリのオーナーであっても、他のコラボレーターのトークンはプライベートです。

## トークンを失効させる

トークンが不要になったとき、またはトークンが漏洩した可能性がある場合はすぐに失効させてください。失効させるには：

<Steps>
  <Step>
    アプリのパブリッシュ設定で **External access tokens** セクションを開きます。
  </Step>

  <Step>
    リストからトークンを見つけてゴミ箱アイコンを選択します。
  </Step>

  <Step>
    失効を確認します。
  </Step>
</Steps>

失効は**即時かつ不可逆**です。そのトークンを使用しているトラフィックは数秒以内に拒否されます。再度アクセスが必要な場合は、新しいトークンを発行してください。

失効させられるのは自分が作成したトークンのみです。ワークスペースからコラボレーターを削除すると、そのアプリのために作成したトークンは自動的に失効します。

## トークンの安全な管理

外部アクセストークンはクレデンシャルです。APIキーやパスワードと同じ注意を払って扱ってください。

### すべきこと

* **トークンをシークレットマネージャーに保存する** — GitHub Actionsのシークレット、CIベンダーのVault、クラウドプロバイダーのシークレットストア、またはパスワードマネージャー。リポジトリにコミットしないでください。
* **できるだけ短い有効期間を使用する**。一時的な連携には7日間のトークンが5年間のトークンよりも安全です。
* **すべてのトークンにラベルを付ける**。将来の自分がそのトークンの用途と、まだ使用中かどうかを把握できるようにします。ラベルのないトークンは最初に漏洩し、最後に失効させられます。
* **コンシューマーごとに別のトークンを発行する**。CIジョブごとに1つ、Webhookソースごとに1つ、アップタイムチェックごとに1つ。何かが侵害された場合、またはベンダーが不要になった場合は、そのトークン1つだけを失効させます。
* **クエリパラメーターよりも `Authorization` ヘッダーを優先する**。URLのログ、ブラウザの履歴、またはRefererヘッダーを通じてトークンが漏洩しないようにします。
* **すぐに失効させる**。ログの漏洩、パブリックリポジトリへのコミット、画面共有、退職した従業員のノートパソコンなど、トークンが露出した可能性がある場合はすぐに失効させてください。失効はすぐに有効になります。その後、新しいトークンを発行してください。

### してはいけないこと

* **チームメートやサービス間でトークンを共有しない**。2つのシステムが1つのトークンを共有すると、一方を壊さずにもう一方を失効させることができません。
* **チャット、メール、スクリーンショット、またはIssueトラッカーにトークンを貼り付けない**。これらのチャンネルはアーカイブされ、インデックスされ、予測できない方法で共有されます。
* **クライアントサイドのコードにトークンを埋め込まない** — ブラウザアプリ、モバイルアプリ、デスクトップバイナリ。ユーザーのデバイスに配布されるものはすべてパブリックと見なしてください。
* **ブラウザセッションにトークンを頼らない**。トークンはAPIコール向けであり、ブラウザタブでSPAを読み込むためのものではありません。そのためには通常のReplitサインインを使用してください。
* **デフォルトで5年間の有効期限を選ばない**。コンシューマーが実際に必要なアクセス期間に合わせた有効期限にしてください。

## トラブルシューティング

<Accordion title="Productionトークンが突然機能しなくなった">
  ProductionトークンはPublishされた特定のDeploymentに紐付けられています。アプリを再パブリッシュした場合 — たとえば、Deploymentタイプを変更したり、Deploymentを削除して再作成した場合 — 既存のProductionトークンは無効になります。新しいDeploymentの設定から新しいトークンを発行してください。
</Accordion>

<Accordion title="トークンは `curl` では機能するのに、ブラウザにはサインインページが表示される">
  外部アクセストークンはAPIトラフィック向けであり、ブラウザセッション向けではありません。シングルページアプリがブラウザで読み込まれると、最初のHTMLリクエストはクエリパラメーターでトークンを含めることができますが、JavaScriptバンドル、CSS、APIコールのフォローアップリクエストにはトークンが含まれず拒否されます。アプリをインタラクティブに閲覧するには、Replitに通常どおりサインインしてください。
</Accordion>

<Accordion title="トークンを紛失した — 再度確認できますか？">
  いいえ。Replitは作成時に一度だけトークンを表示します。リスト表示にはメタデータ（ラベル、環境、有効期限、末尾数文字）が表示されますが、全体のトークン値は表示されません。紛失した場合は、そのトークンを失効させて新しいものを作成してください。
</Accordion>

## 次のステップ

* [Private Deployments](/references/publishing/private-deployments):
  これらのトークンがバイパスする基本的なアクセスコントロール機能。
* [Replit App Access Management](/teams/identity-and-access-management/repl-access-management):
  プライベートアプリにサインインできるReplitユーザーを管理します。
