Oracleでは、RADIUSチャレンジ・レスポンス・ユーザー・インタフェースを使用して、RADIUS構成での認証をさらに強化できます。
内容は次のとおりです。
サード・パーティ認証ベンダーを使用して、RADIUSチャレンジ・レスポンス・ユーザー・インタフェースを特定のデバイスに合うようにカスタマイズできます。
RADIUS規格をサポートする任意の認証デバイスを、Oracleユーザーが認証されるように設定できます。認証デバイスでチャレンジ・レスポンス・モードを使用する場合、グラフィカル・インタフェースでエンド・ユーザーはまずパスワードの入力、次に追加情報の入力を求められます(たとえば、ユーザーがトークン・カードから取得する動的パスワードがあります)。このインタフェースはJavaベースで、最適なプラットフォーム独立性を提供します。
認証デバイスのサード・パーティ・ベンダーは、その独自のデバイスに合せてこのグラフィカル・ユーザー・インタフェースをカスタマイズする必要があります。たとえば、スマートカード・ベンダーは、チャレンジをスマートカード・リーダーに発行するようにOracleクライアントをカスタマイズします。スマートカードはチャレンジを受け取ると、ユーザーにPINなどの追加情報の入力を求めることで応答します。
関連項目:
RADIUS認証の構成独自のクラスを作成して、OracleRadiusInterface
インタフェースをカスタマイズできます。
サード・パーティは、ORACLE.NET.RADIUS
パッケージにあるOracleRadiusInterface
インタフェースを実装する必要があります。
関連項目:
TNS_ADMIN
変数の詳細および設定例は、『SQL*Plusユーザーズ・ガイドおよびリファレンス』を参照してください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
は、エンド・ユーザーにユーザー名とパスワードの入力を求めます(これらは後でgetUserName
とgetPassword
を使用して取得されます)。
getUserName
は、ユーザーが入力したユーザー名を抽出します。空の文字列が戻された場合、ユーザーが操作をキャンセルするとみなされます。その後、ユーザーは認証に失敗したことを示すメッセージを受信します。
getPassword
は、ユーザーが入力したパスワードを抽出します。getUserName
が有効な文字列を戻し、getPassword
が空の文字列を戻した場合、データベースによってチャレンジ・キーワードがパスワードとして使用されます。ユーザーが有効なパスワードを入力した場合、チャレンジがRADIUSサーバーから戻される場合と戻されない場合がります。
radiusChallenge
は、ユーザーがサーバーのチャレンジに応答できるように、RADIUSサーバーから送信された要求を表示します。
getResponse
は、ユーザーが入力した応答を抽出します。有効な応答が戻された場合、その情報が新しいAccess-Request
パケットのUser-Password
属性に移入されます。空の文字列が戻された場合、操作は対応する値を戻すことによって両側から中断されます。