23 RADIUS認証の構成

RADIUSは、リモート認証およびアクセスを実現するために広く使用されているクライアント/サーバー・セキュリティ・プロトコルです。

RADIUS認証の構成について

Oracle Databaseネットワークでは、RADIUS標準をサポートする任意の認証方法を使用できます。

RADIUSプロトコルをインストールおよび構成するときには、トークン・カードやスマート・カードといったRADIUS標準もサポートされます。Oracle Databaseは、クライアント/サーバー・ネットワーク環境でRADIUSを使用します。さらに、RADIUSを使用すると、OracleクライアントまたはOracleデータベース・サーバーを変更することなく、認証方式を変更できます。

エンド・ユーザーから見ると、認証手続き全体は透過的です。ユーザーがOracleデータベース・サーバーにアクセスしようとすると、RADIUSクライアントとして機能するOracleデータベース・サーバーはRADIUSサーバーに通知します。RADIUSサーバーは次の処理を行います。

  • ユーザーのセキュリティ情報を検索します。

  • 適切な認証サーバー(複数可)とOracleデータベース・サーバーの間で認証および認可情報の受渡しを行います。

  • Oracleデータベース・サーバーへのユーザー・アクセスを許可します。

  • ユーザーがいつ、どのくらいの頻度で、どのくらいの時間、Oracleデータベース・サーバーに接続していたかなどのセッション情報をログに記録します。

    ノート:

    Oracle Databaseでは、データベース・リンクを介したRADIUS認証はサポートされません。

図23-1に、Oracle Database-RADIUS環境を示します。

図23-1 Oracle環境でのRADIUS

図23-1の説明が続きます
「図23-1 Oracle環境でのRADIUS」の説明

Oracle DatabaseサーバーはRADIUSクライアントとして機能し、OracleクライアントとRADIUSサーバーの間で情報の受渡しを行います。同様に、RADIUSサーバーはOracleデータベース・サーバーと適切な認証サーバーの間で情報の受渡しを行います。

RADIUSサーバーのベンダーが認証サーバーのベンダーでもある場合も多くあります。この場合、RADIUSサーバーで認証を処理できます。たとえば、RSA ACE/Serverは、RADIUSサーバーであり認証サーバーでもあります。したがって、ユーザーのパス・コードが認証されます。

ノート:

RSA Security社の認証製品であるSecurIDは、Oracle Databaseで直接的にはサポートされていませんが、RADIUS準拠として認定されています。したがって、RADIUSのもとでSecurIDを実行できます。

詳細は、RSA Security社のSecurIDのドキュメントを参照してください。

関連項目:

sqlnet.oraファイルの詳細は、Oracle Database Net Servicesリファレンス を参照してください

RADIUSの構成要素

RADIUSには、構成設定を管理できる一連の認証の構成要素があります。

表23-1に、認証の構成要素を示します。

表23-1 RADIUS認証の構成要素

構成要素 格納される情報

Oracleクライアント

RADIUSによる通信のための構成設定

Oracleデータベース・サーバー/RADIUSクライアント

OracleクライアントとRADIUSサーバーの間で情報の受渡しを行うための構成設定

秘密キー・ファイル

RADIUSサーバー

すべてのユーザーの認証および認可情報

各クライアントの名前またはIPアドレス

各クライアントの共有シークレット

すでに認証されているユーザーが再接続しなくても別のログイン・オプションを選択できるようにする無制限の数のメニュー・ファイル

認証サーバー(複数可)

パス・コードやPINなどのユーザー認証情報(使用中の認証方式によって異なる)

ノート: RADIUSサーバーは認証サーバーになることもできます。

RADIUS認証モード

ユーザー認証は、同期認証モードまたはチャレンジ・レスポンス(非同期)認証モードのいずれかで行われます。

同期認証モード

同期モードでは、RADIUSでパスワードやSecurIDトークン・カードなどの様々な認証方式を使用できます。

同期認証モードの順序

同期認証モードは6ステップの順序です。

図23-2に、同期認証が行われる順序を示します。

図23-2 同期認証の順序

図23-2の説明が続きます
「図23-2 同期認証の順序」の説明

