Oracle Solaris セキュリティーサービス開発ガイド

SASL インタフェースの概要

次の表に、いくつかの SASL インタフェースについての簡単な説明を示します。

表 E–1 クライアントとサーバーに共通する SASL 関数

機能 

説明 

sasl_version 

SASL ライブラリのバージョン情報を取得します。 

sasl_done 

SASL のすべての広域的状態を解放します。 

sasl_dispose 

接続が完了したときに sasl_conn_t を破棄します。

sasl_getprop 

プロパティー (ユーザー名、セキュリティー層に関する情報など) を取得します。 

sasl_setprop 

SASL プロパティーを設定します。 

sasl_errdetail 

接続に関する最新のエラーから文字列を生成します。 

sasl_errstring 

SASL エラーコードを文字列に変換します。 

sasl_encode 

セキュリティー層を使用して送信するデータを符号化します。 

sasl_encodev 

セキュリティー層を介して伝送するデータブロックを符号化します。入力パラメータとして iovec * を使用します。

sasl_listmech 

使用できる機構のリストを作成します。 

sasl_global_listmech 

考えられるすべての機構の配列を戻します。このインタフェースは現在使用されていません。 

sasl_seterror 

sasl_errdetail() によって戻されるエラー文字列を設定します。

sasl_idle 

アイドル期間中またはネットワークの往復中に計算を行うように saslib を設定します。

sasl_decode 

セキュリティー層を使用して受信したデータを復号化します。 

表 E–2 クライアント専用の基本的な SASL 関数

機能 

説明 

sasl_client_init 

クライアントプラグインをロードおよび初期化するために最初に 1 度だけ呼び出されます。 

sasl_client_new 

クライアント接続を初期化します。sasl_conn_t コンテキストを設定します。

sasl_client_start 

接続に使用する機構を選択します。 

sasl_client_step 

認証ステップを実行します。 

表 E–3 サーバーの基本的な SASL 関数 (クライアントでは任意)

機能 

説明 

sasl_server_init 

サーバープラグインをロードおよび初期化するために最初に 1 度だけ呼び出されます。 

sasl_server_new 

サーバー接続を初期化します。sasl_conn_t コンテキストを設定します。

sasl_server_start 

認証の交換を開始します。 

sasl_server_step 

認証交換ステップを実行します。 

sasl_checkpass 

平文のパスフレーズを検査します。 

sasl_checkapop 

APOP のチャレンジおよび応答を検査します。擬似 APOP 機構 (CRAM-MD5 機構に似ている) を使用します。省略可能。このインタフェースは現在使用されていません。 

sasl_user_exists 

ユーザーが存在するかどうかを確認します。 

sasl_setpass 

パスワードを変更します。ユーザーエントリを追加します (省略可能)。 

sasl_auxprop_request 

補助プロパティーを要求します。 

sasl_auxprop_getctx 

接続用の補助プロパティーコンテキストを取得します。 

表 E–4 基本サービスを構成するための SASL 関数

機能 

説明 

sasl_set_alloc 

記憶域割り当て関数を割り当てます。このインタフェースは現在使用されていません。 

sasl_set_mutex 

相互排他関数を割り当てます。このインタフェースは現在使用されていません。 

sasl_client_add_plugin 

クライアントプラグインを追加します。 

sasl_server_add_plugin 

サーバープラグインを追加します。 

sasl_canonuser_add_plugin 

ユーザーの正規化プラグインを追加します。 

sasl_auxprop_add_plugin 

補助プロパティープラグインを追加します。 

表 E–5 SASL ユーティリティー関数

機能 

説明 

sasl_decode64 

復号化に Base64 を使用します。 

sasl_encode64 

符号化に Base64 を使用します。 

sasl_utf8verify 

文字列が有効な UTF-8 かどうかを確認します。 

sasl_erasebuffer 

セキュリティーに気を配る必要があるバッファーまたはパスワードを消去します。実装では回復されにくい消去ロジックを使用することがあります。 

表 E–6 SASL プロパティー関数

機能 

説明 

prop_clear()

値と要求をプロパティーコンテキストから消去します (要求は省略可能) 

prop_dispose()

プロパティーコンテキストを破棄します 

prop_dup()

既存の propctx の内容を複製して新しい propctx を作成します

prop_erase()

プロパティーの値を消去します 

prop_format()

要求されたプロパティー名を文字列に書式設定します 

prop_get()

コンテキストから propval 構造体の配列を戻します

prop_getnames()

プロパティー名のリストを指定して、struct propval の配列を埋めます

