アプリケーションを作成
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 は読み取り専用です。上記の書き込み可能なフィールドはすべて返されます。クライアントシークレットはこのリソースに含まれません。