次のステップは、同期認証の順序を示しています。

  1. ユーザーが、接続文字列、パス・コードまたはその他の値を入力してログインします。クライアント・システムは、このデータをOracleデータベース・サーバーに渡します。

  2. RADIUSクライアントとして機能するOracleデータベース・サーバーは、OracleクライアントからのデータをRADIUSサーバーに渡します。

  3. RADIUSサーバーは、検証のためにデータをスマートカードやSecurID ACEなどの適切な認証サーバーに渡します。

  4. 認証サーバーは、アクセス受入れまたはアクセス拒否メッセージをRADIUSサーバーに返します。

  5. RADIUSサーバーは、このレスポンスをOracleデータベース・サーバー/RADIUSクライアントに渡します。

  6. Oracleデータベース・サーバー/RADIUSクライアントは、レスポンスをOracleクライアントに返します。

例: SecurIDトークン・カードによる同期認証

SecurID認証では、各ユーザーにトークン・カードあり、60秒ごとに変わる動的番号が表示されます。

Oracleデータベース・サーバー/RADIUSクライアントにアクセスするために、ユーザーは個人識別番号(PIN)とユーザーのSecurIDカード上に現在表示されている動的番号の両方を含む有効なパス・コードを入力します。Oracleデータベース・サーバーは、Oracleクライアントからのこの認証情報をRADIUSサーバー(この場合は、検証のための認証サーバー)に渡します。認証サーバー(RSA ACE/Server)によってユーザーが検証されると、受入れパケットがOracleデータベース・サーバーに送られ、次に、Oracleクライアントに渡されます。これでユーザーは認証され、適切な表やアプリケーションにアクセスできます。

関連項目:

RSA Security社から提供されるドキュメント

チャレンジ・レスポンス(非同期)認証モード

システムで非同期モードが使用されている場合、ユーザーは、SQL*Plus CONNECT文字列でユーザー名とパスワードを入力する必要はありません。

チャレンジ・レスポンス(非同期)認証モードの順序

チャレンジ・レスポンス(非同期)認証モードは12ステップの順序です。

図23-3に、チャレンジ・レスポンス(非同期)認証が行われる順序を示します。

ノート:

RADIUSサーバーが認証サーバーである場合、図23-3のステップ3、4、5およびステップ9、10、11は結合されます。

図23-3 非同期認証の順序

図23-3の説明が続きます
「図23-3 非同期認証の順序」の説明

次のステップは、非同期認証の順序を示しています。

  1. ユーザーが、Oracleデータベース・サーバーへの接続を開始します。クライアント・システムは、データをOracleデータベース・サーバーに渡します。

  2. RADIUSクライアントとして機能するOracleデータベース・サーバーは、OracleクライアントからのデータをRADIUSサーバーに渡します。

  3. RADIUSサーバーは、データをスマートカード、SecurID ACE、トークン・カード・サーバーなどの適切な認証サーバーに渡します。

  4. 認証サーバーは、ランダム番号などのチャレンジをRADIUSサーバーに送信します。

  5. RADIUSサーバーは、チャレンジをOracleデータベース・サーバー/RADIUSクライアントに渡します。

  6. Oracleデータベース・サーバー/RADIUSクライアントは、それをOracleクライアントに渡します。グラフィカル・ユーザー・インタフェースで、ユーザーにチャレンジが表示されます。

  7. ユーザーは、チャレンジに対するレスポンスを入力します。レスポンスを作成するために、ユーザーは、たとえば、受け取ったチャレンジをトークン・カードに入力できます。トークン・カードによって、グラフィカル・ユーザー・インタフェースに入力する動的なパスワードが提供されます。Oracleクライアントは、ユーザーのレスポンスをOracleデータベース・サーバー/RADIUSクライアントに渡します。

  8. Oracleデータベース・サーバー/RADIUSクライアントは、ユーザーのレスポンスをRADIUSサーバーに送信します。

  9. RADIUSサーバーは、検証のためにユーザーのレスポンスを適切な認証サーバーに渡します。

  10. 認証サーバーは、アクセス受入れまたはアクセス拒否メッセージをRADIUSサーバーに返します。

  11. RADIUSサーバーは、レスポンスをOracleデータベース・サーバー/RADIUSクライアントに渡します。

  12. Oracleデータベース・サーバー/RADIUSクライアントは、レスポンスをOracleクライアントに渡します。

