JMAP - 電子メールを交換する際に IMAP に代わるオープン プロトコル

今月初めの Hacker News 活発に議論されました JMAPプロトコル IETFの指導の下で開発されました。 なぜそれが必要なのか、そしてそれがどのように機能するのかについて話し合うことにしました。

JMAP - 電子メールを交換する際に IMAP に代わるオープン プロトコル
/ PxHere /PD

IMAP の気に入らなかった点

プロトコル IMAP 1986年に導入されました。 標準に記載されている多くのことは、今日ではもはや意味がありません。 たとえば、プロトコルは文字の行数とチェックサムを返すことができます。 MD5 - この機能は、最近の電子メール クライアントでは実際には使用されていません。

もう XNUMX つの問題は、トラフィック消費に関連しています。 IMAP を使用すると、電子メールはサーバーに保存され、ローカル クライアントと定期的に同期されます。 何らかの理由でユーザーのデバイス上のコピーが破損した場合、すべてのメールを再度同期する必要があります。 現代世界では、何千ものモバイル デバイスがサーバーに接続できるため、このアプローチはトラフィックとコンピューティング リソースの消費量の増加につながります。

問題はプロトコル自体だけでなく、それを使用する電子メール クライアントでも発生します。 IMAP はその作成以来、何度もさまざまな改訂を受けてきました。現在のバージョンは IMAP4 です。 同時に、ネットワーク上にはオプションの拡張機能が多数あります。 出版された 追加を含む XNUMX の RFC。 最も最近のものの XNUMX つは、 RFC8514, 2019年に導入されました。

同時に、多くの企業が、IMAP の使用を簡素化したり、IMAP を置き換えたりする独自のソリューションを提供しています。 Gmailの, Outlook, ニラス。 その結果、既存の電子メール クライアントは利用可能な機能の一部のみをサポートすることになります。 このような多様性は市場の細分化につながります。

「さらに、最新の電子メール クライアントは、メッセージを転送するだけでなく、連絡先と連携し、カレンダーと同期できる必要があります」と、IaaS プロバイダーの開発責任者であるセルゲイ ベルキン氏は述べています。 1cloud.ru。 — 現在、次のようなサードパーティ プロトコルが使用されています。 LDAP, CardDAVの и CalDAVの。 このアプローチは企業ネットワーク内のファイアウォールの構成を複雑にし、サイバー攻撃の新たなベクトルを開きます。」

JMAP はこれらの問題を解決するために設計されました。 これは、Internet Engineering Task Force (IETF) の指導の下、FastMail の専門家によって開発されています。 このプロトコルは HTTPS 上で実行され、JSON を使用し (このため、電子メッセージの交換だけでなく、クラウド内の多くのタスクを解決するのにも適しています)、モバイル システムでメールを扱う組織を簡素化します。 JMAP は、手紙の処理に加えて、連絡先やカレンダー スケジューラを操作するための拡張機能を接続する機能も提供します。

新しいプロトコルの特徴

JMAPは ステートレスプロトコル (ステートレス) であり、メール サーバーへの永続的な接続は必要ありません。 この機能により、不安定なモバイル ネットワークでの作業が簡素化され、デバイスのバッテリー電力が節約されます。

JMAP の電子メールは JSON 構造形式で表現されます。 メッセージからのすべての情報が含まれています RFC5322 (インターネット メッセージ フォーマット)、電子メール アプリケーションで必要になる場合があります。 開発者によれば、このアプローチにより、クライアントの作成が簡素化されるはずです。これは、クライアントに関連する潜在的な問題が解決されるためです。 MIME、ヘッダーの読み取りとエンコード)サーバーが応答します。

クライアントは API を使用してサーバーに接続します。 これを行うために、認証された POST リクエストを生成します。そのプロパティは JMAP セッション オブジェクトに記述されています。 リクエストは application/json 形式であり、単一の JSON リクエスト オブジェクトで構成されます。 サーバーは XNUMX つの応答オブジェクトも生成します。

В 仕様書 (ポイント 3) 著者は、リクエストとともに次の例を提供します。

{
  "using": [ "urn:ietf:params:jmap:core", "urn:ietf:params:jmap:mail" ],
  "methodCalls": [
    [ "method1", {
      "arg1": "arg1data",
      "arg2": "arg2data"
    }, "c1" ],
    [ "method2", {
      "arg1": "arg1data"
    }, "c2" ],
    [ "method3", {}, "c3" ]
  ]
}

以下は、サーバーが生成する応答の例です。

{
  "methodResponses": [
    [ "method1", {
      "arg1": 3,
      "arg2": "foo"
    }, "c1" ],
    [ "method2", {
      "isBlah": true
    }, "c2" ],
    [ "anotherResponseFromMethod2", {
      "data": 10,
      "yetmoredata": "Hello"
    }, "c2"],
    [ "error", {
      "type":"unknownMethod"
    }, "c3" ]
  ],
  "sessionState": "75128aab4b1b"
}

実装例を含む完全な JMAP 仕様は、次の場所にあります。 公式サイト プロジェクト。 そこで著者は、次の仕様の説明も投稿しました。 JMAP連絡先 и JMAPカレンダー — カレンダーと連絡先リストを操作することを目的としています。 による によると 著者、連絡先、カレンダーは別個のドキュメントに分離され、「コア」から独立してさらに開発および標準化できるようになりました。 JMAP のソース コード - で GitHub 上のリポジトリ.

JMAP - 電子メールを交換する際に IMAP に代わるオープン プロトコル
/ PxHere /PD

見込み

この規格の作業はまだ正式に完了していませんが、すでに運用環境に実装されています。 たとえば、オープン メール サーバーの作成者は、 サイラスIMAP JMAP バージョンを実装しました。 FastMail の開発者 リリース Perl の新しいプロトコルのサーバー フレームワークと JMAP の作者が発表 プロキシサーバー.

今後もJMAPを活用したプロジェクトが増えていくことが予想されます。 たとえば、Linux システム用の IMAP サーバーを作成している Open-Xchange の開発者が新しいプロトコルに切り替える可能性があります。 IMAP は絶対に拒否してください コミュニティメンバーが尋ねる、会社のツールを中心に形成されています。

IETF と FastMail の開発者らは、メッセージングの新しいオープン標準の必要性を認識するユーザーが増えていると述べています。 JMAP の作成者は、将来的にはより多くの企業がこのプロトコルを実装し始めることを期待しています。

追加のリソースとリソース:

JMAP - 電子メールを交換する際に IMAP に代わるオープン プロトコル Cookie が GDPR に準拠しているかどうかを確認する方法 - 新しいオープン ツールが役立ちます

JMAP - 電子メールを交換する際に IMAP に代わるオープン プロトコル アプリケーション プログラミング インターフェイスを使用して保存する方法
JMAP - 電子メールを交換する際に IMAP に代わるオープン プロトコル 1cloud.ru の例を使用したクラウド サービスでの DevOps
JMAP - 電子メールを交換する際に IMAP に代わるオープン プロトコル クラウド アーキテクチャの進化 1cloud

JMAP - 電子メールを交換する際に IMAP に代わるオープン プロトコル HTTPS に対する潜在的な攻撃とそれに対する防御方法
JMAP - 電子メールを交換する際に IMAP に代わるオープン プロトコル インターネット上のサーバーを保護する方法: 1cloud.ru の経験
JMAP - 電子メールを交換する際に IMAP に代わるオープン プロトコル 短い教育プログラム: 継続的インテグレーションとは何ですか

出所: habr.com

コメントを追加します