28 厳密認証の使用のカスタマイズ

Oracle Databaseのネイティブ・ネットワーク暗号化および厳密認証のもとで、複数の認証方法を構成できます。

28.1 厳密認証を使用したデータベースへの接続

パスワード認証を使用して、厳密認証を使用するように構成されたデータベースに接続できます。

  1. Oracleネットワークおよび厳密認証方式が構成されている場合に、ユーザー名とパスワードを使用してOracleデータベース・サーバーに接続するには、外部認証を無効化します。
    Oracleネットワークおよび厳密認証方式が構成されている場合に、ユーザー名とパスワードを使用してOracleデータベース・サーバーに接続する前に、まず外部認証を無効化して厳密認証を無効化する必要があります。
  2. 外部認証を無効化して、次の形式を使用してデータベースに接続します。
    % sqlplus username@net_service_name
    Enter password: password
    

    たとえば:

    % sqlplus hr@emp
    Enter password: password

    単一データベースに、外部認証ユーザーとパスワード認証ユーザーの両方を含む複数の認証方式を構成できます。

28.2 厳密認証およびネイティブ・ネットワーク暗号化の無効化

Oracle Net Managerを使用して、厳密認証およびネイティブ・ネットワーク暗号化を無効にすることができます。

  1. Oracle Net Managerを起動します。
    • (UNIX) $ORACLE_HOME/binから、コマンドラインで次のコマンドを入力します。

      netmgr
      
    • (Windows)「スタート」「プログラム」「Oracle - HOME_NAME」「Configuration and Migration Tools」「Net Manager」を選択します。

  2. 「Oracle Netの構成」を展開し、「ローカル」から「プロファイル」を選択します。
  3. 「ネーミング」リストから、「ネットワーク・セキュリティ」を選択します。

    ネットワーク・セキュリティのタブ付きウィンドウが表示されます。

  4. 「認証」タブ(デフォルトで選択されています)を選択します。
  5. 「選択メソッド」リスト内の認証方式を順番に選択して左矢印[<]をクリックすることによって「使用可能なメソッド」リストにすべて移動します。
  6. 「暗号化」タブを選択します。
  7. 次を実行します。
    • 「暗号化」メニューから「SERVER」を選択します。
    • 「暗号化タイプ」「拒否」に設定します。
    • 暗号化シードが使用された場合は、「暗号化シード」フィールドに有効な暗号化シードを入力します。
    • 「選択メソッド」の下の任意のメソッドを「使用可能なメソッド」フィールドに移動します。
  8. クライアントのネイティブ・ネットワーク暗号化を無効にするには、「暗号化」メニューからCLIENTを選択して、前述のステップを繰り返します。
  9. 「ファイル」メニューから、「ネットワーク構成の保存」を選択します。

    sqlnet.oraファイルが次のエントリで更新され、厳密認証およびネイティブ・ネットワーク暗号化が無効であることを示します。

    厳密認証:

    SQLNET.AUTHENTICATION_SERVICES = (NONE)
    

    ローカル・データベース・パスワード認証を使用している場合は、クライアントでSQLNET.AUTHENTICATION_SERVICES=(NONE)を設定することもできます。この設定により、クライアントのパフォーマンスが向上します。

    ネイティブ・ネットワーク暗号化については、サーバー側とクライアント側で個別に設定できます。次に、サーバーとクライアントの両方でネイティブ・ネットワーク暗号化を無効にする例を示します。

    SQLNET.ENCRYPTION_SERVER = REJECTED
    SQLNET.ENCRYPTION_CLIENT = REJECTED

    sqlnet.oraファイル内の設定はすべてのプラガブル・データベース(PDB)に適用されるということに注意してください。

28.3 複数の認証方式の構成

多くのネットワークにおいて、単一のセキュリティ・サーバーで複数の認証方式が使用されています。

そのため、Oracle Databaseでは、Oracleクライアントが特定の認証方式を使用できるように、および、Oracleデータベース・サーバーが指定された任意の方式を受け入れることができるように、ネットワークを構成できます。

