
# 組織のセッションを取り消す

`POST /v1/organizations/{org_id}/sessions:revoke` · 権限 `sessions:write`

組織のコンテキストで開始された、すべてのアクティブなセッションを、そのすべてのユーザー分取り消します。あわせて、その組織向けに発行された、またはそれらのセッションに紐づくリフレッシュトークンファミリーも取り消します。その組織向けに発行されたアクセストークンは、その時点からイントロスペクションと失効チェックで受け付けられなくなります。セキュリティインシデントの後や、組織の利用を終了する際に使用してください。単一のユーザーまたはセッションをサインアウトさせる場合は、[ユーザーのセッションを取り消す](../users/revoke-sessions.md) を使用してください。

ボディには `reason` が必要です。これは管理監査記録にのみメモとして保存されます。セッション自体は、取り消し理由 `admin` で終了します。すでに取り消されているか期限切れのセッションはカウントされないため、繰り返し呼び出しても件数ゼロで成功します。再試行を安全にするには、`Idempotency-Key` ヘッダーを送信してください。

## リクエスト

| パラメータ | 入力 | 必須 | 説明 |
|---|---|---|---|
| `org_id` | path | はい | 組織 ID。`org_` で始まります。 |

ボディ:

| フィールド | 型 | 必須 | 説明 |
|---|---|---|---|
| `reason` | string | はい | 監査ログ用のメモ。1〜256 文字で、制御文字や改行を含めないこと。 |

## レスポンス

`200 OK`。

```json
{
  "revoked_sessions": 42,
  "revoked_token_families": 57
}
```

| フィールド | 説明 |
|---|---|
| `revoked_sessions` | この呼び出しで取り消されたセッションです。 |
| `revoked_token_families` | この呼び出しで取り消されたリフレッシュトークンファミリーです。 |

## エラー

すべてのエラーは、安定した `code` を含む `application/problem+json` ボディとして返されます。

| HTTP | `code` | 発生条件 |
|---|---|---|
| 400 | `malformed_request`、`unknown_field` | ボディが有効な JSON ではないか、未知のフィールドがあります。 |
| 415 | `unsupported_media_type` | ボディが `Content-Type: application/json` なしで送信されました。 |
| 422 | `validation_failed` | `reason` が欠けているか空です（`required`）、256 文字を超えています（`too_long`）、または制御文字か改行を含んでいます（`invalid_value`）。 |
| 404 | `not_found` | 組織がこの環境に存在しません。 |
| 401 | `unauthenticated` | API キーがない、無効、または失効しています。 |
| 403 | `insufficient_permissions` | キーに `sessions:write` 権限がありません。 |
| 429 | `rate_limited` | レート制限を超えました。`Retry-After` に従ってください。 |
| 503 | `service_unavailable` | 依存先が一時的に利用できません。後で再試行してください。 |

## 例

```bash
curl -X POST https://api.eu.keenauth.com/v1/organizations/org_0a1b2c3d4e5f6g7h8j9k0m1n2p/sessions:revoke \
  -H "Authorization: Bearer $KEENAUTH_SECRET_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{"reason": "Security incident INC-1042"}'
```

CLI: `keenauth organizations sessions revoke org_0a1b2c3d4e5f6g7h8j9k0m1n2p --reason "Security incident INC-1042" --yes`