例: スマートカードによる非同期認証

スマートカード認証では、ユーザーは、スマートカードを読み取るスマートカード・リーダーにスマートカードを挿入することによってログインします。

スマートカードは、情報を格納するための集積回路が埋め込まれた、クレジット・カードのようなプラスチック・カードです。

Oracleクライアントは、Oracleデータベース・サーバー/RADIUSクライアントおよびRADIUSサーバーを経由して、スマートカードに含まれるログイン情報を認証サーバーに送信します。認証サーバーは、RADIUSサーバーおよびOracleデータベース・サーバーを経由してOracleクライアントにチャレンジを戻し、認証情報をユーザーに要求します。この情報は、PINやスマートカードに含まれている他の認証情報などです。

Oracleクライアントは、Oracleデータベース・サーバーおよびRADIUSサーバーを経由して、ユーザーのレスポンスを認証サーバーに送信します。ユーザーが有効な番号を入力した場合、認証サーバーはRADIUSサーバーおよびOracleデータベース・サーバーを経由して、受入れパケットをOracleクライアントに戻します。これでユーザーは認証され、適切な表やアプリケーションへのアクセスが認可されます。ユーザーが誤った情報を入力した場合、認証サーバーはユーザーのアクセスを拒否するメッセージを戻します。

例: ActivCardトークンによる非同期認証

ActivCardトークンの1つに、キーパッドを備えた、動的パスワードを表示するハンドヘルド・デバイスがあります。

ユーザーがパスワードを入力してOracleデータベース・サーバーにアクセスしようとすると、情報はOracleデータベース・サーバー/RADIUSクライアントおよびRADIUSサーバーを経由して、適切な認証サーバーに渡されます。認証サーバーは、RADIUSサーバーおよびOracleデータベース・サーバーを経由して、クライアントにチャレンジを戻します。ユーザーがそのチャレンジをトークンに入力すると、ユーザーがレスポンスで送信する番号がトークンに表示されます。

次に、Oracleクライアントは、Oracleデータベース・サーバーおよびRADIUSサーバーを経由して、ユーザーのレスポンスを認証サーバーに送信します。ユーザーが有効な番号を入力した場合、認証サーバーはRADIUSサーバーおよびOracleデータベース・サーバーを経由して、受入れパケットをOracleクライアントに戻します。これでユーザーは認証され、適切な表やアプリケーションへのアクセスが認可されます。ユーザーが誤ったレスポンスを入力した場合、認証サーバーはユーザーのアクセスを拒否するメッセージを戻します。

RADIUS認証、認可およびアカウンティングの有効化

RADIUS認証、認可およびアカウンティングを有効にするには、Oracle Net Managerを使用します。

ステップ1: RADIUS認証の構成

RADIUS認証を構成するには、Oracleクライアントで最初に認証を構成してからサーバーで構成する必要があります。その後、追加のRADIUS機能を構成できます。

ノート:

特に示されていないかぎり、これらの構成タスクを実行するには、Oracle Net Managerを使用するか、任意のテキスト・エディタを使用してsqlnet.oraファイルを変更します。sqlnet.oraファイル内の設定はすべてのプラガブル・データベース(PDB)に適用されるということに注意してください。

ステップ1A: OracleクライアントでのRADIUSの構成

Oracle Net Managerを使用して、OracleクライアントでRADIUSを構成できます。

  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. 「使用可能なメソッド」リストから、RADIUSを選択します。

  6. 右矢印(>)を選択して、RADIUSを「選択メソッド」リストに移動します。

    使用するその他のメソッドを同じ方法で移動します。

  7. 「選択メソッド」リストでメソッドを選択し、「上へ」または「下へ」をクリックしてリスト内での位置を指定して、選択したメソッドを使用に必要な順序に並べます。

    たとえば、RADIUSをリストの最も上に置いて、使用される最初のサービスにします。

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

    sqlnet.oraファイルが次のエントリで更新されます。

    SQLNET.AUTHENTICATION_SERVICES=(RADIUS)
