ベース・データベース・サービスでのAzure Active Directory認証の使用

Microsoft Azure Active Databaseの認証および認可を使用するようにベース・データベース・サービスでOracle Databaseを構成し、Azure ADユーザーがAzure AD資格証明を使用してデータベースにアクセスできるようにします。

Azure ADとベース・データベース・サービスの統合について

ベース・データベース・サービス・インスタンスのOracle Databaseは、Microsoft Azure Active Directory (Azure AD)ユーザーがAzure OAuth2アクセス・トークンを使用して接続するように構成できます。

Azure ADユーザーの認可、アーキテクチャ、ユーザー・マッピング、ユースケースおよび統合プロセスの詳細は、Oracle Database用のMicrosoft Azure ADユーザーの認可の概要(『Oracle Databaseセキュリティ・ガイド』)を参照してください。

前提条件

ベース・データベース・サービス上のAzure AD認証には、次の前提条件が必要です。

これらのそれぞれについて、次のトピックで詳しく説明します。

ネットワーク設定

データベースでAzure AD認証を使用する前に、ネットワーキング・サービスを使用して、サービス・ゲートウェイ、ルート・ルールおよびエグレス・セキュリティ・ルールを、データベース・リソースが存在する仮想クラウド・ネットワーク(VCN)およびサブネットに追加する必要があります。NATゲートウェイを使用してAzure ADへのアウトバウンド接続を構成するには、次のステップを実行します。

  1. サービス・ゲートウェイの作成の手順に従って、データベース・リソースが存在するVCNにNATゲートウェイを作成します。
  2. サービス・ゲートウェイを作成したら、データベース・リソースが存在する各サブネット(VCN内)にルート・ルールおよびエグレス・セキュリティ・ルールを追加して、これらのリソースがゲートウェイを使用してAzure ADインスタンスから公開キーを取得し、Azure AD認証を使用できるようにします:
    1. サブネットの「サブネットの詳細」ページに移動します。
    2. 「サブネット情報」タブで、サブネットの「ルート表」の名前をクリックして、その「ルート表の詳細」ページを表示します。
    3. 既存のルート・ルールの表で、次の特性を持つルールがすでに存在するかどうかを確認します:
      • 宛先: 0.0.0.0/0
      • ターゲット・タイプ: NATゲートウェイ
      • ターゲット: VCN内に作成したサービス・ゲートウェイの名前

      そのようなルールが存在しない場合は、「ルート・ルールの追加」をクリックし、これらの特性を持つルート・ルールを追加します。

    4. サブネットの「サブネットの詳細」ページに戻ります。
    5. サブネットの「セキュリティ・リスト」表で、サブネットのセキュリティ・リストの名前をクリックして、その「セキュリティ・リストの詳細」ページを表示します。
    6. サイド・メニューの「リソース」で、「エグレス・ルール」をクリックします。
    7. 既存のエグレス・ルールの表で、次の特性を持つルールがすでに存在するかどうかを確認します:
      • 宛先タイプ: CIDR
      • 宛先: 0.0.0.0/0
      • IPプロトコル: TCP
      • ソース・ポート範囲: 443
      • 宛先ポート範囲: すべて
    8. そのようなルールが存在しない場合は、「エグレス・ルールの追加」をクリックし、これらの特性を持つエグレス・ルールを追加します。

TLS構成

Azure ADトークンをデータベース・クライアントからデータベース・サーバーに送信する場合、TLS接続を確立する必要があります。ベース・データベース・サービス・インスタンスのデータベース証明書を含むTLSウォレットは、WALLET_ROOTの場所に格納する必要があります。WALLET_ROOT/<PDB GUID>/tlsのようになるようにtlsディレクトリを作成します

データベース・クライアントとサーバー間にTLSを構成する場合は、いくつかのオプションを検討する必要があります。

  • 自己署名データベース・サーバー証明書と、既知の認証局によって署名されたデータベース・サーバー証明書の使用の比較
  • 一方向TLS (TLS)と相互または双方向TLS (mTLS).の比較
  • クライアントのウォレットの有無

自己署名証明書: 自己署名証明書は自分で作成でき、無料であるため、これを使用することは内部でITリソースに接続する場合の一般的な方法です。リソース(この場合はデータベース・サーバー)には、データベース・クライアントに対して自身を認証するための自己署名証明書があります。自己署名証明書とルート証明書は、データベース・サーバー・ウォレットに格納されます。データベース・クライアントがデータベース・サーバー証明書を認識できるようにするには、ルート証明書のコピーがクライアントにも必要です。この自己作成ルート証明書は、クライアント側のウォレットに格納することも、クライアント・システムのデフォルト証明書ストアにインストールすることもできます(WindowsおよびLinuxのみ)。セッションが確立されると、データベース・クライアントは、データベース・サーバーによって送信された証明書が同じルート証明書によって署名されていることを確認します。

