KerberosおよびRADIUS認証

従来のユーザー名とパスワードを使用したターゲット・データベースへのログインに加えて、名前付き資格証明を使用してEnterprise Manager環境でOracle Databasesを管理することもできます。Enterprise Manager名前付き資格証明は、Kerberos (ユーザー名/パスワードおよびKeytab)とRADIUS資格証明タイプの両方をサポートします。

現在、KerberosおよびRADIUS資格証明は、次のデータベース管理機能でサポートされています。
  • Enterprise Manager Management Server (「ユーザー」ページなど)からの直接データベース接続を介してアクセスされる基本的な管理操作
  • データベース・パフォーマンス・ページ(パフォーマンス・ハブを含む)
  • SQLおよびSQLスクリプト・ジョブの実行

内容は次のとおりです。

Kerberos Keytab

データベース・ターゲットの認証にKerberos Keytabを使用するには、ユーザー名およびkeytabファイルを定義するDBKerberosKeytabCredsタイプのEnterprise Managerに名前付き資格証明を作成します。keytabファイルを実装するには、次の2つの方法があります。

OMS/リポジトリへのキータブ・ファイルのコンテンツのアップロード

SSHベースの資格証明の定義とほぼ同じ方法で、keytabファイルのコンテンツをOMSおよびリポジトリに物理的にアップロードできます。名前付き資格証明をDBKerberosKeytabCreds資格証明タイプで定義する場合、Enterprise Managerはこのkeytabを使用してログインし、データベース・ターゲットに接続します。名前付き資格証明の更新によってパスワードがローテーションされたためにkeytabが変更された場合は、Enterprise Managerのkeytabの内容を更新する必要があります。

次の図は、名前付き資格証明の作成時にkeytabファイルを指定する方法を示しています。


図はkeytabファイルの指定方法を示しています

Keytabファイルへのフルパスの指定

OMS (複数のOMS環境の場合は各OMS)からアクセス可能なkeytabファイルへのフルパスを指定することもできます。keytabファイルは、ファイルシステム上の同じ場所(これはNFSがマウントされているkeytabファイルの単一コピーである可能性があります)に存在し、OMSユーザーに少なくとも読取りアクセスを許可する適切なファイル権限で保護されている必要があります。keytabへの変更で更新したファイルを、この場所に保持する必要があります。これは、Enterprise Managerの外部で完全に独立して実行できます。

次の図は、DBKerberosKeytabCreds資格証明タイプのインスタンスを定義する方法を示しています。


図はkeytabファイルへのフルパスを示しています。

サポートされている任意の資格証明タイプを使用したワンタイム・データベース・ターゲット・ログイン

ワンタイム・データベース・ターゲット・ログインは、サポートされている資格証明タイプのいずれかを使用して実行できます。名前付きの資格証明を事前に定義し、その資格証明を使用してデータベース・ターゲットにログインする必要はありません。これは、資格証明やkeytabファイルをEnterprise Managerに保存せず、(ラップトップなどで)ローカル・ファイルを使用して毎回ログインする場合に便利です。このファイルは、Enterprise Managerから独立して更新できます。

データベース・ログイン・ページで資格証明の「新規」ラジオ・ボタンを選択すると、ドロップダウン・メニューが表示され、データベース・ターゲットに対して有効な資格証明タイプのリストから選択できます。


図は、ワンタイム・ログインの資格証明タイプ・セレクタを示しています。

ワンタイム・ログインの有効化

複数の資格証明タイプを使用してワンタイム・ログインを有効にし、OMSプロパティoracle.sysman.db.multiCredTypeLoginを介して2つの新しい資格証明タイプ(RADIUSおよびKerberos Keytab)のサポートを有効にします。

emctl set property -name oracle.sysman.db.multiCredTypeLogin -value true

falseを指定する(またはプロパティが設定されていない)場合、この機能が無効になり、Oracle Enterprise Manager 13cリリース5更新5 (13.5.0.5)以前の認証機能に戻ります。プロパティがない場合は、デフォルト値はfalseです。

ワンタイム用の資格証明タイプ選択メニューのカスタマイズ

「資格証明タイプ」選択メニューに表示される資格証明タイプのリストを、前述のワンタイム・ログイン用に、次のOMSプロパティを使用してカスタマイズできます。

  • emctl set property -name oracle.sysman.db.enable_radius_auth -value true

    RADIUSを有効にします。プロパティがない場合、デフォルトはfalseです。

  • emctl set property -name oracle.sysman.db.enable_kerberos_auth -value true

    データベース・ログイン・ページで、Kerberosベースの資格証明タイプの両方をワンタイム・ログインに対して有効にします。プロパティがない場合は、デフォルトはfalseです。

