D RADIUSを使用した認証デバイスの統合

RADIUSチャレンジ・レスポンス・ユーザー・インタフェースは、RADIUS構成での認証をさらに強化します。

RADIUSチャレンジ・レスポンス・ユーザー・インタフェースについて

サード・パーティ認証ベンダーを使用して、RADIUSチャレンジ・レスポンス・ユーザー・インタフェースを特定のデバイスに合うようにカスタマイズできます。

RADIUS規格をサポートする任意の認証デバイスを、Oracleユーザーが認証されるように設定できます。認証デバイスでチャレンジ・レスポンス・モードを使用する場合、グラフィカル・インタフェースでエンド・ユーザーはまずパスワードの入力、次に追加情報の入力を求められます(たとえば、ユーザーがトークン・カードから取得する動的パスワードがあります)。このインタフェースはJavaベースで、最適なプラットフォーム独立性を提供します。

認証デバイスのサード・パーティ・ベンダーは、その独自のデバイスに合せてこのグラフィカル・ユーザー・インタフェースをカスタマイズする必要があります。たとえば、スマートカード・ベンダーは、チャレンジをスマートカード・リーダーに発行するようにOracleクライアントをカスタマイズします。スマートカードはチャレンジを受け取ると、ユーザーにPINなどの追加情報の入力を求めることで応答します。

関連トピック

RADIUSチャレンジ・レスポンス・ユーザー・インタフェースのカスタマイズ

OracleRadiusInterfaceインタフェースは、独自のクラスを作成することでカスタマイズできます。

  1. sqlnet.oraファイルを開きます。

    デフォルトでは、sqlnet.oraファイルは、ORACLE_HOME/network/adminディレクトリ、またはTNS_ADMIN環境変数によって設定されている場所にあります。TNS_ADMIN変数が正しいsqlnet.oraファイルを指定するように適切に設定されていることを確認します。

  2. SQLNET.RADIUS_AUTHENTICATION_INTERFACEパラメータを探し、そこにリストされているクラスの名前(DefaultRadiusInterface)を作成した新しいクラスの名前に置き換えます。

    この変更をsqlnet.oraファイルで行うと、クラスは認証プロセスを処理するためにOracleクライアントにロードされます。

  3. sqlnet.oraファイルを保存して終了します

サード・パーティは、ORACLE.NET.RADIUSパッケージにあるOracleRadiusInterfaceインタフェースを実装する必要があります。

関連項目:

TNS_ADMIN変数の設定例の詳細は、『SQL*Plusユーザーズ・ガイドおよびリファレンス』を参照してください

例: OracleRadiusInterfaceインタフェースの使用

OracleRadiusInterfaceインタフェースを使用して、ユーザー名とパスワードを取得できます。

例D-1に、OracleRadiusInterfaceインタフェースの使用方法を示します。

例D-1 OracleRadiusInterfaceインタフェースの使用

public interface OracleRadiusInterface {
  public void radiusRequest();
  public void radiusChallenge(String challenge);
  public String getUserName();
  public String getPassword();
}

詳細は、次のとおりです。

  • radiusRequestは、エンド・ユーザーにユーザー名とパスワードの入力を求めます(これらは後でgetUserNamegetPasswordを使用して取得されます)。

  • getUserNameは、ユーザーが入力したユーザー名を抽出します。空の文字列が戻された場合、ユーザーが操作をキャンセルするとみなされます。その後、ユーザーは認証に失敗したことを示すメッセージを受信します。

  • getPasswordは、ユーザーが入力したパスワードを抽出します。getUserNameが有効な文字列を戻し、getPasswordが空の文字列を戻した場合、データベースによってチャレンジ・キーワードがパスワードとして使用されます。ユーザーが有効なパスワードを入力した場合、チャレンジがRADIUSサーバーから戻される場合と戻されない場合がります。

  • radiusChallengeは、ユーザーがサーバーのチャレンジに応答できるように、RADIUSサーバーから送信された要求を表示します。

  • getResponseは、ユーザーが入力した応答を抽出します。有効な応答が戻された場合、その情報が新しいAccess-RequestパケットのUser-Password属性に移入されます。空の文字列が戻された場合、操作は対応する値を戻すことによって両側から中断されます。