- ブログ /
- ONLYOFFICE Docs /
- 企業向け /
- 統合 /
- 開発者向け
JWTとは何か、そしてこの技術がどのようにドキュメントを保護するのか
暗号化、透かし、アクセス権の制限など、ファイルを積極的に保護する方法があります。しかし、ドキュメントのセキュリティはそれだけでは終わりません。JWTは、常にバックグラウンドで動作し、許可されたユーザーだけがファイルを編集できるようにする重要なアクセス保護エージェントです。
JWTとは
JSON Web Token(JWT、発音は/dʒɒt/)は、主に認証とデータ転送の2つの目的で使用される安全なオンライン情報交換のオープン標準です。
コンパクトなJSONオブジェクトには認証情報が含まれていて、ウェブアプリケーションに適用すると、サービスの正当なユーザーを確認する機能が提供されます。一言で言えば、情報の送り手が本人であることをアプリケーションが確認するのに役立ちます。
JWTは、ヘッダー、ペイロード、署名の3つの部分からなる、文字列形式の自己完結型のオブジェクトです。ヘッダーにはトークンに関する情報と署名の生成方法、ペイロードにはアクセスの許可を与えるために必要なユーザーに関する主張、そして署名はユーザーの妥当性を検証します。
トークンは、転送されたデータの出所を検証するのに役立つ秘密鍵で署名することができます。
ONLYOFFICEのセキュリティトークン利用方法
ONLYOFFICEでは、JWTは編集者とユーザー間のデータストリームを保護します。これは、Docsの編集セッションに入り、ドキュメントで特定のアクションを実行しようとするユーザーを確認するのに役立ちます。ONLYOFFICE ドキュメントサーバとのHTTPリクエストごとに、トークンが生成され、パラメータに追加されます。ここでは、ユーザーアクションごとに異なるJWTが生成されます。トークンはそれぞれ同じシークレットで署名されていますが、入力を認証するための情報は異なります。たとえば、エディタを開くとき、ファイルに画像を挿入するとき、文書のバージョン履歴を開くときなどには、別のトークンが作成されます。
例えば、www.example.com でホストされているファイルに PNG 画像を追加する場合、以下のパラメータがトークンに含まれます:
{
"fileType": "png",
"url": "https://example.com/url-to-example-image.png"
}
そして、サンプル・トークンは次のようになります。
eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJmaWxlVHlwZSI6InBuZyIsInVybCI6Imh0dHBzOi8vZXhhbXBsZS5jb20vdXJsLXRvLWV4YW1wbGUtaW1hZ2UucG5nIn0.FXuC3GUvPq3japwyzo4i-utUe3g1rfSDt1ytuK_VyCc
JWTに署名するために、ONLYOFFICE Docsが統合されている各共有サービスでは、カスタムシークレットが使用されています。
シークレットキーを取得する方法
ONLYOFFICE Docsの旧バージョンでは、JWTのシークレットはホストサービス(Nextcloudなど)の管理者が生成し、ONLYOFFICE Document Serverへ設定から手動で送信し、有効化する必要がありました。
バージョン7.2からは、デフォルトでJWTが有効になっています。ONLYOFFICE Docsをインストールして起動すると、ランダムなシークレットが自動的に生成され、ホストアプリケーション側で追加するだけでよいのです。
注意:すでにJWTでONLYOFFICE Docsを使用している場合、オリジナルのキーはセットアップに残ります。例外はDockerインストールです:インストールされたDocument Serverにおいて、環境変数が設定されていないか、JWTパラメータが定義されていない場合、アップデート後にランダムシークレットが生成されます。
LinuxとWindowsサーバーのインストール
デフォルトのJWTシークレットは、以下のパスを使用してlocal.jsonファイルから取得することができます。
Linuxの場合: /etc/onlyoffice/documentserver/local.json
Windowsの場合: %ProgramFiles%\ONLYOFFICE\DocumentServer\config\local.json
services.CoAuthoring.secret.browser.string パラメータでシークレットを確認できます。
Dockerのインストール
ONLYOFFICE DocsをDockerでインストールする場合、以下のスクリプトを実行し、シークレットを取得します。
sudo docker exec f00ad6e66a40 /var/www/onlyoffice/documentserver/npm/json -f /etc/onlyoffice/documentserver/local.json 'services.CoAuthoring.secret.session.string'
デフォルトのシークレットをカスタムキーに置き換えるには、このドキュメントをご参照ください。
ONLYOFFICE Docsのインストール後、起動ページでは、各インストール方法の個別解説が公開されます。
JWTはどこで利用できるのか?
JWTはONLYOFFICE公式の連携アプリのほぼすべてでサポートされています。
- Nextcloud
- ownCloud
- Alfresco
- Moodle
- Mattermost
- Chamilo
- HumHub
- Confluence
- Plone
- Strapi
- Liferay
- Jira
- Nuxeo
- Redmine
- WordPress
公式ウェブサイトで利用可能なすべての統合を閲覧し、対応するGitHubページでトークン設定ガイドをご覧ください。
もし自分のアプリのためにONLYOFFICE統合アプリを作りたいなら、私たちのAPIガイドラインを使用してセキュリティトークンのサポートを追加することが可能です。
お役立ちリンク
統合アプリでJWTサポートを追加するためのAPIガイドライン
利用可能な統合のリスト
ONLYOFFICEのセキュリティについて
ONLYOFFICEの無料アカウントを登録する
オンラインでドキュメント、スプレッドシート、スライド、フォーム、PDFファイルの閲覧、編集、共同作業