WebLogic Serverでは、RDBMS認証プロバイダはユーザー名/パスワード・ベースの認証プロバイダであり、ユーザー、パスワードおよびグループ情報のアイデンティティ・ストアとして、LDAPシステムではなく、リレーショナル・データベースを使用します。
この章には次のトピックが含まれます:
SQLオーセンティケータ - SQLデータベースを使用し、データベースへの読み書きアクセスを許可します。この認証プロバイダは、デフォルトによって一般的なSQLデータベース・スキーマを使用するように構成されていますが、使用するデータベースのスキーマに合わせて構成できます。「SQL認証プロバイダの構成」を参照してください。
読取り専用SQLオーセンティケータ - SQLデータベースを使用し、データベースへの読取り専用アクセスを許可します。書込みアクセスの場合、WebLogicセキュリティ・プロバイダではなくSQLデータベース独自のインタフェースを使用します。「読取り専用SQLオーセンティケータの構成」を参照してください。
カスタムRDBMSオーセンティケータ - プラグイン・クラスを書き込む必要があります。このプロバイダは、認証データ・ストアとしてリレーショナル・データベースを使用するが、SQLオーセンティケータのスキーマ構成が既存のデータベース・スキーマとうまく一致しない場合に使用します。「カスタムDBMSオーセンティケータの構成」を参照してください。
RDBMS認証プロバイダのセキュリティ・レルムへの追加については、Oracle WebLogic Server管理コンソール・オンライン・ヘルプの認証およびIDアサーション・プロバイダの構成に関する項を参照してください。RDBMS認証プロバイダのインスタンスを作成したら、WebLogic Server管理コンソールのRDBMS認証プロバイダの「構成」→「プロバイダ固有」ページでそのインスタンスを構成します。
「グループ・メンバーシップ検索」および「グループ・メンバーシップ検索の最大レベル」属性では、再帰的なグループ・メンバーシップ検索を制限付きか無制限のどちらにするか、および制限付きにした場合、検索するグループ・メンバーシップ・レベルの数を指定します。たとえば、「グループ・メンバーシップ検索」をlimitedに、「グループ・メンバーシップ検索の最大レベル」を0に設定した場合、RDBMS認証プロバイダはユーザーが直接メンバーであるグループだけを検索します。グループ・メンバーシップ検索の最大レベルを指定すると、認証中に実行されるDBMS問合せの数が減少する場合があるので、特定のシナリオで認証のパフォーマンスが大幅に向上します。しかし、グループ・メンバーシップ検索レベルを制限するのは、必要なグループ・メンバーシップがその検索レベル制限の範囲内にあることが確認できている場合のみにしてください。
ノート:
RDBMSに循環グループが含まれる場合や、それ自身を含むように定義されているグループが含まれる場合、RDBMS認証プロバイダは認証プロセスを完了できないことがあります。「グループ・メンバーシップ検索」と「グループ・メンバーシップ検索の最大レベル」の属性を設定すると、グループ名の再帰ルックアップを制限できます。ただし、RDBMS認証プロバイダを循環グループで使用することはサポートされていないので、避ける必要があります。
グループ階層ルックアップの結果をキャッシュすることによって、RDBMS認証プロバイダのパフォーマンスを向上できます。このキャッシュを使用すると、RDBMS認証プロバイダがデータベースにアクセスする頻度を下げることができます。このキャッシュの使い方、サイズおよび期間を構成するには、WebLogic Server管理コンソールで認証プロバイダの「パフォーマンス」ページを使用します。詳細は、Oracle WebLogic Server管理コンソール・オンライン・ヘルプの「セキュリティ・レルム: セキュリティ・プロバイダ: SQL認証: パフォーマンス」を参照してください。
SQL認証プロバイダの構成の詳細は、Oracle WebLogic Server管理コンソール・オンライン・ヘルプの「セキュリティ・レルム: セキュリティ・プロバイダ: SQL認証: プロバイダ固有」を参照してください。
以下の属性によって、SQL認証プロバイダとその基底データベースがパスワードを処理する方法を指定します。
プレーンテキスト・パスワードの有効化 - プレーンテキスト・パスワードを使用できるかどうかを指定します。
パスワードのスタイルを保持 - 既存のユーザーのパスワードを更新する場合の、パスワードのデータベースへの格納方法を制御します。有効な場合、デフォルトでは、データベース内の元のパスワードで使用されていたパスワードのスタイルおよびアルゴリズムが新しいパスワードで使用されます。無効な場合、プロバイダでは、新しいパスワードの「パスワード・アルゴリズム」および「パスワードのスタイル」属性に指定されている設定が使用されます。
パスワードのスタイル - 新しいユーザーのパスワードを格納する場合、および「パスワードのスタイルを保持」属性が無効である場合に既存のユーザーのユーザーを更新する場合に使用するパスワードのスタイルを指定します。有効なオプションは、PLAINTEXT
、HASHED
またはSALTEDHASHED
です。
パスワード・アルゴリズム - パスワードを保存用にハッシュ化する際に使用されるメッセージ・ダイジェスト・アルゴリズム。指定する値は標準的なアルゴリズム名で、実行時に使用可能なJava Cryptography Extension (JCE)プロバイダが認識できる名前にする必要があります。例には、SHA-1およびSHA-256が含まれます。Java暗号化アーキテクチャ(JCA)は、https://docs.oracle.com/javase/8/docs/technotes/guides/security/StandardNames.html#algspecで説明されている標準アルゴリズム仕様を定義します。
ノート:
SQL認証プロバイダでは、SALTEDHASHED
パスワード用として次の公式が使用されます。{SSHA} + プレーン・テキストのsalt + base64Encode (sha-1{salt + プレーン・テキストのパスワード})
ここに示す公式では、デフォルト値のsha-1
が使用されます。パスワード・アルゴリズムに対してSHA-1以外の値を指定すると、その値が代わりに使用されます。SQL認証プロバイダでは、ハッシュ済パスワード値を保持するために文字列型が使用されるため、この公式ではbase64エンコーディングを使用することにより、パスワード・アルゴリズムによって生成されるバイトをRDBMS表に文字列として格納できるようにします。
SQL文属性では、プロバイダがデータベース内のユーザー名、パスワード、およびグループ情報にアクセスして編集するために使用するSQL文を指定します。SQL文属性のデフォルト値は、データベース・スキーマに次の表が含まれていることを前提としたものです。
ユーザー(ユーザー名、パスワード、「説明」)
グループ・メンバー(グループ名、グループ・メンバー)
グループ(グループ名、グループの説明)
ノート:
SQL文によって参照される表は、データベースに存在しなければなりません。プロバイダによって表は作成されません。これらの属性は、使用するデータベースのスキーマに合せて適宜変更できます。しかし、データベース・スキーマがこのデフォルト・スキーマと根本的に異なる場合、代わりにカスタムDBMS認証プロバイダを使用できます。