Oracle Net Managerを使用するか、または任意のテキスト・エディタを使用してsqlnet.oraファイルを変更することによって、クライアント・システムとサーバー・システムの両方で複数の認証方式を設定できます。クライアントとサーバーの両方に認証方式を追加するには、Oracle Net Managerを使用します。

  1. Oracle Net Managerを起動します。
    • (UNIX) $ORACLE_HOME/binから、コマンドラインで次のコマンドを入力します。

      netmgr
      
    • (Windows)「スタート」「プログラム」「Oracle - HOME_NAME」「Configuration and Migration Tools」「Net Manager」を選択します。

  2. 「Oracle Netの構成」を展開し、「ローカル」から「プロファイル」を選択します。
  3. 「ネーミング」リストから、「ネットワーク・セキュリティ」を選択します。

    ネットワーク・セキュリティのタブ付きウィンドウが表示されます。

  4. 「認証」タブを選択します。
  5. 「使用可能なメソッド」リストに一覧表示されている方式を選択します。
  6. 右矢印(>)をクリックして、選択した方式を順番に「選択メソッド」リストに移動します。
  7. 選択した方式を目的の利用順に並べます。

    そのためには、「選択メソッド」リストで方式を選択し、「上へ」または「下へ」を選択してリスト内での位置を変更します。

  8. 「ファイル」メニューから、「ネットワーク構成の保存」を選択します。

    sqlnet.oraファイルが次のエントリで更新され、選択した認証方式が一覧表示されます。

    SQLNET.AUTHENTICATION_SERVICES = (KERBEROS5, RADIUS)

ノート:

SecurID機能はRADIUSによって提供されます。RADIUSサポートはRSA ACE/Serverに組み込まれています。

関連トピック

28.4 外部認証のためのOracle Databaseの構成

パラメータを使用して、ネットワーク認証を使用するようにOracle Databaseを構成できます。

28.4.1 sqlnet.oraでのSQLNET.AUTHENTICATION_SERVICESパラメータの設定

SQLNET.AUTHENTICATION_SERVICESパラメータでは、使用する認証方式とバージョンを定義します。

すべてのクライアントおよびサーバーで、サポートされている認証方式をそれぞれが使用できるようにするには、sqlnet.oraファイルでSQLNET.AUTHENTICATION_SERVICESパラメータを設定する必要があります。
  • 次の構文を使用して、SQLNET.AUTHENTICATION_SERVICESパラメータを設定します。
    SQLNET.AUTHENTICATION_SERVICES=(oracle_authentication_method)

    たとえば、すべてのクライアントとサーバーがKerberos認証を使用する場合は次のようにします。

    SQLNET.AUTHENTICATION_SERVICES=(KERBEROS5)
    

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

    ローカル・データベース・パスワード認証のみを使用している場合は、クライアント・パフォーマンスを向上させるためにSQLNET.AUTHENTICATION_SERVICESを次のように設定します。

    SQLNET.AUTHENTICATION_SERVICES=(NONE)

28.4.2 OS_AUTHENT_PREFIXのNull値への設定

OS_AUTHENT_PREFIXパラメータでは、Oracle Databaseがサーバーに接続しようとするユーザーの認証に使用する接頭辞を指定します。

認証サービスベースのユーザー名は長くてもかまいませんが、Oracleユーザー名は128バイトまでに制限されています。OS_AUTHENT_PREFIXパラメータをnull値に設定することを強くお薦めします。
  • データベース・インスタンスの初期化ファイルで、OS_AUTHENT_PREFIXを次のように設定します。
    OS_AUTHENT_PREFIX=""

    次のことに注意してください。

    • OS_AUTHENT_PREFIXのデフォルト値はOPS$ですが、任意の文字列に設定できます。

    • データベースでOS_AUTHENT_PREFIXの値がすでにNULL (" ")以外に設定されている場合は、変更しないでください(変更すると、以前に作成され、外部で識別されたユーザーがOracleサーバーに接続できなくなる可能性があります)。

    OS_AUTHENT_PREFIXをnullに設定した後、次の構文を使用して外部ユーザーを作成できます。

    CREATE USER os_authent_prefix_username IDENTIFIED EXTERNALLY;

    たとえば、ユーザーkingを作成するとします。

    CREATE USER king IDENTIFIED EXTERNALLY;
    

    このようにユーザーを作成すると、外部で識別されたユーザーの様々なユーザー名の管理が不要になるという利点があります。これは、サポートされているすべての認証方式に当てはまります。