既知の認証局: よく知られたルート認証局を使用すると、ルート証明書がクライアント・システムのデフォルト証明書ストアにすでに格納されている可能性が最も高いという利点があります。一般的なルート証明書の場合、クライアントがルート証明書を格納するための追加のステップはありません。欠点は、通常、これに関連付けられたコストがあることです。

一方向TLS: 標準TLSセッションでは、サーバーのみがクライアントに証明書を提供し、自身を認証します。クライアントは、サーバーに対して自身を認証するために個別のクライアント証明書を必要としません(HTTPSセッションの確立方法と同様)。データベースにはサーバー証明書を格納するためのウォレットが必要ですが、クライアントに必要なのはサーバー証明書の署名に使用されるルート証明書のみです。

双方向TLS(相互TLS、mTLSとも呼ばれる): mTLSでは、クライアントとサーバーの両方がアイデンティティ証明書を持ち、相互に提示します。ほとんどの場合、同じルート証明書がこれらの証明書の両方に署名するため、データベース・サーバーおよびクライアントで同じルート証明書を使用して他の証明書を認証できます。mTLSは、ユーザー・アイデンティティが証明書を介してデータベース・サーバーによって認証されるため、ユーザーの認証に使用されることがあります。これは、Azure ADトークンを渡す場合には必要ありませんが、Azure ADトークンを渡すときに使用できます。

ウォレットを持つクライアント: mTLSを使用してクライアント証明書を格納する場合は、クライアント・ウォレットが必須です。ただし、ルート証明書は、同じウォレットまたはシステムのデフォルト証明書ストアのいずれかに格納できます。

ウォレットのないクライアント: TLSを次の条件で使用する場合、クライアントはウォレットなしで構成できます:
  1. クライアントに独自の証明書がない一方向TLSが構成されています。
  2. データベース・サーバー証明書に署名したルート証明書は、システムのデフォルト証明書ストアに格納されています。サーバー証明書が一般的な認証局によって署名されている場合、ルート証明書はすでに存在している可能性があります。自己署名証明書の場合は、クライアント・ウォレットを使用しないように、システムのデフォルト証明書ストアにルート証明書をインストールする必要があります。

前述のオプションを含むデータベース・クライアントとデータベース・サーバーの間のTLSを構成する方法の詳細は、トランスポート・レイヤー・セキュリティ認証の構成を参照してください。

自己署名証明書の使用を選択する場合および追加のウォレット関連のタスクについては、データベース・セキュリティ・ガイドのorapkiコマンドライン・インタフェース(CLI)のリファレンス・ガイドを参照してください。公開キー・インフラストラクチャ(PKI)要素の管理を参照してください。

Azure ADとの統合のためのベース・データベース・サービスの構成

Azure ADとのベース・データベース・サービス統合では、データベースがAzure AD公開キーをリクエストできるように、データベースをAzure ADに登録する必要があります。

Azure ADとの統合のためにベース・データベース・サービスを構成するには、まず前提条件の前提条件を完了し、次に『Oracle Databaseセキュリティ・ガイド』のMicrosoft Azure AD統合のためのOracle Databaseの構成の手順に従う必要があります。

Oracle Databaseのスキーマおよびロールのマップ

Azure ADユーザーは、1つのデータベース・スキーマにマップされ、オプションで1つ以上のデータベース・ロールにマップされます。

Oracle DatabaseスキーマおよびロールをAzure ADユーザーにマッピングするオプションの詳細は、『Oracle Databaseセキュリティ・ガイド』のOracle Databaseスキーマおよびロールのマッピングを参照してください。

Azure ADへのクライアント接続の構成

Azure ADトークンを使用してベース・データベース・サービス・インスタンスに接続するようにクライアントを構成するには、様々な方法があります。

Azure ADクライアント接続の構成の詳細は、『Oracle Databaseセキュリティ・ガイド』のOracle DatabaseへのAzure ADクライアント接続の構成を参照してください。

Azureエンドポイントのアクセシビリティのテスト

接続テストを実行して、ベース・データベース・インスタンスがAzure ADエンドポイントにアクセスできることを確認できます。

接続のテストの詳細は、Oracle Databaseセキュリティ・ガイドのAzureエンドポイントのアクセシビリティのテストの項を参照してください。

接続のトラブルシューティングに使用されるトレース・ファイル

トレース・ファイルを使用して、Azure ADとのベース・データベース・サービス・クライアント接続をトラブルシューティングできます。

トレース・ファイルおよびトークン認証用のクライアント・トレースの設定の詳細は、『Oracle Databaseセキュリティ・ガイド』のAzure ADを使用したOracle Databaseクライアント接続のトラブルシューティングのためのトレース・ファイルを参照してください。