[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

3. データの型

ネゴシエートされたセキュリティー層の伝送に使われる三つのデータの型として、 メカニズム、クライアント・パラメーター、および認証ステップがあります。


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

3.1 メカニズム

メカニズム (sasl-mechanism オブジェクト) が、SASL 認証メカニ ズムのドライバーのスキームです。

Variable: sasl-mechanisms

メカニズム名のリスト。

Function: sasl-find-mechanism mechanisms

適切なメカニズムを取得します。
この関数は mechanismssasl-mechanisms を比較して、適切 な sasl-mechanism オブジェクトを返します。

 
(let ((sasl-mechanisms '("CRAM-MD5" "DIGEST-MD5")))
  (setq mechanism (sasl-find-mechanism server-supported-mechanisms)))
Function: sasl-mechanism-name mechanism

メカニズムの名前を文字列で返します。

認証メカニズムのドライバー (バックエンド・ドライバー) を書きたければ、 sasl-make-mechanism を使い、sasl-mechanisms およ び sasl-mechanism-alist を正しく変更してください。

Function: sasl-make-mechanism name steps

sasl-mechanism オブジェクトを割り当てます。
この関数は二つのパラメーター、すなわちメカニズムの名前、および認証するた めの関数のリストを受け取ります。

 
(defconst sasl-anonymous-steps
  '(identity                            ; 最初は応答無し
    sasl-anonymous-response))

(put 'sasl-anonymous 'sasl-mechanism
     (sasl-make-mechanism "ANONYMOUS" sasl-anonymous-steps))

[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

3.2 クライアント

クライアント (sasl-client オブジェクト) は四つのパラメーター、す なわちメカニズム、ユーザー名、サービス名、およびサーバー名によって初期化 されます。

Function: sasl-make-client mechanism name service server

sasl-client オブジェクトを用意します。

Function: sasl-client-mechanism client

クライアントのメカニズム (sasl-mechanism オブジェクト) を返します。

Function: sasl-client-name client

クライアントの認証名を文字列で返します。

Function: sasl-client-service client

クライアントのサービス名を文字列で返します。

Function: sasl-client-server client

クライアントのサーバー名を文字列で返します。

属性の設定を追加したい場合は、sasl-client-set-property を使ってく ださい。

Function: sasl-client-set-property client property value

与えられた属性およびその値をクライアントに追加します。

Function: sasl-client-property client property

クライントの属性の値を返します。

Function: sasl-client-set-properties client plist

クライアントの属性を破壊的に設定します。
第二引数は新しいプロパティー・リスト (plist) です。

Function: sasl-client-properties client

クライアントの設定のプロパティー・リストを、まるごと返します。


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

3.3 ステップ

ステップ (sasl-step オブジェクト) は認証「ステップ」の抽象化です。 それは、応答の値と次回の認証処理の入り口を保持します (後者はアクセスでき ません)。

Function: sasl-step-data step

step が保持するデータを文字列で返します。

Function: sasl-step-set-data step data

stepdata の文字列を格納します。

最初の応答を得るには、第二引数を nil にして関 数 sasl-next-step を呼ばなければなりません。

 
(setq name (sasl-mechanism-name mechanism))

この段階で、SASL の認証プロトコルの交換を開始するコマンドを送ることがで きます。例です。

 
(process-send-string
 process
 (if (sasl-step-data step)              ; 最初の応答
     (format "AUTH %s %s\r\n"
             name (base64-encode-string (sasl-step-data step) t))
   (format "AUTH %s\r\n" name)))

認証処理を続けるために行なわなければならないことは、連続し て sasl-next-step を呼ぶことです。

Function: sasl-next-step client step

認証ステップを実行します。
最初は stepnil に設定しなければなりません。


[ << ] [ >> ]           [Top] [Contents] [Index] [ ? ]

This document was generated by Yasutaka SHINDOH on May 11, 2011 using texi2html 1.82.