Share via


PostgreSQL での認証に Microsoft Entra ID を使用する

適用対象: Azure Database for PostgreSQL - 単一サーバー

重要

Azure Database for PostgreSQL - シングル サーバーは廃止パスにあります。 Azure Database for PostgreSQL - フレキシブル サーバーにアップグレードすることを強くお勧めします。 Azure Database for PostgreSQL - フレキシブル サーバーへの移行の詳細については、Azure Database for PostgreSQL 単一サーバーの現状に関するページを参照してください。

Microsoft Entra 認証は、Microsoft Entra ID で定義された ID を使用して Azure Database for PostgreSQL に接続するためのメカニズムです。 Microsoft Entra 認証を使用すると、データベース ユーザーの ID や他の Microsoft サービスを一元管理でき、アクセス許可の管理が容易になります。

Microsoft Entra ID を使うと次のようなベネフィットがあります。

  • Azure サービス全体でのユーザー認証の一元化
  • パスワード ポリシーとパスワード ローテーションの一元管理
  • Microsoft Entra ID による複数の認証形式のサポート (パスワードを格納する必要がなくなる)
  • お客様は、外部の (Microsoft Entra ID) グループを使用してデータベースのアクセス許可を管理できます。
  • Microsoft Entra 認証では、PostgreSQL データベース ロールを使用してデータベース レベルで ID が認証される
  • Azure Database for PostgreSQL に接続するアプリケーションに対するトークンベースの認証のサポート

Microsoft Entra 認証を構成して使用するには、次のプロセスを使用します。

  1. 必要に応じて、Microsoft Entra ID を作成し、ユーザー ID を設定します。
  2. (省略可能) Active Directory を関連付けるか、現在 Azure サブスクリプションに関連付けられている Active Directory を変更します。
  3. Azure Database for PostgreSQL サーバーの Microsoft Entra 管理者を作成します。
  4. Microsoft Entra の ID にマップされているデータベース ユーザーをデータベースに作成します。
  5. Microsoft Entra の ID 用のトークンを取得してログインし、自分のデータベースに接続します。

Note

Microsoft Entra ID を作成して設定し、Azure Database for PostgreSQL で Microsoft Entra ID を構成する方法については、Azure Database for PostgreSQL の Microsoft Entra ID を使用した構成およびサインインに関するページを参照してください。

アーキテクチャ

次の概要図は、Azure Database for PostgreSQL で Microsoft Entra 認証を使用した場合の認証のしくみをまとめたものです。 矢印は通信経路を示します。

認証フロー

管理者の構造

Microsoft Entra 認証を使用すると、PostgreSQL サーバーの管理者アカウントは、元の PostgreSQL 管理者と Microsoft Entra 管理者の 2 つになります。 ユーザー データベースに最初の Microsoft Entra ID 包含データベース ユーザーを作成できるのは、Microsoft Entra アカウントに基づく管理者のみです。 Microsoft Entra ユーザーまたは Microsoft Entra グループを、Microsoft Entra 管理者ログインにすることができます。 管理者がグループ アカウントの場合、どのグループ メンバーでもそのアカウントを使用できるため、PostgreSQL サーバーに対して複数の Microsoft Entra 管理者が有効になります。 グループ アカウントを管理者として使用すると、PostgreSQL サーバーでユーザーまたはアクセス許可を変更することなく、Microsoft Entra ID でグループ メンバーを一元的に追加および削除できるため、より管理しやすくなります。 構成できる Microsoft Entra 管理者 (ユーザーまたはグループ) は常に 1 つだけです。

admin structure

Note

サービス プリンシパルまたはマネージド ID は、単一サーバーでは完全に機能する Microsoft Entra 管理者として機能できませんが、フレキシブル サーバーではこの制限が修正されています

アクセス許可

