
# 署名鍵を一覧表示

`GET /v1/signing-keys` · 権限 `signing-keys:read`

環境の JWKS に現在公開されているトークン署名鍵を返します。`next` (公開済み、まだ署名しない)、`active` (新しいトークンに署名する)、`retired` (署名を停止。署名済みトークンを引き続き検証できるよう 7 日間公開される) です。順序は `next`、`active`、続いて `retired` (新しい順) です。JWKS から外れた鍵と、緊急ローテーションで失効した鍵は返されません。レスポンスには公開情報のみが含まれます。`kid` は RFC 7638 の JWK SHA-256 サムプリント (base64url) で、秘密鍵の素材は署名サービスの外に出ないため、どのレスポンスにも含まれません。

## リクエスト

この操作はパス、クエリ、ボディのフィールドを受け取りません。環境は認証情報から決まります。

## レスポンス

`200 OK` と `data` (鍵)、`list_metadata`。一覧は JWKS と同程度に小さくページ分割されないため、両方のカーソルは常に `null` です。`next` 鍵の `activated_at` は `null` で、`retired_at` と `removal_at` (鍵が JWKS から外れる時刻) は `retired` 鍵にのみ設定されます。

```json
{
  "data": [
    {
      "kid": "ypeBEsobvcr6wjGzmiPcTaeG7_gUfE5yuYB3ha_uSLs",
      "use": "token_signing",
      "algorithm": "RS256",
      "state": "next",
      "storage": "wrapped",
      "created_at": "2026-09-05T09:30:00.123456Z",
      "activated_at": null,
      "retired_at": null,
      "removal_at": null
    },
    {
      "kid": "PiPoFgA5WUoziU9lZOGxNIu9egCI1CxKy3PurtWcAJ0",
      "use": "token_signing",
      "algorithm": "RS256",
      "state": "active",
      "storage": "wrapped",
      "created_at": "2026-03-09T09:30:00.123456Z",
      "activated_at": "2026-09-05T09:30:00.123456Z",
      "retired_at": null,
      "removal_at": null
    },
    {
      "kid": "Ln0sA6lQeuJl7PW1NWiFpTOTogKdJBOUmXJloaJa78Y",
      "use": "token_signing",
      "algorithm": "RS256",
      "state": "retired",
      "storage": "wrapped",
      "created_at": "2025-09-10T09:30:00.123456Z",
      "activated_at": "2026-03-09T09:30:00.123456Z",
      "retired_at": "2026-09-05T09:30:00.123456Z",
      "removal_at": "2026-09-12T09:30:00.123456Z"
    }
  ],
  "list_metadata": {
    "before": null,
    "after": null
  }
}
```

## エラー

| HTTP | コード | 概要 |
|---|---|---|
| 401 | `unauthenticated` | 認証情報が見つからない、無効、または取り消されています。 |
| 403 | `insufficient_permissions` | 認証情報に必要な権限がありません。 |
| 429 | `rate_limited` | レート制限を超えました。`Retry-After` 期間後に再試行してください。 |
| 501 | `not_implemented` | この操作はこのデプロイではまだ利用できません。再試行しても結果は変わりません。 |
| 503 | `service_unavailable` | 依存関係が一時的に利用できません。`Retry-After` 期間後に再試行してください。 |

## 例

```bash
curl https://api.eu.keenauth.com/v1/signing-keys \
  -H "Authorization: Bearer $KEENAUTH_SECRET_KEY"
```
