メインコンテンツまでスキップ

認証方法

Re:port Flow API は appkey ヘッダ認証 と OAuth 2.0 / OpenID Connect の 2 方式をサポートします。用途に応じて選択してください。

appkey と OAuth のどちらを使う?​

自社のワークスペース1つを自動化するだけなら appkey ヘッダで十分です。外部サービスや他社ユーザーに認可させる場合は OAuth 2.0 を選びます。判断に迷ったら下表の「用途」列から近いものを探してください。

用途推奨方式
単一ワークスペースの自動化(cURL、社内バッチ)appkey ヘッダ
サーバー間連携(バックエンド → Re:port Flow)OAuth 2.0 Client Credentials
ユーザー個別の認可(Make.com、外部 SaaS、個人アプリ)OAuth 2.0 Authorization Code + PKCE

OAuth 2.0 の詳細は OAuth 2.0 認証 を参照してください。本ページでは appkey 方式を中心に説明します。

appkey 方式の仕組み​

appkey ヘッダで認証するリクエストは、以下のヘッダーを付与します:

appkey: your-application-key

APIエンドポイント​

Base URL: https://api.re-port-flow.com/v1

例:

  • 単一PDF生成: https://api.re-port-flow.com/v1/file/sync/single
  • テンプレートのパラメータ取得: https://api.re-port-flow.com/v1/file/design/parameter/{designId}

認証エラーが出たときは?​

appkey 方式の失敗は 401 と 412 の2種類です。412 は appkey ヘッダそのものが送られていないとき(または値の形式が不正なとき)、401 は形式は正しいが値が正しくないときに返ります。まずどちらのステータスかを確認してください(OAuth 2.0 のエラーは invalid_client などの RFC 6749 準拠のコードで返ります)。

認証に失敗した場合、以下のエラーが返されます:

401 Unauthorized​

{
"statusCode": 401,
"code": "INVALID_CREDENTIALS",
"message": "Invalid API key or access token.",
"error": "Unauthorized",
"details": [],
"docsUrl": "https://doc.re-port-flow.com/en/docs/guides/error-codes#invalid_credentials"
}

原因:

  • appkey ヘッダーが不正または無効

412 Precondition Failed​

{
"statusCode": 412,
"code": "AUTH_HEADER_MISSING",
"message": "Authentication header is missing. Send an `appkey` header or `Authorization: Bearer <token>`.",
"error": "Precondition Failed",
"details": [],
"docsUrl": "https://doc.re-port-flow.com/en/docs/guides/error-codes#auth_header_missing"
}

原因:

  • appkey ヘッダーが欠落、または値の形式が不正

セキュリティのベストプラクティス​

1. APIキーの安全な保管​

// ❌ 悪い例:ソースコードにハードコード
const APP_KEY = 'hardcoded-key';

// ✅ 良い例:環境変数を使用
const APP_KEY = process.env.REPORT_FLOW_APP_KEY;

2. HTTPS通信の使用​

すべてのAPIリクエストは必ずHTTPSを使用してください。HTTPでの通信は受け付けられません。

3. キーのローテーション​

定期的にAPIキーを再生成し、古いキーを無効化することを推奨します。

4. スコープの制限​

本番環境と開発環境で異なるAPIキーを使用し、環境ごとにアクセス権を分離してください。

サンプルコード​

cURL​

curl -X POST https://api.re-port-flow.com/v1/file/sync/single \
-H "appkey: your-application-key" \
-H "Content-Type: application/json" \
-d '{...}'

JavaScript​

const headers = {
'appkey': process.env.REPORT_FLOW_APP_KEY,
'Content-Type': 'application/json'
};

Python​

import os

headers = {
'appkey': os.environ['REPORT_FLOW_APP_KEY'],
'Content-Type': 'application/json'
}

OAuth 2.0 認証​

サーバー間連携や、ユーザー個別の認可が必要な場合は、appkey の代わりに OAuth 2.0 を利用できます。

  • Authorization Code + PKCE: Make.com、独自アプリ等のユーザー認可フロー
  • Client Credentials: バックエンドから Re:port Flow へのサーバー間連携

詳細は OAuth 2.0 認証 を参照してください。

次のステップ​