ステップ1B: Oracleデータベース・サーバーでのRADIUSの構成

RADIUSキーを保持するファイルを作成して、Oracleデータベース・サーバー上にこのファイルを格納する必要があります。次に、sqlnet.oraファイルで適切なパラメータを構成する必要があります。

ステップ1B(1): Oracleデータベース・サーバーでのRADIUS秘密キー・ファイルの作成

最初に、RADIUS秘密キー・ファイルを作成する必要があります。

  1. RADIUSサーバーからRADIUS秘密キーを取得します。

    RADIUSクライアントごとに、RADIUSサーバーの管理者が共有秘密キーを作成します。長さは16文字以下である必要があります。

  2. Oracleデータベース・サーバーで、次のディレクトリを作成します。

    • (UNIX) $ORACLE_HOME/network/security

    • (Windows) ORACLE_BASE\ORACLE_HOME\network\security

  3. RADIUSサーバーからコピーした共有シークレットを格納するために、ファイルradius.keyを作成します。このファイルをステップ2で作成したディレクトリに配置します。

  4. 共有秘密キーをコピーし、このキーのみを、Oracleデータベース・サーバーに作成したradius.keyファイルに貼り付けます。

  5. セキュリティのために、radius.keyのファイル権限を読取り専用に変更し、Oracle所有者のみがアクセスできるようにします。

    Oracleは、ファイル・システムに依存してこのファイルを秘密にします。

    関連項目:

    秘密キーの取得の詳細は、RADIUSサーバーの管理ドキュメントを参照してください。

ステップ1B(2): サーバー(sqlnet.oraファイル)でのRADIUSパラメータの構成

RADIUS秘密キー・ファイルの作成後、sqlnet.oraファイルで適切なパラメータを構成します。

  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. 「使用可能なメソッド」リストから、RADIUSを選択します。

  6. 右矢印(>)を選択して、RADIUSを「選択メソッド」リストに移動します。

  7. 選択したメソッドを使用に必要な順序に並べるには、「選択メソッド」リストでメソッドを選択し、「上へ」または「下へ」を選択してリスト内での位置を指定します。

    たとえば、RADIUSを使用される最初のサービスにする場合は、リストの最も上に置きます。

  8. 「その他のパラメータ」タブを選択します。

  9. 「認証サービス」リストから、RADIUSを選択します。

  10. 「ホスト名」フィールドで、デフォルトのプライマリRADIUSサーバーとしてlocalhostを受け入れるか、または別のホスト名を入力します。

  11. 「シークレット・ファイル」フィールドのデフォルト値が有効であることを確認します。

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

    sqlnet.oraファイルは次のエントリで更新されます。

    SQLNET.AUTHENTICATION_SERVICES=RADIUS
    SQLNET.RADIUS_AUTHENTICATION=RADIUS_server_{hostname|IP_address}

    ノート:

    IP_addressは、インターネット・プロトコル・バージョン4 (IPv4)またはインターネット・プロトコル・バージョン6 (IPv6)のアドレスです。RADIUSアダプタでは、IPv4ベースとIPv6ベースの両方のサーバーがサポートされています。

ステップ1B(3): Oracleデータベース・サーバー初期化パラメータの設定

sqlnet.oraファイルの構成後、init.ora初期化ファイルを構成する必要があります。

  1. 次の設定をinit.oraファイルに追加します。

    OS_AUTHENT_PREFIX=""
    

    デフォルトでは、init.oraファイルは、LinuxおよびUNIXシステムの場合はORACLE_HOME/dbsディレクトリ(または同じデータ・ファイルの場所)、Windowsの場合はORACLE_HOME\databaseディレクトリにあります。

  2. データベースを再起動します。

    例:

    SQL> SHUTDOWN
    SQL> STARTUP

関連項目:

初期化パラメータの設定の詳細は、『Oracle Databaseリファレンス』を参照してください。

ステップ1C: その他のRADIUS機能の構成

デフォルト設定を変更し、チャレンジ・レスポンス・モードを構成して、代替RADIUSサーバーのパラメータを設定できます。

ステップ1C(1): デフォルト設定の変更

