暗号化、透かし、アクセス権の制限など、ファイルを積極的に保護する方法があります。しかし、ドキュメントのセキュリティはそれだけでは終わりません。JWTは、常にバックグラウンドで動作し、許可されたユーザーだけがファイルを編集できるようにする重要なアクセス保護エージェントです。
JWTとは
JSON Web Token(JWT、発音は/dʒɒt/)は、主に認証とデータ転送の2つの目的で使用される安全なオンライン情報交換のオープン標準です。
コンパクトなJSONオブジェクトには認証情報が含まれていて、ウェブアプリケーションに適用すると、サービスの正当なユーザーを確認する機能が提供されます。一言で言えば、情報の送り手が本人であることをアプリケーションが確認するのに役立ちます。
JWTは、ヘッダー、ペイロード、署名の3つの部分からなる、文字列形式の自己完結型のオブジェクトです。ヘッダーにはトークンに関する情報と署名の生成方法、ペイロードにはアクセスの許可を与えるために必要なユーザーに関する主張、そして署名はユーザーの妥当性を検証する。
トークンは、転送されたデータの出所を検証するのに役立つ秘密鍵で署名することができる。
ONLYOFFICEのセキュリティトークン利用方法
ONLYOFFICEでは、JWTは編集者とユーザー間のデータストリームを保護します。これは、Docsの編集セッションに入り、ドキュメントで特定のアクションを実行しようとするユーザーを確認するのに役立ちます。
ONLYOFFICE Documentサーバとの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.1からは、ランダムなシークレットが自動生成され、ホストアプリケーション側で追加するだけでよくなりました。
JWTはどこで利用できる?
JWTはONLYOFFICE公式の連携アプリのほぼ全てに対応しています:
· Nextcloud
· ownCloud
· Alfresco
· Moodle
· Mattermost
· Chamilo
· HumHub
· Confluence
· Plone
· Strapi
· Liferay
· Jira
· Nuxeo
· Redmine
公式サイトで利用可能なすべての統合を閲覧し、対応するGitHubページでトークン設定ガイドを見つけることができます。
もし自分のアプリのためにONLYOFFICE統合アプリを作りたいなら、このAPIガイドラインを使用してセキュリティトークンのサポートを追加することが可能です。
お役立ちリンク
統合アプリでJWTサポートを追加するため APIガイドラインをご覧ください。
利用可能な統合リストをご覧ください。
ONLYOFFICEのセキュリティについて詳しくはこちら。