A カスタム・データベース・プロバイダ
この項では、SQL*Plusクライアント用のカスタム・データベース・プロバイダ(ora-custom-db-provider
)をインストールし、Yubikey OTPをサポートするように構成する方法について説明します。
現在、Oracle DBでは、SQL*PlusクライアントからのYubikey OTP (44chars)はRADIUSサーバーでのマルチファクタ認証を有効にできません。この制限を克服するために、SQLPlusクライアントにインストールできるカスタムUI実装が提供されています。カスタムUI実装は、Yubikey OTPを含むマルチファクタ認証をサポートしています。
ora-custom-db-provider-1.0.0.jar
は、idm-radius
dockerイメージにパッケージ化されており、次の場所のdockerコンテナからコピーできます:
/u01/oracle/ora-custom-db-provider
カスタムUI実装の使用を開始するには、SQL *Plusクライアントに対して次のタスクを実行します:
- 次の設定で
sqlnet.ora
ファイルを更新する必要があります。sqlnet.ora
ファイルは、ORACLE_HOME/network/admin/sqlnet.ora
に存在します。Oracle Net Managerを使用することをお薦めします。詳細は、OracleクライアントでのRADIUSの構成に関する項を参照してくださいSQLNET.RADIUS_AUTHENTICATION_INTERFACE = oracle/idm/radius/dbprovider/CustomRadiusInterface
SQLNET.RADIUS_CLASSPATH = <LIB_FOLDER>/ora-custom-db-provider-1.0.0.jar:<ORACLE_HOME>/network/jlib/netradius8.jar:<LIB_FOLDER>/aopalliance-repackaged-2.6.1.jar:<LIB_FOLDER>/hk2-api-2.6.1.jar:<LIB_FOLDER>/hk2-locator-2.6.1.jar:<LIB_FOLDER>/hk2-utils-2.6.1.jar:<LIB_FOLDER>/jackson-annotations-2.10.1.jar:<LIB_FOLDER>/jackson-core-2.10.1.jar:<LIB_FOLDER>/jackson-databind-2.10.1.jar:<LIB_FOLDER>/jackson-module-jaxb-annotations-2.10.1.jar:<LIB_FOLDER>/jakarta.activation-1.2.2.jar:<LIB_FOLDER>/jakarta.activation-api-1.2.1.jar:<LIB_FOLDER>/jakarta.annotation-api-1.3.5.jar:<LIB_FOLDER>/jakarta.inject-2.6.1.jar:<LIB_FOLDER>/jakarta.ws.rs-api-2.1.6.jar:<LIB_FOLDER>/jakarta.xml.bind-api-2.3.2.jar:<LIB_FOLDER>/javassist-3.25.0-GA.jar:<LIB_FOLDER>/jersey-client-2.32.jar:<LIB_FOLDER>/jersey-common-2.32.jar:<LIB_FOLDER>/jersey-entity-filtering-2.32.jar:<LIB_FOLDER>/jersey-hk2-2.32.jar:<LIB_FOLDER>/jersey-media-json-jackson-2.32.jar:<LIB_FOLDER>/osgi-resource-locator-1.0.3.jar:<ORACLE_HOME>/network/jlib:<ORACLE_HOME>/jdk/jre/lib:<ORACLE_HOME>/lib:<ORACLE_HOME>/jdk/jre/lib/amd64:<ORACLE_HOME>/jdk/jre/lib/amd64/server/
前述のすべての必須jarをファイル・システムのフォルダ(LIB_FOLDER)にコピーできます。前述の設定で絶対パスを指定する必要があります。
- カスタムUIでパスワードとOTPを接続および検証するには、RADIUS Server Host、RADIUS Server HTTPS Port、DB Server Hostなどの必須パラメータを構成する必要があります。
config.properties
ファイルを使用して必須パラメータを構成できます。デフォルトでは、config.properties
ファイルはUSER.HOME
(user.home
システム・プロパティ)で検索されます。この場所は、ENV変数: IRA_CONFIG_PATHを定義することで上書きできます。次に例を示します
ここでは、前述のパスでexport IRA_CONFIG_PATH=/home/opc/uiconfig
config.properties
ファイルが検索されます。ノート:
RADIUSサーバーとデータベース・サーバーのホスト名別名を定義し、RADIUSサーバーで使用されるデフォルトのHTTPSポートが8080の場合、config.properties
ファイルを使用する必要はありません。
config.properties
ファイルのパラメータ
config.properties
ファイル内のパラメータは次のとおりです:
- RADIUS_HOST
接続先のRADIUSサーバーのIPアドレスを表します。
ora-radius-server
という名前でホスト名別名が定義されている場合は、デフォルトでそれがRADIUS_HOSTとみなされます。それ以外の場合は、config.properties
ファイル内のRADIUS_HOSTの値が考慮されます。 - RADIUS_HTTPS_PORT
接続先のRADIUSサーバーのHTTPSポートを表します。デフォルトでは、8080が使用されます。RADIUSサーバーで別のHTTPSポートを使用する場合は、
config.properties
ファイルにこのパラメータを定義する必要があります。 - DB_SERVER_HOST
DBサーバーのIPアドレスを表します。
db-server
という名前でホスト名別名が定義されている場合は、デフォルトでそれがDB_SERVER_HOSTとみなされます。それ以外の場合は、config.properties
ファイル内のDB_SERVER_HOSTの値が考慮されます。
config.properties
ファイル・パラメータのサンプル値
config.properties
ファイル内のパラメータのサンプル値は次のとおりです:
db-server
というホスト名別名が定義されている場合、DB_SERVER_HOSTを構成する必要はありません。 DB_SERVER_HOST=1.1.1.1
ora-radius-server
というホスト名別名が定義されている場合、RADIUS_HOSTを構成する必要はありません。
RADIUS_HOST=2.2.2.2
RADIUS_HTTPS_PORT=8090
トラブルシューティング
基本的なロギング機能は、SQL*Plusクライアントからの接続中に問題が発生した場合にロギングのオン/オフのみを行う機能を提供します。必要に応じて、config.propertiesファイルで次のプロパティを構成できます。
ロギングを有効にするには、次のプロパティを設定します:
ENABLE_LOG=true
ora-custom-mfa.log
はシステム・プロパティuser.dir
の下に作成されます。この場所は、次のプロパティを定義することでカスタマイズできます:
LOG_FILE_LOCATION=path_where_logfile_should_be_created
custom-db-provider
がRADIUSサーバーに接続できずにタイムアウトが発生する場合は、次の2つのプロパティを構成します:
-
CONNECT_TIMEOUT: タイムアウトの前にクライアントがRADIUSサーバーへの接続を待機する時間をミリ秒単位で表します。デフォルト値は60000ms (1分)です。
-
READ_TIMEOUT: タイムアウトの前にクライアントがサーバーの応答を待機する時間をミリ秒単位で表します。デフォルト値は60000ms (1分)です。