Oracle Net Managerを使用して、デフォルトのRADIUS設定を変更できます。

  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. 「認証サービス」リストから、RADIUSを選択します。

  6. 次のフィールドについてデフォルト設定を変更します。

    • ポート番号: プライマリRADIUSサーバーのリスニング・ポートを指定します。デフォルト値は1645です。

    • タイムアウト(秒): Oracleデータベース・サーバーがプライマリRADIUSサーバーからの応答を待機する時間を指定します。デフォルトは15秒です。

    • 再試行回数: Oracleデータベース・サーバーがプライマリRADIUSサーバーにメッセージを再送する回数を指定します。デフォルトは3回の再試行です。RADIUSアカウンティングの構成の詳細は、「ステップ4: RADIUSアカウンティングの構成」を参照してください。

    • シークレット・ファイル: Oracleデータベース・サーバー上の秘密キーの場所を指定します。このフィールドは、秘密キー自体ではなく、秘密キー・ファイルの場所を指定します。秘密キーの指定の詳細は、「ステップ1B(1): Oracleデータベース・サーバーでのRADIUS秘密キー・ファイルの作成」を参照してください。

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

    sqlnet.oraファイルは次のエントリで更新されます。

    SQLNET.RADIUS_AUTHENTICATION_PORT=(PORT)
    SQLNET.RADIUS_AUTHENTICATION_TIMEOUT=(NUMBER OF SECONDS TO WAIT FOR response)
    SQLNET.RADIUS_AUTHENTICATION_RETRIES=(NUMBER OF TIMES TO RE-SEND TO RADIUS server)
    SQLNET.RADIUS_SECRET=(path/radius.key)
ステップ1C(2): チャレンジ・レスポンス・モードの構成

チャレンジ・レスポンス・モードを構成するには、トークン・カードから取得する動的パスワードなどの情報を指定する必要があります。

RADIUSアダプタでは、このインタフェースはJavaベースであり、最適なプラットフォーム独立性を提供します。

ノート:

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

チャレンジ・レスポンス・モードを構成するには:

  1. JDK 1.1.7またはJRE 1.1.7を使用する場合は、JAVA_HOME環境変数を、Oracleクライアントが実行されるシステム上のJREまたはJDKの場所に設定します。

    • UNIXでは、プロンプトで次のコマンドを入力します。

      % setenv JAVA_HOME /usr/local/packages/jre1.1.7B
      
    • Windowsでは、「スタート」「設定」「コントロール パネル」「システム」「環境」の順に選択し、JAVA_HOME変数を次のように設定します。

      c:\java\jre1.1.7B
      

    このステップは、他のJDK/JREバージョンでは必要ありません。

  2. Oracle Net Managerを起動します。

    • (UNIX) $ORACLE_HOME/binから、コマンドラインで次のコマンドを入力します。

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

  3. 「Oracle Netの構成」を展開し、「ローカル」から「プロファイル」を選択します。

  4. 「ネーミング」リストから、「ネットワーク・セキュリティ」を選択します。

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

  5. 「認証サービス」リストから、RADIUSを選択します。

  6. 「チャレンジ・レスポンス」フィールドで、ONと入力してチャレンジ・レスポンスを有効にします。

  7. 「デフォルト・キーワード」フィールドで、チャレンジのデフォルト値を受け入れるか、RADIUSサーバーからチャレンジを要求するためのキーワードを入力します。

    キーワード機能は、Oracleから提供されており、一部のRADIUSサーバーでサポートされています(すべてではありません)。この機能は、RADIUSサーバーでサポートされている場合にのみ使用できます。

    キーワードを設定することで、ユーザーはパスワードを使用しなくても識別情報を証明できます。ユーザーがパスワードを入力しない場合、ここで設定するキーワードがRADIUSサーバーに渡され、RADIUSサーバーは運転免許証の番号や生年月日などを要求するチャレンジで応答します。ユーザーがパスワードを入力する場合、RADIUSサーバーの構成に応じて、RADIUSサーバーはチャレンジで応答する場合と応答しない場合があります。

  8. 「インタフェース・クラス名」フィールドで、デフォルト値DefaultRadiusInterfaceを受け入れるか、チャレンジ・レスポンス対話を処理するために作成したクラスの名前を入力します。

    デフォルトのRADIUSインタフェース以外を使用する場合は、sqlnet.oraファイルを編集してSQLNET.RADIUS_CLASSPATH=(location)を入力する必要もあります(locationは、jarファイルの完全なパス名です)。これは、デフォルトでは$ORACLE_HOME/network/jlib/netradius.jar: $ORACLE_HOME/JRE/lib/vt.jarです。

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

    sqlnet.oraファイルは次のエントリで更新されます。

    SQLNET.RADIUS_CHALLENGE_RESPONSE=([ON | OFF])
    SQLNET.RADIUS_CHALLENGE_KEYWORD=(KEYWORD)
    SQLNET.RADIUS_AUTHENTICATION_INTERFACE=(name of interface including the package name delimited by "/" for ".")

