LoginSignup
2
1

More than 1 year has passed since last update.

JWTとは何か、そしてこの技術がどのようにドキュメントを保護するのか

Posted at

暗号化、透かし、アクセス権の制限など、ファイルを積極的に保護する方法があります。しかし、ドキュメントのセキュリティはそれだけでは終わりません。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のセキュリティについて詳しくはこちら。

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1