ロールの権限を設定

PUT /fapi/v1/organizations/{org_id}/roles/{role_id}/permissions · 環境のサインインホストから呼び出し

組織ロールの権限セットを置き換えます。組織ロールに対して環境が許可している権限のみ使用できます。また、管理者は自身が保持している権限のみを付与できます。権限や API はここでは作成できません。認証済みユーザーの __Host-idp_session Cookie が必要です。Cookie がない、期限切れ、または取り消されている場合は 401 unauthenticated を返します。別オリジンのファーストパーティアプリは、代わりにフロント API アクセストークンを送信できます(Authorization: DPoP <token> と DPoP プルーフを付与します。詳細は フロント API アクセストークン を参照してください)。ユーザーは idp_roles:manage 権限を持つ組織のアクティブなメンバーである必要があります。メンバーでないユーザーには 404 not_found を返し、組織の存在は開示されません。権限のないメンバーには 403 insufficient_permissions を返します。組織ロールは環境で有効化され、そのプランに含まれている必要があります。

リクエスト

ヘッダー:

ヘッダー 必須 説明
Idp-Client はい SDK 識別子。
Origin はい 厳密に https://<sign-in host> である必要があります。
Content-Type ボディがある場合 application/json。
If-Match いいえ 最後に読み取ったロールの "<version>"。その後ロールが変更されていた場合は 412 precondition_failed を返し、何も変更されません。

org_id: 組織の識別子(org_…)。role_id: ロールの識別子(rol_…)。

ボディ:

フィールド 必須 説明
permission_ids はい 権限の識別子(perm_…)の完全なセット。最大 100 件。[] を指定するとすべて削除されます。

レスポンス

新しい ETag を含む 200 OK。ボディはロールです(組織ロールを取得 を参照)。

エラー

ステータス コード 発生条件
401 unauthenticated 有効なセッション Cookie がない。
403 origin_not_allowed Origin がない、または不正。
403 insufficient_permissions ユーザーが組織で idp_roles:manage を持っていない。
403 plan_feature_unavailable 環境のプランに組織ロールが含まれていない(feature、required_plan)。
403 org_custom_roles_disabled 環境で組織ロールが無効になっている。
403 role_not_assignable ロールまたは新しいセットが、ユーザーが保持していない権限を付与する、またはユーザー自身のメンバーシップがそのロールを持っている。
404 not_found このユーザーに対して該当する組織または組織ロールがない。環境ロール、存在しない、形式が不正、または他のユーザーの識別子も同じ応答になります。
409 organization_pending_deletion 組織が削除予定になっている。
412 precondition_failed If-Match が現在のバージョンを示していない、またはリクエストの処理中にロールが変更された。
422 permission_not_allowed 組織ロールに対してその権限は許可されていない。
422 permission_reserved 権限がプラットフォーム用に予約されている。
422 validation_failed リストが不正、または長すぎる。
503 service_unavailable 一時的に利用できない。Retry-After の後に再試行してください。

例

curl -X PUT https://example.keenauth.app/fapi/v1/organizations/org_01jbz6x8kq3m2n4p5r6s7t8v9a/roles/rol_01jbz6x8kq3m2n4p5r6s7t8v9w/permissions \
  -H "Idp-Client: my-app/1.0.0 (node/22.0.0)" \
  -H "Origin: https://example.keenauth.app" \
  -H "Content-Type: application/json" \
  -b cookies.txt \
  -d '{"permission_ids":["perm_01jbz6x8kq3m2n4p5r6s7t8v9b"]}'