関連項目:

チャレンジ・レスポンス・ユーザー・インタフェースをカスタマイズする方法の詳細は、「RADIUSを使用した認証デバイスの統合」を参照してください

ステップ1C(3): 代替RADIUSサーバーのパラメータの設定

代替RADIUSサーバーを使用する場合、追加パラメータを設定する必要があります。

  • sqlnet.oraファイルで次のパラメータを設定します。

    SQLNET.RADIUS_ALTERNATE=(hostname or ip address of alternate radius server)
    SQLNET.RADIUS_ALTERNATE_PORT=(1812)
    SQLNET.RADIUS_ALTERNATE_TIMEOUT=(number of seconds to wait for response)
    SQLNET.RADIUS_ALTERNATE_RETRIES=(number of times to re-send to radius server)

ステップ2: ユーザーの作成とアクセス権の付与

RADIUS認証の完了後、RADIUS構成に使用するOracle Databaseユーザーを作成する必要があります。

  1. SQL*Plusを起動し、次の文を実行して、Oracleデータベース・サーバーで外部で識別されるユーザーを作成してアクセス権を付与します。

    CONNECT system@database_name;
    Enter password: password
    CREATE USER username IDENTIFIED EXTERNALLY;
    GRANT CREATE SESSION TO USER username;
    EXIT
    

    Windowsを使用する場合は、Oracle Enterprise ManagerのSecurity Managerツールを使用できます。

  2. 同じusernameをRADIUSサーバーのusersファイルに入力します。

関連項目:

RADIUSサーバーの管理ドキュメント

ステップ3: 外部RADIUS認可の構成(オプション)

Oracleデータベースに接続する必要があるRADIUSユーザーに対して、Oracleサーバー、OracleクライアントおよびRADIUSサーバーを構成する必要があります。

ステップ3A:Oracle Server (RADIUSクライアント)の構成

init.oraファイルを編集して、RADIUSクライアントにOracleサーバーを構成できます。

これを行うには、init.oraファイルを変更して、データベースを再起動し、RADIUSチャレンジ・レスポンス・モードを設定する必要があります。

  1. OS_ROLESパラメータをinit.oraファイルに追加し、このパラメータを次のようにTRUEに設定します。

    OS_ROLES=TRUE
    

    デフォルトでは、init.oraファイルは、LinuxおよびUNIXシステムの場合はORACLE_HOME/dbsディレクトリ(または同じデータ・ファイルの場所)、Windowsの場合はORACLE_HOME\databaseディレクトリにあります。

  2. init.oraファイルに対する変更がシステムに反映されるように、データベースを再起動します。

    例:

    SQL> SHUTDOWN 
    SQL> STARTUP
    
  3. ステップ1C(2): チャレンジ・レスポンス・モードの構成に記載されているステップに従って、サーバーのRADIUSチャレンジ・レスポンス・モードをONに設定していない場合は設定します。

  4. 外部で識別されるユーザーおよびロールを追加します。

ステップ3B: Oracleクライアント(ユーザーがログインする場所)の構成

次に、ユーザーがログインするOracleクライアントを構成する必要があります。

ステップ3C: RADIUSサーバーの構成

