jc-import-file-maker

Chrome Web Store 権限の正当化(Permission Justification)

Chrome Web Store 審査向けに、本拡張機能が要求する各権限の理由をまとめます。 審査フォームの “Permission justification” 欄への記載内容としてそのまま利用できます。


storage

用途: 利用者が設定画面(options.html)で入力した API キー(OpenAlex / CiNii / Open Policy Finder)をブラウザのローカルストレージ(chrome.storage.local)に保存するために使用します。

必要な理由: API キーはセッションをまたいで保持する必要があり、ブラウザの chrome.storage.local が最適な手段です。キーの保存先chrome.storage.local のみで、提供者のサーバーには送信しません。ただし各 API を呼び出す際には、対応する API 提供元(OpenAlex / CiNii / Open Policy Finder)へキーが送信されます。これは各 API の認証に必要な動作です。


sidePanel

用途: ツールバーボタンクリック時にサイドパネルを開き、メタデータ取得・TSV 生成 UI を表示するために使用します。

必要な理由: 電子ジャーナルのページを表示しながら操作できるよう、サイドパネル形式の UI を採用しています。


scripting

用途: 利用者が「ページから DOI 取得」ボタンを押したときに限り、現在表示中のタブのページから DOI を示す meta タグ(citation_doi / prism.doi / DOI / dc.identifier)および schema.org JSON-LD の identifier を読み取るために使用します。

必要な理由: 電子ジャーナル掲載ページの DOI を自動入力する機能(chrome.scripting.executeScript)に必須です。

安全策:


optional_host_permissions: https://*/*, http://*/*

用途: scripting 権限で chrome.scripting.executeScript を実行する対象ページのホスト権限として使用します。利用者が「ページから DOI 取得」ボタンを押したときに chrome.permissions.request() で実行時に要求します(インストール時には要求しません)。

必要な理由: 電子ジャーナルは出版社ごとにドメインが異なり、事前にすべてのドメインを列挙することが不可能です。そのため広いホストパターン(https://*/*, http://*/*)を optional_host_permissions として宣言し、実際の許可はユーザー操作時に取得しています。

安全策:


host_permissions(固定ホスト群)

用途: 以下の学術 API・機関リポジトリへの CORS 制約なしアクセスに使用します。利用者がメタデータ取得・検索機能を実行したときに限り、対象ドメインへリクエストします。

ホスト 用途
https://kaken.nii.ac.jp/* 科研費課題情報取得(KAKEN API)
https://api.japanlinkcenter.org/* DOI メタデータ取得(JaLC API)
https://api.openpolicyfinder.jisc.ac.uk/* OA ポリシー取得(Open Policy Finder API)
https://*.repo.nii.ac.jp/* 他 WEKO3 リポジトリ 機関リポジトリ OpenSearch 検索・登録済み照合

必要な理由: 上記 API は CORS 制約のため通常のウェブページから直接呼び出せません。Chrome 拡張の host_permissions によって Service Worker(background.js)または extension page(サイドパネル)から CORS 制約なしでアクセスしています。

安全策: