記事一覧 プロジェクト集 検索 このサイトについて
RSS English

アクセス制御付き IIIF デジタルアーカイブの構築 — Cloudflare Access で守る Cantaloupe + S3 + Elasticsearch + Next.js

本記事は生成 AI と共同で執筆しています。事実関係は可能な範囲で公式ドキュメント等と照合していますが、誤りが含まれている可能性があります。重要な判断を行う前にご自身でも一次情報をご確認ください。 背景:「一般公開できない画像を限定配信したい」 歴史資料のデジタルアーカイブには、著作権・肖像権・所蔵者契約・倫理的配慮などの理由で一般公開できない画像が一定割合含まれるのが普通です。一方で、 研究者・編集スタッフの内部閲覧 限定された協力機関への提供 校閲・選定作業 といった用途では、「公開はしないが、IIIF の利便性は使いたい」 というニーズがあります。具体的には: 高解像度ビューア(OpenSeadragon / Mirador)でディテール確認 IIIF Presentation API の manifest を介した IIIF 互換ツール(認証済みセッション内)での閲覧 永続的な URL での参照・引用(ホスト名・経路の継続を前提) 注意:本記事の構成は 同一組織内・認証済みブラウザセッション での IIIF 利用を前提としています。外部ホストからの非インタラクティブな相互運用(クローラ・収集ボット等)には IIIF Auth API 2.0 の実装が別途必要です(応用:IIIF Auth API 2.0 への拡張 を参照)。 公開コーパスなら CloudFront + S3 で済むのですが、「アクセス制御」と「IIIF」を両立させる構成には少し工夫が要ります。本記事はその実装記録です。 構成 ┌──────────────┐ ユーザー ──TLS──▶ Cloudflare │ │ ┌────────┐ │ │ │ Access │── 認証ゲート(Email OTP / SSO) │ └────────┘ │ │ │ │ │ ┌────────┐ │ │ │Tunnel │ │ │ └────┬───┘ │ └───────│───────┘ │ outbound 接続 ┌───────┴────────────────────────────┐ │ Origin(VPS / 学術クラウド等) │ │ ┌────────────┐ ┌──────────────┐ │ │ │ cloudflared│──│ Next.js (web)│──┐ │ └────────────┘ └──────────────┘ │ │ │ │ │ │ │ ▼ │ │ │ ┌──────────────┐ │ │ │ │Elasticsearch │ │ │ │ └──────────────┘ │ │ │ ▲ │ │ └─path:/iiif───┐ │ │ ┌───────▼──────┐ │ │ │ Cantaloupe │────┼─→ S3 互換 │ └──────────────┘ │ ストレージ └────────────────────────────────────┘ 役割分担: ...