3ステップで利用開始
APIキーの取得から最初の認証済みリクエストまで5分以内。
アカウントを作成し、開発者コンソールでOAuthクライアントを登録すると、client_id と client_secret が発行されます。
# Developer console
https://uniauth.id/account/developer
# Or via Admin API
POST /api/admin/oauth-clients
{
"name": "My App",
"redirect_uris": ["https://app.example/cb"]
}トークンエンドポイントを使用して、認可コードをアクセストークンとIDトークンに交換します。
curl -X POST https://uniauth.id/api/oauth/token \
-H "Content-Type: application/x-www-form-urlencoded" \
-d "grant_type=authorization_code" \
-d "code=AUTH_CODE" \
-d "client_id=YOUR_CLIENT_ID" \
-d "client_secret=YOUR_SECRET" \
-d "redirect_uri=https://app.example/cb" \
-d "code_verifier=PKCE_VERIFIER"トークンエンドポイントはアクセストークン、IDトークン、リフレッシュトークンを返します。アクセストークンを使用して保護されたエンドポイントを呼び出します。
{
"access_token": "eyJhbGci...",
"token_type": "Bearer",
"expires_in": 3600,
"refresh_token": "dGhpcyBpcyBh...",
"id_token": "eyJhbGci...",
"scope": "openid profile email"
}カテゴリ別APIエンドポイント
32のエンドポイントを6つのグループに分類。すべてのエンドポイントでレート制限を適用し、Content-Typeを検証し、一貫したエラーオブジェクトを返します。
認証
6件のエンドポイント/api/auth/loginメールアドレスとパスワードでユーザーを認証します。セッショントークンを返し、有効な場合は2FAを起動します。
/api/auth/registerメールアドレス、パスワード、任意のプロフィール項目で新しいユーザーアカウントを作成します。
/api/auth/logout現在のセッションを終了し、トークンを失効させ、OAuthクライアントのバックチャネル/フロントチャネルログアウトを起動します。
/api/auth/forgot-passwordSHA-256でハッシュ化された有効期限付きトークンを含むパスワードリセットメールを送信します。
/api/auth/reset-passwordforgot-passwordで取得したトークンでパスワードをリセットします。パスワード履歴と強度チェックを適用します。
/api/auth/verify-email登録時に送信された確認トークンでメールアドレスの所有を確認します。
OAuth 2.0 / OIDC
6件のエンドポイント/api/oauth/authorizePKCE付きOAuth 2.0認可コードフローを開始します。ログイン画面、続いて同意画面にリダイレクトします。
/api/oauth/token認可コードをトークンに交換し、トークンの更新やdevice/client credentialsグラントを処理します。
/api/oauth/userinfo認証済みユーザーのOIDCクレームを返します。OIDC Coreセクション5.3.1に従いGETとPOSTをサポートします。
/api/oauth/revokeアクセストークンまたはリフレッシュトークンを失効させます。token_type_hintパラメータをサポートします。
/api/oauth/introspectトークンを検査して有効状態、スコープ、メタデータを確認します(RFC 7662)。
/.well-known/openid-configurationすべてのエンドポイント、サポートされるスコープ、クレーム、アルゴリズムを記載したOIDCディスカバリードキュメント。
ユーザー管理
4件のエンドポイント/api/user/profileOIDC標準クレームと設定を含む、認証済みユーザーの完全なプロフィールを取得します。
/api/user/profile表示名、自己紹介、ロケール、SNSリンク、住所などのプロフィール項目を更新します。
/api/user/sessions認証済みユーザーのアクティブなセッションを、デバイス情報と最終アクティビティとともに一覧表示します。
/api/user/sessionsIDで特定のセッションを、または他のすべてのセッションを失効させます(パスワード変更時の無効化)。
組織/チーム
8件のエンドポイント/api/user/organizations組織をセルフサービスで作成します。作成者がオーナーになります(所有できる組織は最大10)。teamティアで開始します。
/api/org/{id}/users組織のメンバーとロール(owner/admin/member)を一覧・管理します。teamティアでは25席の上限があります(超過時はHTTP 402)。
/api/org/{id}/invitationsメールでメンバーを招待し、トークンで承諾します。定員は招待時と承諾時の両方で適用されます。
/api/org/{id}/groups組織のグループとメンバーを作成・管理します。グループ名はOIDCのgroupsクレームに含まれます。
/api/org/{id}/clients/{cid}/scim-token組織のクライアントごとのSCIMトークンを発行またはローテーションします。enterpriseティア——それ以外では402 upgrade_requiredを返します。
/api/org/{id}/domains組織のカスタムドメインを追加・検証します。enterpriseティア——ドメイン単位のSSOとキャプチャを制御します。
/api/org/{id}/saml-idpsインバウンドSSOを設定します:SAML SPおよびOIDCフェデレーションIdP(/federated-idpsも)。enterpriseティア。
/api/org/{id}/billing組織単位のStripe請求:サブスクリプション状況、席数、チェックアウト。各組織は独立した顧客で、席単位で課金されます。
SCIM 2.0プロビジョニング
4件のエンドポイント/api/scim/v2/UsersSCIMフィルター構文でユーザーを一覧・検索します。ページネーションと属性の絞り込みをサポートします。
/api/scim/v2/UsersSCIM経由で新しいユーザーをプロビジョニングします。SCIMユーザーリソーススキーマをUniAuthのusersテーブルにマッピングします。
/api/scim/v2/Groupsグループを一覧・検索します。メンバー参照を含み、フィルタークエリをサポートします。
/api/scim/v2/Bulk複数のSCIM操作を1つのリクエストで実行します。1バッチあたり最大100操作。
管理
4件のエンドポイント/api/admin/usersページネーション、検索、ロールフィルター、並べ替えに対応した全ユーザー一覧。管理者またはモデレーターのロールが必要です。
/api/admin/analyticsプラットフォーム分析を取得します:DAU/WAU/MAU、ログイン傾向、2FA導入率、認証方法の内訳。
/api/admin/audit-events改ざん防止された監査証跡を照会します。カテゴリ、実行者、対象、期間、イベントタイプで絞り込めます。
/api/admin/webhooksイベントサブスクリプションとHMAC-SHA256署名シークレットを備えたWebhookエンドポイントを登録します。
APIの認証方法
エンドポイントとユースケースに応じた、APIリクエストの4つの認証方法。
Authorizationヘッダーでアクセストークンを渡します。userinfo、トークンイントロスペクション、クライアント間API呼び出しなど、OAuthで保護されたエンドポイントで使用します。
GET /api/oauth/userinfo
Authorization: Bearer eyJhbGciOiJIUzI1NiIs...
Accept: application/jsonファーストパーティのリクエストは、ログイン後に設定されるHttpOnly・Secure・SameSite=LaxのCookieを使用します。ユーザー向けページとアカウント/管理APIで使用します。
GET /api/user/profile
Cookie: auth_token=eyJhbGci...
# HttpOnly — not accessible via JS
# SameSite=Lax — CSRF protectionDPoP(RFC 9449)はトークンを特定のクライアントキーに紐付けます。DPoP証明JWTをアクセストークンとともに送信します。トークンの盗難とリプレイを防ぎます。
GET /api/oauth/userinfo
Authorization: DPoP eyJhbGci...
DPoP: eyJ0eXAiOiJkcG9wK2p3dCIs...
# Proof JWT includes htm, htu, iat, jtiSCIMプロビジョニングエンドポイントは、OAuthクライアントごとの専用SCIMトークンで認証します。トークンはSHA-256ハッシュとして保存され、組織単位にスコープされます。
GET /api/scim/v2/Users
Authorization: Bearer scim_token_abc123...
Content-Type: application/scim+json公式クライアントライブラリ
PKCE、トークンライフサイクル、ログアウトを組み込んだJavaScriptとReact向けの型付きSDK。
JavaScript / TypeScript SDK
@uniauth/js
PKCE、OIDCディスカバリー、トークンの自動更新、型付きエラー、失効を伴うログアウトを備えたVanilla JSクライアント。Node.jsとブラウザで動作します。
npm install @uniauth/jsReact SDK
@uniauth/react
Reactのプロバイダー、フック、既製コンポーネント:UniAuthProvider、useUser、LoginButton、LogoutButton、ProtectedRoute、UserProfile。
npm install @uniauth/reactエンドポイントごとのレート制限
プラットフォーム保護のため、すべてのエンドポイントにレート制限があります。制限は15分のスライディングウィンドウでリセットされます。
POST /api/auth/loginPOST /api/auth/registerPOST /api/auth/forgot-passwordPOST /api/auth/verify-*POST /api/scim/v2/Bulkその他すべてのエンドポイントレート制限ヘッダー(X-RateLimit-Limit, X-RateLimit-Remaining, Retry-After)はすべてのレスポンスに含まれます。 Redisが設定されている場合、制限はすべてのサーバーインスタンスに適用されます。