データベース認証

このトピックでは、データベース認証モデルの概要について説明します。

Oracleデータベースに接続する場合、次の認証タイプがサポートされます:

  • ユーザー名またはユーザー名/パスワードの組合せを使用した認証
  • OS認証
  • トークン・ベースの認証

ノート:

構成タイプおよび認証方式は、MySQL、PostgreSQL、SQLite、カスタム・データベースなどの他のデータベースに接続する場合によって異なります。
Oracle Database Navigatorでは、次のトークン・ベース認証がサポートされています:
トークン・タイプ 認証
OCI APIキー 秘密キーと公開キーのペアおよび構成ファイルを使用して、Oracle Cloud InfrastructureへのAPIリクエストを認証します。資格証明セクションのトークン構成ファイル・フィールドで、フォルダ(ユーザーのホーム・ディレクトリの.ociディレクトリ)を選択して、構成ファイルをアップロードします(たとえば、~/.oci/config)。この構成ファイルには、ユーザーOCID、テナンシOCID、リージョン、公開キーのフィンガープリント、秘密キー・ファイル・パスなどのユーザー詳細が含まれています。

アップロードされた構成ファイルに基づいて、トークン・プロファイル・ドロップダウン・フィールドに、その構成ファイルで使用されている認証トークンが表示され、選択して認証を続行できます。

ノート:

構成ファイルを作成するためにアップロードする既存の秘密キーと公開キーのペアがない場合は、まずOCIコンソールでAPIキーを生成し、適切な権限で秘密キーをダウンロードして格納する必要があります。
OCI対話型 OCI対話モードを使用して、データベース認証に使用される一時セッション・トークンを作成します。OCI対話型認証方式を使用する場合は、次のパラメータが必要です:
  • コンパートメントOCID - OCIテナンシ内の特定のコンパートメントを識別するコンパートメントOCIDを指定します。
  • データベースOCID - OCI環境内の特定のデータベース・インスタンスを識別するデータベースOCIDを指定します。
Azure対話型 Azure AD (Microsoft Entra ID)を使用した対話型認証では、Entra ID資格証明(OAuth2アクセス・トークンを利用)およびSSO機能を使用してOracleデータベースに接続できます。OAuth2アクセス・トークンには、トークン検証のためにOracleデータベース・クライアントに渡されるユーザー識別情報やアクセス詳細などの情報が含まれています。検証されると、トークンがOracleデータベース・インスタンスに送信され、アクセス権が付与されます。

接続を確立するには、Oracleデータベース・インスタンスの一意のURIをデータベース・アプリケーションID URIフィールドに指定する必要があります。

Azureサービス・プリンシパル(証明書を使用)

Azureサービス・プリンシパルは、登録されたアプリケーション(Azure ADに登録されたOracleデータベース・インスタンス)の証明書を使用してドライバ認証を可能にし、クライアント・シークレットより安全な代替手段を提供します。証明書ベースの認証方式では、データベース・クライアントの識別情報検証のために、認証の証明書によって取得された公開キーと秘密キーのペアを利用します。

証明書認証方式でAzureサービス・プリンシパルを使用する場合は、次のパラメータが必要です:
  • クライアントID - 登録された済データベース・インスタンスの一意のアプリケーションID (クライアントID)を指定します。
  • テナントID - 登録されたデータベース・インスタンスのAzureテナンシIDを指定します。
  • クライアント証明書ファイル - セキュアな接続を確立するために、サービス・プリンシパルのパスワードで保護された証明書ファイル(秘密キーを含む)へのパスを指定します。
  • クライアント証明書パスワード - 秘密キーを含むクライアント証明書ファイルにアクセスするためのパスワードを指定します。
  • データベース・アプリケーションID URI - Oracleデータベース・インスタンスを識別する一意のURIを指定します。(たとえば、your_tenancy_url/application_(client)_idです。テナンシ名はドメイン修飾である必要があります)

ノート:

認証の証明書は、開発環境では自己署名できますが、本番環境は信頼できる認証局から取得する必要があります。
Azureサービス・プリンシパル(トークンを使用)

Azureサービス・プリンシパルは、トークンベースの認証を利用して、Azureリソースに安全にアクセスし、Oracleデータベースに接続します。この方式では、クライアント・シークレットで構成されるサービス・プリンシパルの資格証明(データベース・クライアントがAzure ADに登録されるときにサービス・プリンシパルが作成されます)を使用して、Microsoft Entra IDからアクセス・トークンを取得します。

証明書認証方式でAzureサービス・プリンシパルを使用する場合は、次のパラメータが必要です:
  • クライアントID - 登録された済データベース・インスタンスの一意のアプリケーションID (クライアントID)を指定します。
  • テナントID - 登録されたデータベース・インスタンスのAzureテナンシIDを指定します。
  • クライアント・シークレット - 登録済Oracleデータベース・インスタンスのクライアント・シークレットを指定します(アプリケーション/データベース・クライアントがパブリックの場合は、クライアントIDのみが必要です)。
  • データベース・アプリケーションID URI - Oracleデータベース・インスタンスを識別する一意のURIを指定します。(たとえば、your_tenancy_url/application_(client)_idです。テナンシ名はドメイン修飾である必要があります)

ノート:

Azureトークン認証サポートは、Oracle Autonomous AI Database、Oracle Exadata Database Service、Oracle Base Database Service、およびオンプレミスのOracle Database 19c以上で使用できます。Azure認証をサポートするには、OracleデータベースにMicrosoft Entra ID認証が構成されている必要があります。Oracle Databaseは、Azure ADに登録する必要があります。