Microsoft Entra ID で認証できる新しいユーザーを作成するには、データベースに azure_ad_admin ロールが必要です。 このロールは、特定の Azure Database for PostgreSQL サーバー用に Microsoft Entra 管理者アカウントを構成すると割り当てられます。

新しい Microsoft Entra データベース ユーザーを作成するには、Microsoft Entra 管理者として接続する必要があります。 これについては、Azure Database for PostgreSQL 向けの Microsoft Entra ID を使用した構成とログインに関するページで説明されています。

Microsoft Entra 認証が可能なのは、Microsoft Entra 管理者が Azure Database for PostgreSQL 用に作成された場合のみです。 Microsoft Entra 管理者がサーバーから削除された場合、以前に作成された既存の Microsoft Entra ユーザーは、Microsoft Entra 資格情報を使用してデータベースにアクセスできなくなります。

Microsoft Entra の ID を使用して接続する

Microsoft Entra 認証では、Microsoft Entra の ID を使用してデータベースに接続する場合、次の方法がサポートされています。

  • Microsoft Entra パスワード
  • Microsoft Entra 統合
  • MFA による Microsoft Entra ユニバーサル
  • Active Directory Application 証明書またはクライアント シークレットの使用
  • Managed Identity

Active Directory に対して認証された後、トークンを取得します。 このトークンはログイン用のパスワードです。

新しいユーザーの追加などの管理操作は、現時点では Microsoft Entra ユーザー ロールに対してのみサポートされることに注意してください。

Note

Active Directory トークンを使用して接続する方法の詳細については、Azure Database for PostgreSQL の Microsoft Entra ID を使用した構成およびサインインに関するページを参照してください。

その他の注意点

  • さらに管理しやすくするには、専用の Microsoft Entra グループを管理者としてプロビジョニングすることをお勧めします。
  • Azure Database for PostgreSQL サーバー用に構成できる Microsoft Entra 管理者 (ユーザーまたはグループ) は常に 1 つだけです。
  • Microsoft Entra アカウントを使用して Azure Database for PostgreSQL に最初に接続できるのは、PostgreSQL の Microsoft Entra 管理者だけです。 Active Directory 管理者は、それ以降の Microsoft Entra のデータベース ユーザーを構成できます。
  • Microsoft Entra ID からユーザーが削除されると、そのユーザーは Microsoft Entra ID で認証されることができなくなります。したがって、そのユーザーのアクセス トークンを取得できなくなります。 この場合、一致するロールがデータベースに残るものの、そのロールを使用してサーバーに接続することはできなくなります。

Note

削除された Microsoft Entra ユーザーによるログインは、トークンの有効期限 (トークンの発行から最大 60 分) が切れるまで、引き続き行うことができます。 Azure Database for PostgreSQL からもユーザーを削除する場合は、そのアクセスはすぐに取り消されます。

  • サーバーから Microsoft Entra 管理者が削除されると、サーバーと Microsoft Entra テナントの関連付けが解消されます。したがって、サーバーへのすべての Microsoft Entra ログインは無効になります。 同じテナントから新しい Microsoft Entra を追加すると、Microsoft Entra ログインが再び有効になります。
  • Azure Database for PostgreSQL では、ユーザー名ではなくユーザーの一意な Microsoft Entra ユーザー ID を使用して、アクセス トークンを Azure Database for PostgreSQL ロールと照合します。 つまり、Microsoft Entra ID で Microsoft Entra ユーザーが削除され、同じ名前で新しいユーザーが作成された場合、Azure Database for PostgreSQL では、別のユーザーと見なされます。 このため、ユーザーを Microsoft Entra ID から削除した後、同じ名前で新しいユーザーを追加しても、その新しいユーザーは既存のロールに接続することはできません。 これを可能にするには、Azure Database for PostgreSQL の Microsoft Entra 管理者が、"azure_ad_user" ロールを取り消し、それをそのユーザーに付与し、Microsoft Entra ユーザー ID を更新する必要があります。

次のステップ