ノート:

前述のプロパティ設定/変更には、OMSの再起動は必要ありません。

:

たとえば、Kerberos username-passwordまたはKerberos username-keytabを使用して、データベース・ターゲットへのワンタイム・ログインを有効にするとします。次のOMSプロパティを設定して、データベース・ログイン・ページで資格証明タイプのドロップダウンを有効にします。

emctl set property -name oracle.sysman.db.multiCredTypeLogin -value true

AND

emctl set property -name oracle.sysman.db.enable_kerberos_auth -value true

前述のOMSプロパティが設定されていない場合でも、KerberosまたはRADIUSの名前付き資格証明を定義し、これを使用してデータベース・ターゲットにログインできます。

RADIUS

RADIUSを使用して外部認証されるデータベース・ユーザーとしてターゲット・データベースにログインできます。プロセス全体がEnterprise Managerクライアントの視点から透過的ですが、データベース・ログイン時にJDBCを介して特定の接続パラメータを指定する必要があります。データベース自体はRADIUSクライアントとして機能し、ユーザーを認証するためにデータベース・クライアント(Enterprise Manager)からRADIUSサーバーに情報を渡します。RADIUSベースのログインでは、同期認証モードのみがサポートされます。

ノート:

RADIUS認証オプションを選択すると、ターゲット・データベースにログインするユーザーは、RADIUS認証が必要であることを認識する必要があります。

同期ログイン

Enterprise Managerでは、次のOMSプロパティを設定してRADIUSを使用したワンタイム・データベース・ログインをサポートします。

emctl set property -name oracle.sysman.db.enable_radius_auth -value true

AND

emctl set property -name oracle.sysman.db.multiCredTypeLogin -value true

RADIUS認証タイプを有効にすると、次の図に示すように、ユーザー名とパスワードの入力を求める本格的なRADIUS資格証明タイプが提供されます。


図は、Enterprise ManagerのRADIUS選択オプションを示しています。

旧バージョンのRadius認証との共存

OMS RADIUSプロパティを指定する既存のオプションを使用し、データベース・ログインUIでRadiusの有効化チェック・ボックスを使用する場合は、次に示すOMSプロパティを設定してRADIUS資格証明の元の動作に戻します。

emctl set property -name oracle.sysman.db.multiCredTypeLogin -value false (以前にemctl delete property -name oracle.sysman.db.multiCredTypeLoginで設定されている場合は、このプロパティの設定を解除)

emctl add property -name oracle.sysman.db.enable_radius_auth -value true

アップグレードの影響

現在、設定されているOMS RADIUSプロパティを介してこの機能を使用している場合、最新バージョンにアップグレードしても、デフォルトでは変更が表示されません。emctl set property -name oracle.sysman.db.multiCredTypeLogin -value trueを明示的に設定することによって、DBCredsTypeオプションとDBRadiusCredsTypeオプションの両方がワンタイム・ログインのドロップダウン選択に表示され、新しいRADIUS資格証明タイプを明示的に有効にし、マルチログイン・サポートを有効にできます。

必要に応じて元の動作に戻すには、前述のmultiCredTypeLoginのOMSプロパティをfalseに設定解除(またはプロパティを削除)する必要があります。または、RADIUSを使用してターゲット・データベースにログインするには、タイプDBRadiusCredsの新しい名前付き資格証明を定義する必要があります

次のパラメータを設定すると、ワンタイム・ログイン画面でRADIUS認証が元のEnterprise Manager 13cリリース4の動作に戻ります。


図は、元のEM 13.4 RADIUSログインを示しています

emctl set property -name oracle.sysman.db.multiCredTypeLogin -value false

OR

emctl delete property -name oracle.sysman.db.multiCredTypeLogin

また、次のプロパティの設定を続行する必要があります。

emctl add property -name oracle.sysman.db.enable_radius_auth -value false (or remove the property)

優先資格証明としてのKerberos/RADIUSベースの名前付き資格証明の設定

2つの資格証明セットが、Oracleデータベース、RACデータベースおよびPDBターゲット・タイプ用に特別に作成されます。

資格証明セットは次のとおりです。

  • 通常データベース資格証明(拡張)
  • SYSDBAのデータベース資格証明(拡張)

タイプがKerberos/Kerberos KeytabまたはRADIUSの事前定義済の名前付き資格証明をこれらの資格証明セットに関連付けることができます。

ノート:

ロールSYSDGを使用して名前付き資格証明を定義する場合、SYSDBAロールを持つユーザーとしてデータベース・ターゲットにアクセスするかわりに、SYSDGベースのユーザー資格証明を使用していると想定されるため、これらの名前付き資格証明をSYSDBAデータベース資格証明(拡張)の資格証明セットに関連付けることができます。