RADIUSサーバーを構成するには、RADIUSサーバーの属性構成ファイルを変更する必要があります。

  1. 次の属性をRADIUSサーバー属性構成ファイルに追加します。

    属性名 コード

    VENDOR_SPECIFIC

    26

    整数

    ORACLE_ROLE

    1

    文字列

  2. SMIネットワーク管理プライベート・エンタープライズ・コード111が含まれているRADIUSサーバー属性構成ファイルで、OracleのベンダーIDを割り当てます。

    たとえば、RADIUSサーバー属性構成ファイルに次のように入力します。

    VALUE VENDOR_SPECIFIC ORACLE 111

  3. 次の構文を使用して、ORACLE_ROLE属性を外部RADIUS認可を使用するユーザーのユーザー・プロファイルに追加します。

    ORA_databaseSID_rolename[_[A]|[D]]

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

    • ORAは、このロールをOracle用に使用することを指定します。

    • databaseSIDは、データベースのinit.oraファイル内で構成されているOracleシステム識別子です。

      デフォルトでは、init.oraファイルは、LinuxおよびUNIXシステムの場合はORACLE_HOME/dbsディレクトリ(または同じデータ・ファイルの場所)、Windowsの場合はORACLE_HOME\databaseディレクトリにあります。

    • rolenameは、データ・ディクショナリで定義されているロール名です。

    • Aは、ユーザーがこのロールの管理者の権限を持つことを示すオプションの文字です。

    • Dは、このロールをデフォルトで有効にすることを示すオプションの文字です。

    OracleロールにマップされるRADIUSグループが、ORACLE_ROLEの構文に準拠していることを確認します。

    例:

    USERNAME     USERPASSWD="user_password",
                 SERVICE_TYPE=login_user,
                 VENDOR_SPECIFIC=ORACLE,
                 ORACLE_ROLE=ORA_ora920_sysdba

    関連項目:

    サーバーの構成の詳細は、RADIUSサーバーの管理ドキュメントを参照してください。

ステップ4:RADIUSアカウンティングの構成

RADIUSアカウンティングは、Oracleデータベース・サーバーへのアクセスに関する情報をログに記録し、RADIUSアカウンティング・サーバー上のファイルに格納します。

この機能は、RADIUSサーバーと認証サーバーの両方でサポートされている場合にのみ使用します。

ステップ4A: Oracleデータベース・サーバーでのRADIUSアカウンティングの設定

RADIUSアカウンティングをサーバーで設定するには、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. 「認証サービス」リストから、RADIUSを選択します。

  6. 「アカウンティングの送信」フィールドで、アカウンティングを有効にするにはONと入力し、無効にするにはOFFと入力します。

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

    sqlnet.oraファイルが次のエントリで更新されます。

    SQLNET.RADIUS_SEND_ACCOUNTING= ON
Step 4B: RADIUSアカウンティング・サーバーの構成

RADIUSアカウンティング・サーバーは、RADIUS認証サーバーと同じホストまたは別のホストにあります。

  • RADIUSアカウンティングの構成の詳細は、RADIUSサーバーの管理ドキュメントを参照してください。

ステップ5: RADIUSクライアント名のRADIUSサーバー・データベースへの追加

選択するRADIUSサーバーは、RADIUS標準に準拠している必要があります。

Internet Engineering Task Force (IETF) RFC #2138 Remote Authentication Dial In User Service (RADIUS)およびRFC #2139 RADIUS Accountingの規格に準拠するRADIUSサーバーは、すべて使用できます。RADIUSサーバーには様々なものがあるため、固有の相互運用性要件について、使用するRADIUSサーバーのドキュメントで確認してください。

