DAT CMS
DAT CMS は、証明書を作成・保存し、クライアントマネージャーに配布する任意のサービスです。この文書では、クライアントとサーバー間の同期契約を説明します。インストールと運用については DAT CMS サービスガイド を参照してください。
役割別エンドポイント
| 役割 | パス | 使用者 |
|---|---|---|
| 完全な証明書の取得 | GET /v1/certs?version=<n> | DAT を発行するサービス |
| 検証専用証明書の取得 | GET /v1/certs/verify-only?version=<n> | 検証と復号のみを行うサービス |
| 証明書の登録 | POST /v1/cert/{signature}/{crypto}/{propagation}/{issuance}/{ttl} | 運用者または証明書生成ジョブ |
完全な証明書と検証専用証明書の取得は、別々のトークンロールで保護できます。検証専用サービスが完全な証明書を要求しないよう、クライアントマネージャーの verifyOnly オプションを設定します。
バージョンカーソル
クライアントは、最後に適用したバージョンをサーバーに送ります。サーバーの状態が変わっていなければ、証明書を再送する必要はありません。新しい状態がある場合、応答の先頭行にバージョン、後続行に証明書が含まれます。
成功応答にバージョンだけがあり証明書がない場合、クライアントは既存の証明書と発行者を保持します。サーバーのバージョンがクライアントより低い応答は、状態を巻き戻さずエラーとして扱われます。
証明書のインポートルール
- 同じ
cidが 1 つの応答に複数回現れた場合、応答全体を拒否します。 - 新しい応答にすでに保持している
cidが含まれる場合、既存の証明書を保持します。 - すべての証明書を解析・検証してから、1 回の操作で状態を適用します。
- 成功した証明書の一部だけをインポート済みの状態に残しません。
- 現在時刻に発行可能な証明書から適切な発行者を選びます。
初回同期と手動同期
クライアントマネージャーの構築中に行う初回同期は、通常ベストエフォートです。失敗してもマネージャーは作成され、具体的な最後のエラーを保持します。起動に失敗させる必要がある場合は、エラーが呼び出し元に届くよう、ライブラリの即時同期 API を呼び出します。
自動同期を使わない環境では間隔を無効にし、必要なときに直接同期できます。自動同期を有効にした場合は、アプリケーションの終了時にマネージャーを閉じるか停止します。
ネットワークとエラー
本番環境に合わせて接続タイムアウトとリクエスト全体のタイムアウトを設定します。リダイレクトポリシーはランタイムごとに異なるため、ライブラリのドキュメントを確認してください。現在のクライアントは、CMS の non-2xx 応答を HTTP ステータスに基づく DAT_CMS_* エラーに分類し、サーバーの JSON 応答に含まれる詳細エラーコードは保持しません。
一時的なストレージ障害中でも、サーバーは最後に成功した証明書スナップショットを提供し続けることがあります。成功したスナップショットがまだない場合は DAT_STORE_UNAVAILABLE を返します。
サービスドキュメント
デプロイ、データベース、アクセストークン、ランタイム設定については DAT CMS サービスガイド へ進んでください。