データベース・ターゲットでKerberos/RADIUS資格証明タイプを優先資格証明として設定するには、3つの方法があります。

Enterprise Managerコンソールからの名前付き資格証明の設定

最初に、タイプがRADIUSまたはKERBEROS名前付き資格証明を作成して保存します。その後、Enterprise Managerコンソールから直接、データベースおよび関連ターゲットでRADIUS/Kerberos資格証明タイプを優先資格証明として設定できます。優先資格証明ページにアクセスするには、「設定」メニューから、「セキュリティ」「優先資格証明」の順に選択します。ターゲット・タイプを選択して、「優先資格証明の管理」をクリックします。

ワンタイム・データベース・ログイン・オプションを使用した優先資格証明としてのKerberos/RADIUS資格証明の定義および設定

次のOMSプロパティを設定して、新しいRADIUS/Kerberos資格証明タイプを使用したワンタイム・データベース・ログインを有効にできます。

emctl set property -name oracle.sysman.db.enable_radius_auth -value true
emctl set property -name oracle.sysman.db.enable_kerberos_auth   -value true
emctl set property -name oracle.sysman.db.multiCredTypeLogin -value true

図は、ワンタイム・ログインのデータベース・ログイン・ページを示しています。

前述の優先資格証明がデータベースまたは関連ターゲット(あるいはその両方)に設定されると、これらの拡張資格証明タイプをサポートする基礎となるジョブ(ExecuteSQLやSQLScriptなど)に使用できます。

Enterprise Managerコンソールからターゲットへのログインは、通常のデータベース(ユーザー名/パスワード)の優先資格証明セットの使用に似ています。たとえば、通常データベース資格証明(拡張)が特定のデータベース・ターゲットの優先資格証明として設定されている場合(通常データベース資格証明が設定されていない場合)、このデータベース・ターゲット(通常のロールを持つユーザーとしてデータベース・ログインが必要)のEnterprise Managerコンソール・ページに移動すると、設定されている優先資格証明で表されるこのKerberos/RADIUSユーザーとしてデータベース・ターゲットへの自動ログインが行われます。

emcliを使用した優先資格証明としてのKerberos/RADIUS資格証明の設定

emcliを使用して、Kerberos/RADIUSベースの名前付き資格証明をデータベースまたは関連ターゲットの優先資格証明として関連付けることができます。次の例に示すようにemcliコマンドを使用します。

データベース・ターゲットemdb020DBでSYSDBA Kerberosベースの名前付き資格証明を優先資格証明として設定するには:

emcli set_preferred_credential -set_name="DBCredsSYSDBAASO" -target_name="emdb020DB" -target_type="oracle_database" -credential_name="NC_EMDB020D_KEYTAB_SYSDBA" 

データベース・ターゲットden01csgDB通常データベース資格証明(拡張)タイプの優先資格証明として通常のRADIUSベースの名前付き資格証明を設定するには:

emcli set_preferred_credential -set_name="DBCredsNormalASO" -target_name="den01csgDB" -target_type="oracle_database" -credential_name="NC_DEN01CSG_ASO" 

データベース・ログイン間でのKerberos/RADIUSサブジェクトおよびロールの伝播

Kerberos/RADIUSユーザーとしてデータベース・ターゲットにログインし、Enterprise ManagerコンソールのUIページに移動して、特定のロールによるデータベース・ログインを必要とする別のデータベース・ターゲットにアクセスすると、Enterprise Managerは元のKerberosユーザーおよびロールを使用して自動的にログインします(そのユーザーが2番目のデータベースで有効なユーザーである場合)。

ただし、適切なロールを持つ2番目のデータベースに優先資格証明が定義されている場合は、キャッシュされたKerberos資格証明ではなく、その優先資格証明がDBログインに使用されます。

例:

DataGuard管理ページには、SYSDBAユーザーとしてデータベースへのログインが必要です。SYSDBAのデータベース資格証明(拡張)の下にデータベース・ターゲットに対して定義されたKerberos/RADIUS優先資格証明セットがあり、SYSDBAデータベース資格証明が定義されていない場合は、データベース・ターゲットでのDataGuard管理ページに初めてアクセスすると、SYSDBAのデータベース資格証明(拡張)の資格証明セットの優先資格証明として定義されたKerberos/RADIUS資格証明を使用して自動ログインが実行されます。

両方のSYSDBAデータベース資格証明およびSYSDBAデータベース資格証明(拡張)が同じターゲットに定義されている場合、通常のSYSDBAデータベース資格証明セットが優先されます。