アプリケーションを作成

POST /v1/applications · 権限 applications:write

呼び出し元のキーの環境に、アプリケーション(OAuth/OIDC クライアント)を作成します。key、name、app_type、party は必須です。その他のフィールドには、アプリケーションの種類から導かれる安全なデフォルト値が設定されます。レスポンスには ETag が含まれます。更新または削除の際は、これを If-Match として送信してください。この操作ではクライアントシークレットは作成されません。シークレットとキーは、アプリケーション認証情報のエンドポイントで管理します。

リクエスト

本文(application/json)。定義されていないフィールドは拒否されます。必須なのは key、name、app_type、party のみです。

フィールド 型 必須 説明
key string はい 安定した設定キー。^[a-z0-9_-]{1,64}$ に一致し、環境ごとに一意です。作成時に必須で、その後は変更できません。
name string はい 表示名。1〜100 文字です。
app_type string はい web、spa、native、m2m、device、management のいずれかです。作成時に必須で、その後は変更できません。
party string はい first_party または third_party です。作成時に必須です。変更できるのは first_party から third_party への一方向のみです。
owner_org_id string or null いいえ 所有組織の org_… ID です。m2m アプリケーションのみに使用できます。変更できません。
status string いいえ active または suspended です。停止中のアプリケーションは新しいトークンを取得できません。
allowed_web_origins string[] いいえ 許可する CORS オリジン(https://host[:port])です。最大 20 件で、ワイルドカードは使用できません。
organization_usage string いいえ deny、allow、require のいずれかです。organization 認可パラメータ(org_… ID または組織のスラッグ)を制御します。deny は拒否し、allow は任意、require は必須にします。トークンに org_id が含まれるのは、ユーザーのメンバーシップが検証された後のみです。
org_access_mode string いいえ 組織サインインのアクセスモードです。all_organizations(デフォルト。すべての組織のすべてのメンバー)、enabled_organizations(アプリケーションが有効な組織のみ)、assigned_only(さらに割り当て済みのメンバーシップまたはディレクトリグループのみ)から選択します。詳しくは 組織アプリケーション を参照してください。
registration_mode string or null いいえ open、invite_only、closed のいずれかです。空の場合は環境の設定を継承します。
registration_source string いいえ 作成時は dashboard または management_api です(デフォルトは management_api)。変更できません。レスポンスには dcr または cimd も表示される場合があります。
verification_status string いいえ verified または unverified です。
security_profile string いいえ baseline(現時点で設定可能な唯一のプロファイル)です。
token_endpoint_auth_method string いいえ private_key_jwt、client_secret_basic、client_secret_post、none のいずれかです。app_type で許可されている必要があります。
grant_types string[] いいえ 許可するグラントタイプです。app_type が許可する範囲の部分集合である必要があります。
default_api_id string or null いいえ リクエストに resource がない場合に使用する API の api_… ID です。
require_par boolean いいえ プッシュ型認可リクエストを必須にします。
require_state boolean いいえ state を必須にします。
require_nonce boolean いいえ nonce を必須にします。
pkce_required boolean いいえ PKCE を必須にします。無効にできるのは、機密クライアントの Web アプリケーションのみです。PKCE がない場合、認可コードインジェクションに対する防御は nonce だけになるため、開発環境以外では require_nonce を有効のままにしてください(無効にすると /require_nonce で validation_failed になります)。
skip_consent boolean いいえ 同意画面をスキップします。ファーストパーティのアプリケーションのみ対象です。
token_binding_policy string いいえ none または dpop_required です。
login_host string or null いいえ 環境のログインホストのいずれか(小文字の DNS 名)です。
default_max_age_s integer or null いいえ デフォルトの max_age(秒)です。
min_acr string or null いいえ 最小認証保証レベルです。urn:idp:acr:1fa、urn:idp:acr:mfa、urn:idp:acr:phr のいずれかです。
access_token_lifetime_s integer or null いいえ アクセストークンの有効期間です。60〜86400 秒です。
refresh_idle_s integer or null いいえ リフレッシュトークンのアイドル有効期間(秒)です。refresh_absolute_s を超えることはできません。
refresh_absolute_s integer or null いいえ リフレッシュトークンの絶対有効期間(秒)です。
refresh_reuse_interval_s integer いいえ リフレッシュトークンの再利用可能期間です。0〜30 秒です(デフォルトは 5)。
backchannel_logout_uri string or null いいえ バックチャネルログアウトの URI です(https)。
frontchannel_logout_uri string or null いいえ フロントチャネルログアウトの URI です(https)。
frontchannel_logout_session_required boolean いいえ フロントチャネルログアウトの URI に iss と sid を追加します。環境のフロントチャネルログアウト設定が無効なときに true にすると 422 が返されます。デフォルトは false です。
initiate_login_uri string いいえ OIDC ログイン開始 URI(OpenID Connect Core 1.0 §4)です。IdP 起点の SAML サインイン後、ブラウザは iss を付けてこの URI に送られ、アプリケーションは state と PKCE を使って独自の認可コードフローを開始します。小文字の DNS ホストを持つ絶対 https URL で、フラグメントやユーザー情報を含めることはできず、2048 バイト以内である必要があります。m2m および management アプリケーションでは使用できません。この URI を持つアプリケーションのみ、IdP 起点の対象になれます。
id_token_org_claims boolean いいえ true(デフォルト)の場合、組織サインインの ID トークンに org_id、org_slug、org_roles が含まれます。false の場合、ID トークンに組織のクレームは含まれません。アクセストークンには影響せず、ID トークンに権限が含まれることはありません。
policy_uri string or null いいえ プライバシーポリシーの URI です(https)。同意画面に表示されます。
tos_uri string or null いいえ 利用規約の URI です(https)。
client_uri string or null いいえ アプリケーションのホームページの URI です(https)。
jwks object or null いいえ インラインの JWK Set({"keys":[…]})です。公開鍵は 1〜5 件、最大 16 KiB です。秘密鍵のメンバーは拒否されます。jwks_uri と同時に指定できません。
jwks_uri string or null いいえ リモートの JWK Set の URI です(https)。jwks と同時に指定できません。
software_id string or null いいえ DCR アプリケーションのみ対象です。
software_version string or null いいえ DCR アプリケーションのみ対象です。
m2m_token_lifetime_s integer or null いいえ m2m アプリケーションのトークンの有効期間です。60〜86400 秒です。
redirect_uris string[] いいえ 許可するリダイレクト URI です。最大 50 件で、m2m および management では空である必要があります。
post_logout_redirect_uris string[] いいえ 許可するログアウト後リダイレクト URI です。最大 50 件です。
connection_ids string[] いいえ アプリケーションで有効な接続(conn_…)です。順序付きで、この順序がボタンの表示順になります。最大 100 件です。
allowed_first_factors string[] いいえ アプリケーションで許可する第 1 要素です。password、passkey、email_otp、magic_link、sms_otp、social、enterprise から選択し、重複は不可です。この順序で返されます。空リスト(デフォルト)の場合、アプリケーションによる制限はありません。この集合は環境の allowed_first_factors と共通部分を取ります。残る方式がない場合は 422 policy_conflict になります。
allowed_response_modes string[] いいえ 認可リクエストおよびプッシュ型認可リクエストで使用できる response_mode の値です。query、form_post のいずれか一方または両方を指定し、重複は不可です。この順序で返されます。デフォルトは ["query"] です。フォームポストで認可レスポンスを受け取るアプリケーションは、form_post を明示的に追加してください。リストにない response_mode の認可リクエストは拒否されます。response_mode を省略したリクエストは query を使用します。空のリストを指定すると 422 が返されます。JARM モード(jwt、query.jwt、fragment.jwt、form_post.jwt)は未対応です。動的クライアント登録またはクライアント ID メタデータドキュメントで登録されたアプリケーションは ["query"] になります。

レスポンス

アプリケーションと ETag ヘッダーを含む 201 Created を返します。

{
  "id": "app_6f8d0cjgbmf0gtn2rg6pscp3cg",
  "client_id": "app_6f8d0cjgbmf0gtn2rg6pscp3cg",
  "version": 1,
  "created_at": "2026-10-05T10:00:01Z",
  "updated_at": "2026-10-05T10:00:01Z",
  "key": "portal",
  "name": "Portal",
  "app_type": "web",
  "party": "first_party",
  "status": "active",
  "redirect_uris": ["https://portal.example.com/cb"],
  "...": "all other fields from the field reference"
}

エラー

HTTP code 発生条件
401 unauthenticated キーがない、無効、または取り消されています。
403 insufficient_permissions キーに必要な権限がありません。
409 conflict この key のアプリケーションはすでに存在します。
422 validation_failed フィールドが無効です。errors[].pointer が該当箇所を示します(例: /redirect_uris/0)。
422 policy_conflict allowed_first_factors に、環境の第 1 要素の集合と共通する方式がありません。
400 unknown_field 本文にスキーマに含まれないフィールドがあります。
403 quota_exceeded アプリケーションのプラン上限に達しています。

例

curl -X POST https://api.eu.keenauth.com/v1/applications \
  -H "Authorization: Bearer $KEENAUTH_SECRET_KEY" \
  -H "Content-Type: application/json" \
  -d '{"key":"portal","name":"Portal","app_type":"web","party":"first_party","redirect_uris":["https://portal.example.com/cb"]}'

レスポンスフィールド

id と client_id はアプリケーション ID(app_…)です。version は ETag としても返されます。created_at、updated_at、last_token_issued_at、last_token_asn は読み取り専用です。上記の書き込み可能なフィールドはすべて返されます。クライアントシークレットはこのリソースに含まれません。