ライセンス認証の仕組み

Cuerda-Feed-total は、複数のニュース配信サービスへ RSS フィードを生成・提供するためのプラグインです。 その中心には、「どの配信先に対して、どの範囲まで機能を開くか」を制御するライセンス認証の仕組みがあります。 ここでは、管理画面に表示される「ライセンス」情報の裏側で、どのような通信と判断が行われているのかを説明します。

なぜライセンス認証が必要なのか

ライセンス認証は、単に利用制限を行うためだけのものではありません。 配信先ごとに異なる仕様書や運用ルールを、事故なく運用するための「安全装置」として設計されています。

編集部や経営層にとっては、合意された配信先のみにフィードが送られていることが重要です。 一方で、開発担当者にとっては、どの配信先に対して、どこまで機能が有効になっているのかが一目で分かることが求められます。 Cuerda-Feed-total のライセンス認証は、この二つの視点を両立させるための仕組みです。

管理画面におけるライセンス情報の見え方

プラグインの管理画面には「ライセンス」というメニューが用意されており、そこでは各配信先ごとに次のような情報が一覧できます。

  • 「Yahoo!ニュース」「LINE NEWS」「SmartNews」など、配信先ごとの名称
  • 現在のライセンス状態(有効/無効/一時的なエラーなど)
  • 管理画面の配信設定で、その配信先を選択できるかどうか

この画面に表示される内容は、後述するライセンス認証の結果に基づいて自動的に更新されます。 利用者は、画面に表示される名称と状態だけを見れば、現在どの配信先に対して配信準備が整っているのかを把握できます。

ライセンス認証の基本的な流れ

Cuerda-Feed-total は、一定の間隔で cuerda.org 上のライセンス管理サーバーにアクセスし、 配信先ごとの利用可否を確認します。処理の流れは概ね次のとおりです。

  1. WordPress 側で、現在のサイトのドメイン情報など、ライセンス判定に必要な最小限の情報をまとめます。
  2. プラグインは HTTPS による GET リクエストで、cuerda.org のライセンス管理用エンドポイントへアクセスします。
  3. サーバーは、Cuerda 側で管理している契約情報や配信先との合意内容に基づき、 JSON 形式の応答を返します。この応答にはおもに次の二つの情報が含まれます。
    • 表示に関する情報:どの配信先を管理画面の候補として表示するか
    • ライセンスに関する情報:どの配信先を「配信可能」とみなすか
  4. プラグインはこの応答を解釈し、結果を WordPress のオプションとして保存します。
  5. 保存された結果は、ライセンス画面・配信設定画面・RSS 出力ロジックなどから参照されます。

このように、ライセンス認証は管理画面だけで完結するものではなく、 配信そのものの可否や、RSS の出力内容と密接に結びついています。

HTTP ステータスコードによる基本判断

ライセンス管理サーバーからの応答は、HTTP ステータスコードによって大まかな状態を表します。 Cuerda-Feed-total は、このステータスコードを手がかりに、次のような判断を行います。

  • 200 番台の応答(例:200 OK)
    正常に応答が得られた状態です。プラグインは JSON の内容をそのまま信頼し、 各配信先の「表示」と「ライセンス状態」を更新します。
  • 400 番台の応答
    リクエストに問題がある、あるいはライセンス条件を満たしていないと判断される状態です。 この場合、該当する配信先はライセンス無効として扱われ、設定画面や RSS 出力で利用できなくなります。
  • 500 番台の応答
    サーバー側の一時的な障害など、サイト側に原因がないと考えられる状態です。 既に有効とされているライセンスを、ただちに無効とみなすことはせず、 配信を止めないことを優先した扱いを行います。

こうした設計によって、意図的なライセンス停止と、一時的なサーバー障害とが混同されないよう配慮しています。

社外秘の仕様書を前提としたライセンス

配信先によっては、RSS の仕様書そのものが「社外秘」とされており、 公開文書として配布できないケースがあります。 Cuerda-Feed-total では、そのような配信先についても対応していますが、 ライセンスを有効化する際には、次のような流れを取ります。

  • まず、配信先との間でメディア様が仕様書を受領していることが前提となります。
  • そのうえで、仕様書を Cuerda に共有いただき、プラグイン側の実装と照合します。
  • 実装と仕様が合致していること、想定外のリスクがないことを確認したうえで、該当配信先のライセンスを ON にします。

これにより、仕様が公開されていない配信先であっても、 「仕様書を受領している範囲内でのみ配信を開始する」という形で、安全な運用を担保します。

キャッシュと更新の間隔について

ライセンス認証は、配信のたびに毎回行うものではありません。 Cuerda-Feed-total は、ライセンス管理サーバーから得られた結果を、 一定時間(たとえば 1 時間)キャッシュし、その間は同じ結果を使い回します。

これにより、

  • 外部サーバーへのアクセス回数を抑え、通信負荷を軽減すること
  • 管理画面や RSS 出力の処理時間を安定させること

を両立しています。ライセンス画面を手動で開いた際には、このキャッシュが更新され、 その時点での最新の契約状態が反映されます。

配信設定・RSS 出力との連動

ライセンス認証の結果は、次のような形で実際の動作に反映されます。

  • 配信設定画面で、ライセンスが有効な配信先だけが設定項目として表示される。
  • ライセンスが無効な配信先については、チェックボックスや詳細設定が選択できない、あるいは非表示となる。
  • RSS を生成する際には、ライセンスが有効な配信先に対してのみ、実際のフィードやファイル出力を行う。

たとえば、ある配信先のライセンスが無効化された場合、 配信設定画面からその配信先の項目が消えたり、 その配信先向けの RSS フィードが自動的に停止されることで、 意図しない配信継続を防ぎます。

常時利用可能な配信先について

一部の配信先については、開発・検証や基本的な運用のために、 ライセンス認証に依存せず常時利用可能な「標準的なフィード」として設計しています。

こうした配信先は、ライセンス画面でも常に「利用可能」として表示され、 ライセンスの状態にかかわらず配信設定に現れます。 これにより、まずは Cuerda-Feed-total の動作を確認し、 そのうえで個別のニュース配信サービスとの連携を段階的に広げていく、といった運用が可能になります。

扱う情報とプライバシーへの配慮

ライセンス認証のために送信される情報は、 主としてサイトのドメインやプラグインのバージョンなど、 契約状態を確認するために必要な最小限のものに限定されています。

読者個人を特定しうる情報や、記事本文そのものがライセンス認証の通信に含まれることはありません。 Cuerda-Feed-total は、配信先との合意に基づいた技術的な連携のみを行うことで、 メディア運営と読者の双方に対して、透明性の高い配信環境を提供することを目指しています。

技術者向けの情報に戻る

©cuerda™