メインコンテンツへスキップ
Turnint AI のダッシュボードをマルチテナントシステムにホワイトラベルとして組み込むための仕組みです。エンドユーザーは Turnint AI のログイン画面を経由せず、シームレスにダッシュボードへアクセスできます。

フロー概要

  1. あなたのサーバーから Partner API キーを使ってセッション作成エンドポイントを呼び出します。
  2. Turnint AI はワンタイム認証コード付きのログイン URL を返します。
  3. ユーザーのブラウザをそのログイン URL にリダイレクトします。
  4. ダッシュボードが認証コードを自動的に検証し、セッションを発行します。
  5. ユーザーはログイン画面を経由せず、ダッシュボードにアクセスできます。

前提条件

  • Partner API キー(ptn_sk_xxxx)が発行済みであること

API リファレンス

セッション作成

POST /partner/v1/auth/sessions
Authorization: Bearer ptn_sk_xxxxxxxx
Content-Type: application/json

リクエストボディ

フィールド必須説明
namespacestringはいテナントを識別する一意の文字列(1〜100文字)
rolestringはいユーザーのロール(admin または member
ttlSecondsnumberいいえセッションの有効期間(秒)。60〜86400。省略時はパートナーのデフォルト値

リクエスト例

{
  "namespace": "tenant-abc",
  "role": "admin",
  "ttlSeconds": 3600
}

レスポンス

{
  "loginUrl": "https://dashboard.turnint.ai/partner-login?code=ptn_ac_xxxxxxxx",
  "workspaceId": "ws_xxxxxxxx",
  "expiresAt": "2026-03-10T13:00:00.000Z"
}
フィールド説明
loginUrlstringユーザーをリダイレクトさせるログイン URL
workspaceIdstring作成または紐付けられたワークスペースの ID
expiresAtstringセッションの有効期限(ISO 8601)

セッション無効化

指定した namespace のすべてのセッションを無効化します。
DELETE /partner/v1/auth/sessions
Authorization: Bearer ptn_sk_xxxxxxxx
Content-Type: application/json

リクエストボディ

フィールド必須説明
namespacestringはい無効化対象の namespace

レスポンス

{
  "revokedCount": 3
}

実装例

Node.js / TypeScript

const response = await fetch("https://api.turnint.ai/partner/v1/auth/sessions", {
  method: "POST",
  headers: {
    Authorization: `Bearer ${PARTNER_API_KEY}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    namespace: "tenant-abc",
    role: "admin",
  }),
});

const { loginUrl } = await response.json();

// ユーザーのブラウザをリダイレクト
res.redirect(loginUrl);

cURL

curl -X POST https://api.turnint.ai/partner/v1/auth/sessions \
  -H "Authorization: Bearer ptn_sk_xxxxxxxx" \
  -H "Content-Type: application/json" \
  -d '{"namespace": "tenant-abc", "role": "member"}'

namespace とワークスペース

namespace はパートナーのテナントと Turnint AI のワークスペースを紐付けるキーです。
  • 同じ namespace で複数回セッションを作成しても、同一のワークスペースが使用されます。
  • 新しい namespace を指定すると、自動的に新しいワークスペースが作成されます。

セキュリティ

  • 認証コードはワンタイム — 1 回使用されると即座に無効化されます。
  • 認証コードの有効期限は 5 分 — 発行後 5 分以内にリダイレクトを完了してください。
  • ロール制限 — パートナーに許可されたロールのみ指定可能です。許可されていないロールを指定すると 400 Bad Request が返されます。

エラーレスポンス

ステータスコード説明
400リクエストが不正(バリデーションエラー、許可されていないロール)
401API キーが無効、またはパートナーが無効
500サーバー内部エラー