n8nのCredentialsと認証を理解する|Secretsを安全に扱う基本

「n8nのCredentialsと認証を理解する|Secretsを安全に扱う基本」の内容を表す技術イラスト

n8nで外部サービスへ接続すると、API key、password、access tokenなどの認証情報が必要になります。

ここで避けたいのが、secretをHTTP header、Expression、Code、Sticky Noteへ直接書くことです。Workflowが動いても、画面共有、execution data、JSON export、Git管理などを通じてsecretが漏れる経路を増やしてしまいます。

Workflowの処理設定
+
Credentialsに保存した認証情報
→ 実行時に組み合わせて外部サービスへ接続

n8nのCredentialsは、認証情報をWorkflowの処理内容から分離し、安全に保存・再利用する仕組みです。

目次

今日の到達点

  • Credentialsとsecretの役割を説明できる
  • API key、Bearer token、Basic Auth、OAuth2の違いを整理できる
  • nodeへsecretを直書きしない理由を説明できる
  • credentialの再利用、共有、移行時の注意点を理解できる
  • Cloudとself-hosted、planによる管理方法の違いを把握できる

Credentialとsecretは同じではない

secretは、第三者に知られてはいけない値そのものです。

  • API key
  • password
  • Bearer token
  • OAuthのclient secret、access token、refresh token
  • private key

credentialは、接続に必要な値と認証方式をn8n内でまとめた設定です。

たとえば「headerのどの名前でAPI keyを送るか」「OAuth2のauthorization URLやscopeは何か」といった構造も含みます。

n8n公式ドキュメントでは、Credentialsは外部APIやdatabaseへ接続するための認証情報として説明されています。保存されたcredentialsはdatabase内で暗号化され、通常のnode設定とは分離されます。

なぜnodeへ直書きしてはいけないのか

HTTP Request nodeのHeadersへ実際のtokenを固定値で入力しても、requestは送れます。しかし、secretがWorkflow定義の一部になります。

Authorization: Bearer <実際の値をここへ書かない>

Workflow内の値は、次の場所へ現れる可能性があります。

  • node設定画面やスクリーンショット
  • コピーしたnode情報
  • Workflow JSON
  • Gitやバックアップ
  • executionのINPUT/OUTPUT
  • エラー表示やデバッグ用データ
  • 記事、チャット、作業票

Credentialsを使えば、node側には「どのcredentialを使うか」という参照を持たせ、secret本体を処理設定から切り離せます。

ただし、Credentialsを使えば無条件に安全という意味ではありません。権限が広すぎるtoken、不要な共有、公開端末での管理などは別途対策が必要です。

主な認証方式

認証方式はn8nが自由に決めるものではありません。接続先APIの仕様に合わせます。

API key

API keyは、サービスが発行した文字列で利用者やapplicationを識別する方式です。送信場所はAPIによって異なります。

Header:
X-API-Key = <secret>
Query:
api_key = <secret>

query parameterはURLやアクセスログ、履歴などへ残る可能性があります。APIがheader方式を提供している場合は、通常はそちらを選びます。最終的には提供元ドキュメントの指定に従ってください。

Bearer token

Bearer tokenは、通常Authorization headerへ送ります。

Authorization: Bearer <token>

n8nのHTTP Request credentialsにはBearer authがあり、tokenをcredentialへ保存できます。

Bearer tokenを持つ者は、そのtokenに許可された操作を実行できます。権限、scope、有効期限を必要最小限にすることが重要です。

Basic Auth

Basic Authはusernameとpasswordを使う方式です。HTTP RequestのGeneric Credential Typeでは、Basic auth credentialへ両方を保存します。

Basic Authのheader表現は暗号化ではありません。通信経路を保護するためHTTPSを使用し、可能なら個人用passwordではなく、連携専用accountや限定権限の値を使います。

OAuth2

OAuth2は、利用者のpasswordをn8nへ直接渡す代わりに、認可フローを通じてaccess tokenを取得する仕組みです。

Authorization Codeでは、利用者がサービス側で同意し、redirect URLを経由して認可を完了します。Client Credentialsは、利用者本人の代理ではなくapplication自身のresourceへアクセスする用途で使われます。

n8nのOAuth2 credentialでは、grant typeに応じて次のような情報を設定します。

  • authorization URL
  • access token URL
  • client ID
  • client secret
  • scope
  • redirect URL

必要な値やscopeは、接続先サービスの公式ドキュメントで確認します。

PredefinedとGeneric Credential Type

HTTP Request nodeでは、主に次の2種類を選べます。

種類用途
Predefined Credential Typen8nが対応するサービス用credentialを利用する
Generic Credential TypeBasic、Header、Bearer、OAuth2などを自分で構成する

n8n公式は、利用できる場合はPredefined Credential Typeを推奨しています。必要な項目が整理され、同じサービスの専用nodeで作ったcredentialをHTTP Requestでも利用できる場合があります。

専用typeがない場合はGenericを使用します。

「API keyだから必ずHeader Auth」と決めつけず、提供元が要求するheader名、prefix、query名、OAuth flowを確認してください。

credentialを作成してnodeから参照する

基本の流れは次のとおりです。

接続先の認証仕様を確認
→ credential typeを選ぶ
→ credential画面へsecretを入力して保存
→ nodeのAuthenticationでcredentialを選択
→ 接続をテスト

credentialは画面上のCreateから作成できるほか、nodeのcredential選択欄からCreate Newを選んで作成できます。保存時には、対応するcredentialで接続テストが行われます。

名前はサービス、環境、用途が分かるようにします。

Example API - development - read only