prop_new()

プロパティーコンテキストを作成します 

prop_request()

プロパティー名を要求に追加します 

prop_set()

プロパティー値をコンテキストに追加します 

prop_setvals()

プロパティーの値を設定します 

sasl_auxprop_getctx()

接続用の補助プロパティーコンテキストを取得します 

sasl_auxprop_request()

補助プロパティーを要求します 

表 E–7 コールバックデータ型

コールバック 

説明 

sasl_getopt_t 

オプション値を取得します。クライアントでもサーバーでも使用されます。 

sasl_log_t 

メッセージハンドラをロギングします。クライアントでもサーバーでも使用されます。 

sasl_getpath_t 

機構を探すためのパスを取得します。クライアントでもサーバーでも使用されます。 

sasl_verifyfile_t 

ファイルが SASL によって使用されるかどうかを確認します。クライアントでもサーバーでも使用されます。 

sasl_canon_user_t 

ユーザー名の正規化関数。クライアントでもサーバーでも使用されます。 

sasl_getsimple_t 

ユーザーと言語のリストを取得します。クライアントでのみ使用されます。 

sasl_getsecret_t 

認証シークレットを取得します。クライアントでのみ使用されます。 

sasl_chalprompt_t 

チャレンジを表示し、応答を入力するよう求めます。クライアントでのみ使用されます。 

sasl_getrealm_t 

認証レルムを取得します。クライアントでのみ使用されます。 

sasl_authorize_t 

ポリシーのコールバックを承認します。サーバーでのみ使用されます。 

sasl_server_userdb_checkpass_t 

平文のパスワードを検証します。サーバーでのみ使用されます。 

sasl_server_userdb_setpass_t 

平文のパスワードを設定します。サーバーでのみ使用されます。 

表 E–8 SASL インクルードファイル

インクルードファイル 

コメント 

sasl/saslplug.h

 

sasl/sasl.h

プラグインの開発に必要です 

sasl/saslutil.h

 

sasl/prop.h

 

表 E–9 SASL 戻りコード: 一般

戻りコード 

説明 

SASL_BADMAC 

整合性検査が失敗しました 

SASL_BADVERS 

機構のバージョンが一致しません 

SASL_BADPARAM 

指定されたパラメータが無効です 

SASL_BADPROT 

プロトコルが正しくありません。操作を取り消します 

SASL_BUFOVER 

バッファーがオーバーフローしました 

SASL_CONTINUE 

認証には別の手順が必要です 

SASL_FAIL 

一般的なエラー 

SASL_NOMECH 

機構がサポートされていません 

SASL_NOMEM 

メモリー不足のため、操作を完了できません 

SASL_NOTDONE 

交換の後期になるまで情報を要求できません 

SASL_NOTINIT 

SASL ライブラリが初期化されていません 

SASL_OK 

結果が正常です 

SASL_TRYAGAIN 

一時的に発生する障害 (弱い鍵など) 

表 E–10 SASL 戻りコード: クライアント専用

機能 

説明 

SASL_BADSERV 

サーバーが相互認証ステップに失敗しました 

SASL_INTERACT 

ユーザーの操作が必要です 

SASL_WRONGMECH 

要求された機能が機構でサポートされていません 

表 E–11 SASL 戻りコード: サーバー専用

機能 

説明 

SASL_BADAUTH 

認証エラー 

SASL_BADVERS 

バージョンがプラグインと一致していません 

SASL_DISABLED 

アカウントが無効です 

SASL_ENCRYPT 

機構を使用するには暗号化が必要です 

SASL_EXPIRED 

パスフレーズの有効期限が切れているため、リセットする必要があります 

SASL_NOAUTHZ 

承認エラー 

SASL_NOUSER 

ユーザーが見つかりません 

SASL_NOVERIFY 

ユーザーは存在するが、検査方法がありません 

SASL_TOOWEAK  

このユーザーに対して機構が弱すぎます  

SASL_TRANS 

使い捨て平文パスワードで、ユーザーに要求された機構が使用できるようになります 

SASL_UNAVAIL 

リモート認証サーバーが使用できません 

表 E–12 SASL 戻りコード – パスワード操作

機能 

説明 

SASL_NOCHANGE 

指定された変更は必要ありません 

SASL_NOUSERPASS 

ユーザーが指定したパスワードは許可されていません 

SASL_PWLOCK 

パスフレーズがロックされています 

SASL_WEAKPASS 

セキュリティーポリシーに対してパスフレーズが弱すぎます