web-dev-qa-db-ja.com

SASL / GSSAPIとは何ですか?

SASL/GSSAPIという表現に何度も出会いました。私はGoogleを何度も検索しましたが、それが何であり、どのようにKerberosに関連するのか理解できません。

これについて簡単な説明がある人はいますか?

21
NT332

SASLとGSSAPIは、さまざまな認証プロバイダーをプラグインできるフレームワークです。 SASLまたはGSSAPIをサポートするアプリでKerberos認証を使用したい人は、Kerberos固有のコードでアプリを書き換えるのではなく、適切なKerberosプラグインを提供するだけで済みます。

5
dsolimano

[〜#〜] sasl [〜#〜] は、Simple Authentication and Security Layerを表します。これは、開発者がさまざまな認証メカニズムを実装できるようにするフレームワークであり、クライアントとサーバーが各接続について相互に受け入れ可能なメカニズムを(ハードコーディングしたり事前に構成したりするのではなく)ネゴシエートできるようにします。

[〜#〜] gssapi [〜#〜] は、Generic Security Services Application Program Interfaceの略です。通常、SASLが使用できるメカニズムの1つとして利用できます。それ自体が、さまざまな認証メカニズムを開発および実装するための別のフレームワークです。これらのメカニズムには、Kerberos、NTLM、および [〜#〜] spnego [〜#〜] (シンプルで保護されたGSSAPIネゴシエーションメカニズム):GSSAPIと互換性のあるクライアントがどのGSSAPIをネゴシエートできるようにするGSSAPI擬似メカニズム彼らが使用したいメカニズム。

これを少しわかりやすくするための例を以下に示します(わかりやすくするために厳密に簡略化しています)。

  1. クライアントがサーバーに接続して、「SASLをサポートしています。自分を認証するにはどうすればよいですか?」
  2. サーバーは接続を受信し、「SASLもサポートしており、GSSAPI、CRAM-MD5、PLAINの降順でこれらのメカニズムを使用できます。」と応答します。
  3. クライアントは、「選択肢のうち、GSSAPIを使用したい」と応答します。
  4. サーバーは「GSSAPI?Capital。私はKerberosとNTLMをサポートしています。」と応答します。
  5. クライアントは「Kerberosを使用しましょう。暗号化されたチケットなどです」などと応答します。
49
Handyman5