credential名を初期名のまま放置すると、数が増えたときに誤選択しやすくなります。

一方、credential名はWorkflow JSONに含まれるため、メールアドレス、顧客名、secretの一部などの機密情報を名前へ入れないようにします。

credentialの再利用とrotation

複数nodeから同じcredentialを選択すれば、secretを各nodeへ重複入力せずに再利用できます。

Credential A
├→ HTTP Request 1
├→ HTTP Request 2
└→ サービス専用node

API keyを更新する場合も、各nodeのheaderを書き換えるのではなく、credentialを更新できます。この一元化が秘密情報を分離する大きな利点です。

一方、開発、検証、本番で同じcredentialを使い回すと、テスト操作が本番データへ影響する可能性があります。環境や用途ごとにcredentialと権限を分けます。

credentialを更新したときは、影響を受けるWorkflowを把握し、安全な範囲で接続を再確認します。

credentialの共有は権限付与である

対応planでは、credentialをほかの利用者やprojectへ共有できます。

共有された利用者はsecretの詳細を表示・編集できなくても、自分のWorkflowからそのcredentialを利用できる場合があります。

つまり、「値が見えない」と「権限がない」は同じではありません。

  • credentialで実行できる操作
  • 操作対象となるresource
  • 共有相手
  • project membership
  • tokenに設定されたscope

これらを確認して共有します。

2026年9月時点の公式ドキュメントでは、credential sharingはn8n Cloudの全planと、self-hostedのBusiness/Enterpriseで利用できます。利用環境や権限によって表示される機能は異なります。

HTTP Requestでcredentialを使う場合、対応credentialにはAllowed HTTP Request Domainsを設定できます。Specific Domainsで送信先を限定すると、本来と異なるURLへcredentialを送る誤用を減らせます。

Workflowをexportするときの注意

n8nのWorkflow JSONにはcredential名とIDが含まれます。ID自体はsecretではありませんが、名前に顧客名やaccount情報が含まれていれば内部情報が公開されます。

さらに、cURLからHTTP Request nodeへ取り込んだ場合、認証headerがnode parameterへ含まれている可能性があります。

共有前には次を確認します。

  • credential名を匿名化する必要がないか
  • Headers、Query Parameters、Bodyにsecretがないか
  • test dataやpinned dataにsecretがないか
  • Sticky NoteやCodeにsecretがないか
  • 実URL、account IDなどの非公開情報がないか

「credentialの入力欄が伏字だから、Workflow JSON全体も安全」とは判断しません。exportしたファイル自体を確認します。

Cloudとself-hostedの違い

n8nはcredentialsを暗号化してdatabaseへ保存します。

self-hostedでは、最初の起動時に生成されるencryption keyを使います。独自keyを環境変数N8N_ENCRYPTION_KEYで設定でき、queue modeではすべてのworkerへ同じkeyが必要です。

encryption keyを失うと保存済みcredentialsを復号できなくなる可能性があるため、安全な場所へ保管し、通常の設定ファイルや公開repositoryへ登録しません。

self-hostedでは、credential overwritesを環境変数またはfile-based configurationから渡す方法もあります。これはinstance運用者向けの設定であり、Workflow制作者がnodeへ環境変数を直接書く方法とは区別します。

External secretsは、次のような外部vaultをn8n Credentialsから参照する機能です。

  • 1Password Connect Server
  • AWS Secrets Manager
  • Azure Key Vault
  • GCP Secrets Manager
  • HashiCorp Vault
  • Infisical

2026年9月時点では、n8n Cloud Enterpriseとself-hosted Enterpriseで利用できます。

plan、n8n version、hosting形態によって利用できる機能が異なるため、「self-hostedならexternal secretsを必ず使える」とは限りません。

安全運用の最小ルール

  • secretはnode parameter、Code、Sticky Noteへ直書きしない
  • 実値を記事、チャット、Result、スクリーンショットへ残さない
  • 利用可能ならPredefined Credential Typeを優先する
  • tokenの権限、scope、有効期限を必要最小限にする
  • 開発用と本番用のcredentialを分ける
  • credential名にも機密情報を含めない
  • 共有先とproject membershipを定期的に見直す
  • 退職、漏えい、用途終了時はtokenを失効またはrotationする
  • export共有前にJSONを確認する
  • HTTPSやcertificate検証を安易に無効化しない

今日の実習で確認すること

  • Credentialsの作成場所を確認する
  • nodeのAuthenticationからcredentialを選ぶ流れを確認する
  • PredefinedとGeneric Credential Typeの違いを見る
  • API key、Basic Auth、OAuth2で表示される設定項目を比較する
  • Workflow JSONにcredential名とIDが含まれることを確認する
  • node parameterにsecret本体がないことを確認する
  • 自分用の「secret直書き禁止」ルールを記録する

実secret値は、実習画面の共有、スクリーンショット、Resultへ残しません。

まとめ

Credentialsは、secretをWorkflowの処理定義から分離し、暗号化して保存・再利用するための仕組みです。

APIの認証仕様を確認
→ 適切なcredential typeを選ぶ
→ secretをcredentialへ保存
→ nodeはcredentialを参照
→ 共有・export・rotationまで管理する

重要なのは「接続できたか」だけではありません。

誰がそのcredentialを使えるか、どのresourceへ何ができるか、どこへsecretが残り得るかまで含めて設計することで、Workflowを継続的に安全運用できます。

参考資料

参考になったらシェアしてください
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

機械設計・油圧・CAD・Python・AIなど、ものづくりに関わる技術を扱っています。工学知識を整理・構造化し、設計や自動化に再利用できる形へ変えていくことを目指しています。

目次