この章では、Oracle Advanced Securityで複数の認証方式を構成する方法、および別の認証方式を構成している場合に従来のユーザー名とパスワードの認証を使用する方法について説明します。また、Oracleクライアントが特定の認証方式を使用し、Oracleサーバーが任意の認証方式を受け入れられるようにネットワークを構成する方法についても説明します。
次の項目について説明します。
Oracle Advanced Securityの認証方式が構成されている場合にユーザー名とパスワードを使用してOracle Databaseサーバーに接続するには、外部認証を使用禁止にします(「Oracle Advanced Security認証の使用禁止」を参照してください)。
外部認証を使用禁止にすると、ユーザーは次のように入力してデータベースに接続できます。
% sqlplus username@net_service_name
Enter password: password
例:
% sqlplus hr@emp
Enter password: password
注意: 1つのデータベースで、外部認証ユーザーとパスワード認証ユーザーをどちらも含む複数の認証方式を構成できます。 |
認証方式を使用禁止にするには、Oracle Net Managerを使用します(「Oracle Net Managerの起動」を参照してください)。
Oracle Advanced Securityプロファイルにナビゲートします。「Oracle Advanced Securityプロファイルへのナビゲート」を参照してください。図10-1に示すように、「Oracle Advanced Security」というタブのウィンドウが表示されます。
多くのネットワークは、1つのセキュリティ・サーバー上で複数の認証方式を使用しています。そのため、Oracle Advanced Securityでは、Oracleクライアントが特定の認証方式を使用し、Oracle Databaseサーバーが任意の認証方式を受け入れられるようにネットワークを構成できます。
クライアント・システムとサーバー・システムの両方に複数の認証方式を設定するには、Oracle Net Managerを使用するか、テキスト・エディタを使用してsqlnet.ora
ファイルを変更します。
Oracle Net Managerを使用して、クライアントとサーバーの両方に認証方式を追加します(「Oracle Net Managerの起動」を参照してください)。
複数の認証方式を構成する手順は次のとおりです。
Oracle Advanced Securityプロファイルにナビゲートします。「Oracle Advanced Securityプロファイルへのナビゲート」を参照してください。図10-1に示すように、「Oracle Advanced Security」というタブのウィンドウが表示されます。
「認証」タブをクリックします。
「使用可能なメソッド」リストで方式を選択します。
次に、右矢印「>」をクリックして、選択した方式を「選択メソッド」リストに順に移動します。
選択した方式を使用優先順位の高い順に並べます。「選択メソッド」リストで方式を選択し、「上へ」または「下へ」を選択して並べ替えます。
「ファイル」→「ネットワーク構成の保存」を選択します。
sqlnet.ora
ファイル中の次のエントリが更新され、選択した認証方式が左から順にリストされます。
SQLNET.AUTHENTICATION_SERVICES = (KERBEROS5, RADIUS)
注意: SecurID機能は、RADIUSを介して使用できます。RADIUSのサポートは、RSA ACE/Serverに組み込まれています。 |
この項では、Oracle Databaseでネットワーク認証を使用するために設定するパラメータについて説明します。関連する作業は次のとおりです。
すべてのクライアントとサーバーで、それぞれがサポートされている認証方式を使用するには、sqlnet.ora
ファイルで次のパラメータが設定されている必要があります。
SQLNET.AUTHENTICATION_SERVICES=(oracle_authentication_method)
たとえば、Kerberos認証を使用するすべてのクライアントとサーバーに対して、sqlnet.ora
パラメータが次のように設定されている必要があります。
SQLNET.AUTHENTICATION_SERVICES=(KERBEROS5)
REMOVE_OS_AUTHENTがTRUEに設定されていないことを確認するには、各データベース・インスタンスで認証方式を構成するときに、初期化ファイルに次のパラメータを追加します。
REMOTE_OS_AUTHENT=FALSE
注意: REMOTE_OS_AUTHENT をTRUE に設定すると、非保護プロトコル(TCPなど)を使用するユーザーがオペレーティング・システム許可ログイン(以前のOPS$ ログイン)を実行できるので、セキュリティが侵害されるおそれがあります。 |
注意: REMOTE_OS_AUTHENT 初期化パラメータ・ファイルをFALSE に設定する他に、PFILE オプションを使用してstartupコマンドを発行する必要があります。これにより、initSID.ora のパラメータが確実に使用されるようになります。 |
REMOTE_OS_AUTHENT
をFALSE
に設定した場合に、サーバーがクライアントの要求した認証方式を提供できないと、認証サービスの折衝が失敗して、接続が終了します。
クライアント側またはサーバー側のsqlnet.ora
ファイルにパラメータが次のように設定されている場合、データベースは入力されたユーザー名とパスワードを使用して、ユーザーのログインを許可しようとします。
SQLNET.AUTHENTICATION_SERVICES=(NONE)
しかし、REMOTE_OS_AUTHENT
がFALSE
に設定されている場合、接続は失敗します。
認証サービスでは長いユーザー名を使用できますが、Oracleユーザー名は30文字に制限されています。したがって、データベース・インスタンス用の初期化ファイルで、次のようにOS_AUTHENT_PREFIX
パラメータをNULL値に設定することをお薦めします。
OS_AUTHENT_PREFIX=""
注意: OS_AUTHENT_PREFIX のデフォルト値はOPS$ ですが、このパラメータは任意の文字列に設定できます。 |
注意: データベースで OS_AUTHENT_PREFIX がすでにNULL (" ")以外の値に設定されている場合は、その値を変更しないでください。変更すると、すでに作成されている外部で識別されるユーザーがOracleサーバーに接続できなくなります。 |
ユーザーを作成するには、SQL*Plusを起動し、次のように入力します。
SQL> CREATE USER os_authent_prefix username IDENTIFIED EXTERNALLY;
OS_AUTHENT_PREFIX
がNULL値("")に設定されているときは、次のように入力してユーザーkingを作成します。
SQL> CREATE USER king IDENTIFIED EXTERNALLY;
この方法でユーザーを作成すると、外部的に識別されるユーザーに対して、異なるユーザー名を管理する必要がありません。これは、サポートされているすべての認証方式に適用されます。