RADIUSクライアント名をLivingston RADIUSサーバーに追加するには:

  1. /etc/raddb/clientsにあるclientsファイルを開きます。

    次のテキストと表が表示されます。

    @ (#) clients 1.1 2/21/96 Copyright 1991 Livingston Enterprises Inc
    This file contains a list of clients which are allowed to make authentication requests and their encryption key. The first field is a valid hostname. The second field (separated by blanks or tabs) is the encryption key.
    Client Name                     Key
    
  2. CLIENT NAME列に、Oracleデータベース・サーバーが実行されているホストのホスト名またはIPアドレスを入力します。

    KEY列に、共有シークレットを入力します。

    CLIENT NAME列に入力する値は、クライアントの名前かIPアドレスかにかかわらず、RADIUSサーバーによって異なります。

  3. clientsファイルを保存して閉じます。

関連項目:

RADIUSサーバーの管理ドキュメント

ステップ6: RADIUSとともに使用する認証サーバーの構成

RADIUSクライアント名をRADIUSサーバー・データベースに追加した後、RADIUSを使用するように認証サーバーを構成できます。

  • 認証サーバーの構成の詳細は、認証サーバーのドキュメントを参照してください。

ステップ7: 認証サーバーとともに使用するRADIUSサーバーの構成

RADIUSで使用するように認証サーバーを構成した後、その認証サーバーを使用するようにRADIUSサーバーを構成できます。

  • 認証サーバーとともに使用するRADIUSサーバーの構成の詳細は、RADIUSサーバーのドキュメントを参照してください。

ステップ8: マッピング・ロールの構成

RADIUSサーバーでベンダー・タイプ属性がサポートされている場合は、ロールをRADIUSサーバーに格納して管理できます。

RADIUSを使用したCONNECT要求があると、Oracleデータベース・サーバーはロールをダウンロードします。この機能を使用するには、Oracleデータベース・サーバーとRADIUSサーバーの両方でロールを構成する必要があります。

  1. テキスト・エディタを使用して、Oracleデータベース・サーバーの初期化パラメータ・ファイルでOS_ROLESパラメータを設定します。

    デフォルトでは、init.oraファイルは、LinuxおよびUNIXシステムの場合はORACLE_HOME/dbsディレクトリ(または同じデータ・ファイルの場所)、Windowsの場合はORACLE_HOME\databaseディレクトリにあります。

  2. Oracleデータベース・サーバーを停止して再起動します。

    例:

    SHUTDOWN
    STARTUP
    
  3. RADIUSサーバーがOracleデータベース・サーバー上で管理する各ロールを、値IDENTIFIED EXTERNALLYを使用して作成します。

    RADIUSサーバーでロールを構成するには、次の構文を使用します。

    ORA_DatabaseName.DatabaseDomainName_RoleName
    

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

    • DatabaseNameは、ロールが作成されているOracleデータベース・サーバーの名前です。これは、DB_NAME初期化パラメータの値と同じです。

    • DatabaseDomainNameは、Oracleデータベース・サーバーが属するドメインの名前です。この値は、DB_DOMAIN初期化パラメータの値と同じです。

    • RoleNameは、Oracleデータベース・サーバーで作成されたロールの名前です。

    例:

    ORA_USERDB.US.EXAMPLE.COM_MANAGER
    
  4. RADIUSチャレンジ・レスポンス・モードを構成します。

RADIUSを使用したデータベースへのログイン

RADIUSを使用してデータベースにログインするには、同期認証モードまたはチャレンジ・レスポンス・モードのいずれかを使用します。

  • SQL*Plusを起動して、次のいずれかの方法でデータベースにログインします。

    • 同期認証モードを使用する場合は、最初にチャレンジ・レスポンス・モードがONになっていないことを確認して、次のコマンドを入力します。

      CONNECT username@database_alias
      Enter password: password
      
    • チャレンジ・レスポンス・モードを使用する場合は、チャレンジ・レスポンス・モードがONに設定されていることを確認して、次のコマンドを入力します。

      CONNECT /@database_alias
      

ノート:

チャレンジ・レスポンス・モードは、ログインのすべてのケースについて構成できます。

RSA ACE/Server構成チェックリスト

RSA ACE/Server RADIUSサーバーを使用する場合は、最初の接続を試みる前に、このサーバーのホスト・エージェントとSecurIDトークンを確認してください。

  • ノード・シークレットを送信するようにRSA ACE/Serverのホスト・エージェントが設定されていることを確認します。バージョン5.0では、これを行うには「SENT Node secret」ボックスの選択を解除したままにします。RSA ACE/Serverがエージェントへのノード・シークレットの送信に失敗した場合は、ノード検証失敗メッセージがRSA ACE/Serverのログに書き込まれます。

  • RSA SecurIDトークンを使用している場合は、トークンがRSA ACE/Serverと同期されていることを確認します。

関連項目:

トラブルシューティングの詳細は、RSA ACE/Serverのドキュメントを参照してください。