web-dev-qa-db-ja.com

LDAPは認証されたセッションをどのように維持しますか

答えが見つからないので、何かが足りないように感じます

ふりをしてみましょう。

  1. LDAPサーバーに接続します
  2. BINDコマンドを発行して正常にログインする
  3. (私はサーバーが何かを返すと思います)
  4. DELETEコマンドを発行します

DELETEコマンドを発行しても、サーバーはまだ自分であることをどのようにして知るのですか?セッションが必要です。

しかし、そのセッションはどのように見えますか?トークンはありますか?

ここで適切な質問をしているのかわかりません。

4
Anton

同じストリーム(TCP)接続を介してすべての要求を送信しているため、それはあなたであることがわかります。 (TCPは、ポートとパケットシーケンス番号がすべて一致しているため、このことを知っています。)

言い換えると、LDAPはステートフルプロトコルであり、セッション全体(認証を含む)は暗黙的に基礎となる接続にバインドされます。 (IMAPやSSHなど、他のすべての同様のプロトコルと同じです。)


もちろん、TCP自体はそれではあまり上手ではありません(たとえば、シーケンス番号を傍受するだけで誰かが接続を引き継ぐことができるようになるため)、通常はTLSやSASLを使用して暗号化を行いますと整合性。

LDAPサーバーに関する限り、答えは同じです。すべてのリクエストが同じストリーム接続を介して到着します。現在、TLSはこれを暗号で実施します。


(補足:はい、SASLはjust認証プロトコルではありません。これにより、メカニズムがセッションキーを導出し、それを「封印」に使用できるようになります。

ただし、さまざまな欠点があるため、SASLのシーリング機能はほとんど使用されません。 LDAPは実質的にonlyプロトコルであり、それ以外はすべてTLSに依存しています。)

2
user1686