#### JDBC

Java Database Connectivity (JDBC) 認証モジュールにより、OpenSSO が、JDBC 対応ドライバを提供する任意の SQL (Structured Query Language) データベースを通じてユーザーを認証できるようになります。SQL データベースへの接続は、JDBC ドライバを通して直接行うか、JNDI 接続プールを通して行います。JDBC 属性はレルム属性です。属性は次のとおりです。

- 「接続のタイプ」

- 「接続プールの JNDI 名」

- 「JDBC ドライバ」

- 「JDBC URL」

- 「データベースに接続するユーザー」

- 「データベースへ接続するためのパスワード」

- 「データベースへ接続するためのパスワード (確認)」

- 「パスワードカラムの文字列」

- 「準備されているステートメント」

- 「パスワード構文を変換するためのクラス」

- 「認証レベル」

##### 接続のタイプ

JNDI (Java Naming and Directory Interface) 接続プールまたは JDBC ドライバのいずれかを使用して、SQL データベースへの接続タイプを指定します。オプションは次のとおりです。

- JNDI から取得された接続プール

- 非持続 JDBC 接続

JNDI 接続プールは、配下の Web コンテナの設定を利用します。

##### 接続プールの JNDI 名

「接続タイプ」で JNDI を選択した場合は、このフィールドに接続プール名を指定します。JDBC 認証では Web コンテナから提供される JNDI 接続が使用されるので、ここで設定した JNDI 接続プールがほかの Web コンテナの接続と一致しなくなることがあります。例については、『OpenSSO Administration Guide』を参照してください。

##### JDBC ドライバ

「接続のタイプ」で JDBC を選択した場合は、SQL データベースから提供される JDBC ドライバをこのフィールドに指定します。たとえば、`com.mysql.jdbc.Driver` と指定します。

##### JDBC URL

「接続のタイプ」で JDBC を選択した場合は、データベース URL を指定します。たとえば、mySQL の場合は、`jdbc.mysql://hostname:port/databaseName` と指定します。

##### データベースに接続するユーザー

JDBC 接続を使用してデータベースに接続するユーザーの名前を指定します。

##### データベースへ接続するためのパスワード

「データベースに接続するユーザー」に指定したユーザーのパスワードを定義します。

##### データベースへ接続するためのパスワード (確認)

パスワードを確認します。

##### パスワードカラムの文字列

SQL データベースのパスワードカラム名を指定します。

##### 準備されているステートメント

ログインしようとしているユーザーのパスワードを取得するための SQL 文を指定します。次に例を示します。

     select Password from Employees where USERNAME = ?

##### パスワード構文を変換するためのクラス

データベースから取得したパスワードをユーザー入力の形式に変換して、パスワードを比較するためのクラス名を指定します。このクラスは、`JDBCPasswordSyntaxTransform` インタフェースを実装している必要があります。

##### 認証レベル

認証レベルは認証方法ごとに個別に設定します。この値は、認証メカニズムの信頼度を示します。ユーザーが認証を受けると、この値がセッションの SSO トークンに格納されます。ユーザーがアクセスするアプリケーションに SSO トークンが提供されると、そのアプリケーションは格納されている値を使用して、ユーザーにアクセスを許可するのに十分なレベルかどうかを判別します。SSO トークンに格納されている認証レベルが必要な最小値に満たない場合、アプリケーションはユーザーにより高い認証レベルのサービスで認証を再度受けるよう要求することがあります。デフォルト値は 0 です。

注 – 認証レベルの指定がない場合、SSO トークンはコア認証属性の 「デフォルト認証レベル」で指定した値を格納します。