この付録では、サード・パーティ認証ベンダーがRADIUSチャレンジ・レスポンス・ユーザー・インタフェースを独自のデバイスに合わせてカスタマイズする方法について説明します。
この付録のトピックは次のとおりです。
RADIUS規格をサポートする任意の認証デバイスを、Oracleユーザーが認証されるように設定できます。認証デバイスでチャレンジ・レスポンス・モードを使用する場合、グラフィカル・インタフェースでユーザーはまずパスワードの入力、次に追加情報の入力を求められます。たとえば、ユーザーがトークン・カードから取得する動的パスワードがあります。このインタフェースはJavaベースで、最適なプラットフォーム独立性を提供します。
認証デバイスのサード・パーティ・ベンダーは、その独自のデバイスに合わせてこのグラフィカル・ユーザー・インタフェースをカスタマイズする必要があります。たとえば、スマートカード・ベンダーは、チャレンジをスマートカード・リーダーに発行するようにOracleクライアントをカスタマイズします。スマートカードはチャレンジを受け取ると、ユーザーにPINなどの追加情報の入力を求めることで応答します。
このインタフェースは、表C-1に示す機能をサポートする独自のクラスを作成することでカスタマイズできます。次にsqlnet.oraファイルを開き、SQLNET.RADIUS_AUTHENTICATION_INTERFACEパラメータを探して、そこにリストされているクラスの名前(DefaultRadiusInterface)を作成した新しいクラスの名前に置き換えます。この変更をsqlnet.oraファイルで行うと、クラスは認証プロセスを処理するためにOracleクライアントにロードされます。
サード・パーティは、ORACLE.NET.RADIUSパッケージにあるOracle RADIUSインタフェースを実装する必要があります。
public interface OracleRadiusInterface {
public void radiusRequest();
public void radiusChallenge(String challenge);
public String getUserName();
public String getPassword();
}
表C-1 サーバー暗号化レベルの設定
| パラメータ | 説明 |
|---|---|
radiusRequest |
通常は、ユーザーにユーザー名とパスワードの入力を求めます。これらは後で |
getUserName |
ユーザーが入力したユーザー名を抽出します。空の文字列が戻された場合、ユーザーが操作をキャンセルするとみなされます。その後、ユーザーは認証に失敗したことを示すメッセージを受信します。 |
getPassword |
ユーザーが入力したパスワードを抽出します。 |
radiusChallenge |
ユーザーがサーバーのチャレンジに応答できるように、RADIUSサーバーから送信された要求を表示します。 |
getResponse |
ユーザーが入力した応答を抽出します。有効な応答が戻された場合、その情報が新しい |