Microsoft Entra 認証は、Microsoft Entra ID で定義された ID を使用して Azure Database for PostgreSQL に接続するためのメカニズムです。 Microsoft Entra 認証を使用すると、データベース ユーザー ID やその他の Microsoft サービスを一元的な場所で管理できるため、アクセス許可の管理が簡素化されます。
Microsoft Entra ID を使用する利点は次のとおりです。
- 一様な方法で Azure サービス全体のユーザーを認証します。
- 1 か所でのパスワード ポリシーとパスワード ローテーションの管理。
- 複数の形式の認証がサポートされるため、パスワードを格納する必要がなくなります。
- 外部 (Microsoft Entra ID) グループを使用してデータベースのアクセス許可を管理する機能。
- PostgreSQL データベース ロールを使用してデータベース レベルで ID を認証する。
- Azure Database for PostgreSQL フレキシブル サーバー インスタンスに接続するアプリケーションに対するトークンベースの認証のサポート。
Azure Database for PostgreSQL での Microsoft Entra ID のしくみ
次の概要図は、Azure Database for PostgreSQL で Microsoft Entra 認証を使用する場合の認証のしくみをまとめたものです。 矢印は通信経路を示します。
- アプリケーションは、Azure フレキシブル サーバー インスタンスメタデータ サービス ID エンドポイントからトークンを要求できます。
- クライアント ID と証明書を使用すると、Microsoft Entra ID に対して呼び出しが行われ、アクセス トークンが要求されます。
- Microsoft Entra ID は、JSON Web トークン (JWT) アクセス トークンを返します。 アプリケーションは、フレキシブル サーバー インスタンスへの呼び出し時にアクセス トークンを送信します。
- フレキシブル サーバー インスタンスは、Microsoft Entra ID を使用してトークンを検証します。
Azure Database for PostgreSQL で Microsoft Entra ID を構成する手順については、「Azure Database for PostgreSQL での認証に Microsoft Entra ID を使用する」を参照してください。
PostgreSQL 管理者と Microsoft Entra 管理者の違い
Microsoft Entra 管理者として Microsoft Entra プリンシパルの Microsoft Entra 認証を有効にすると、アカウントは次のようになります。
- 元の PostgreSQL 管理者と同じ特権を取得します。
- サーバー上の他の Microsoft Entra ロールを管理できます。
PostgreSQL 管理者は、ローカルパスワードベースのユーザーのみを作成できます。 ただし、Microsoft Entra 管理者には、Microsoft Entra ユーザーとローカル パスワード ベースのユーザーの両方を管理する権限があります。
Microsoft Entra 管理者は、Microsoft Entra ユーザー、Microsoft Entra グループ、サービス プリンシパル、またはマネージド ID にすることができます。 管理者としてグループ アカウントを使用すると、管理性が向上します。 Azure Database for PostgreSQL フレキシブル サーバー インスタンス内のユーザーまたはアクセス許可を変更することなく、Microsoft Entra ID のグループ メンバーを一元的に追加および削除できます。
複数の Microsoft Entra 管理者を同時に構成できます。 監査とコンプライアンスの要件を強化するために、Azure Database for PostgreSQL フレキシブル サーバー インスタンスへのパスワード認証を非アクティブ化できます。
Azure portal、API、または SQL を使用して作成する Microsoft Entra 管理者には、サーバーのプロビジョニング中に作成した通常の管理者ユーザーと同じアクセス許可があります。 管理者以外の Microsoft Entra ロールのデータベースアクセス許可は、通常のロールと同様に管理します。
Microsoft Entra ID 経由の接続
Microsoft Entra 認証では、Microsoft Entra ID を使用してデータベースに接続する次の方法がサポートされています。
- Microsoft Entra パスワード認証
- Microsoft Entra 統合認証
- 多要素認証を使用した Microsoft Entra ユニバーサル
- Active Directory アプリケーション証明書またはクライアント シークレット
- マネージド ID
Active Directory に対して認証した後、トークンを取得します。 このトークンは、サインインするためのパスワードです。
Azure Database for PostgreSQL で Microsoft Entra ID を構成する手順については、「Azure Database for PostgreSQL での認証に Microsoft Entra ID を使用する」を参照してください。
制限事項と考慮事項
Azure Database for PostgreSQL で Microsoft Entra 認証を使用する場合は、次の点に注意してください。
Microsoft Entra プリンシパルが任意のデプロイ手順でユーザー データベースの所有権を取得できるようにするには、デプロイ (Terraform または Azure Resource Manager) モジュール内に明示的な依存関係を追加して、ユーザー データベースを作成する前に Microsoft Entra 認証が有効になっていることを確認します。
Azure Database for PostgreSQL フレキシブル サーバー インスタンスの Microsoft Entra 管理者として、複数の Microsoft Entra プリンシパル (ユーザー、グループ、サービス プリンシパル、またはマネージド ID) をいつでも構成できます。
Microsoft Entra アカウントを使用して Azure Database for PostgreSQL フレキシブル サーバー インスタンスに最初に接続できるのは、PostgreSQL の Microsoft Entra 管理者だけです。 Active Directory 管理者は、後続の Microsoft Entra データベース ユーザーを構成できます。
Microsoft Entra ID から Microsoft Entra プリンシパルを削除した場合、プリンシパルは PostgreSQL ロールのままですが、新しいアクセス トークンを取得できなくなります。 この場合、一致するロールはデータベースにまだ存在しますが、サーバーに対して認証することはできません。 データベース管理者は、所有権を譲渡し、ロールを手動で削除する必要があります。
注
削除された Microsoft Entra ユーザーは、トークンの有効期限が切れるまで (トークン発行から最大 60 分) サインインできます。 Azure Database for PostgreSQL からもユーザーを削除すると、このアクセスはすぐに取り消されます。
Azure Database for PostgreSQL は、ユーザー名を使用するのではなく、ユーザーの一意の Microsoft Entra ユーザー ID を使用して、アクセス トークンをデータベース ロールと照合します。 Microsoft Entra ユーザーを削除し、同じ名前の新しいユーザーを作成すると、Azure Database for PostgreSQL では別のユーザーと見なされます。 そのため、Microsoft Entra ID からユーザーを削除し、同じ名前の新しいユーザーを追加した場合、新しいユーザーは既存のロールに接続できません。
よく寄せられる質問
Azure Database for PostgreSQL で使用できる認証モードは何ですか?
Azure Database for PostgreSQL では、PostgreSQL 認証のみ、Microsoft Entra 認証のみ、PostgreSQL 認証と Microsoft Entra 認証の両方の 3 つの認証モードがサポートされています。
フレキシブル サーバー インスタンスで複数の Microsoft Entra 管理者を構成できますか?
Yes. フレキシブル サーバー インスタンスで複数の Microsoft Entra 管理者を構成できます。 プロビジョニング中は、1 人の Microsoft Entra 管理者のみを設定できます。 ただし、サーバーが作成されたら、[ 認証 ] ウィンドウに移動して、必要な数の Microsoft Entra 管理者を設定できます。
Microsoft Entra 管理者は Microsoft Entra ユーザーだけですか?
No. Microsoft Entra 管理者には、ユーザー、グループ、サービス プリンシパル、またはマネージド ID を指定できます。
Microsoft Entra 管理者は、ローカルパスワードベースのユーザーを作成できますか?
Microsoft Entra 管理者は、Microsoft Entra ユーザーとローカル パスワード ベースのユーザーの両方を管理する権限を持っています。
Azure Database for PostgreSQL フレキシブル サーバー インスタンスで Microsoft Entra 認証を有効にするとどうなりますか?
サーバー レベルで Microsoft Entra 認証を設定すると、PGAadAuth 拡張機能が有効になり、サーバーが再起動します。
Microsoft Entra 認証を使用してサインインするにはどうすればよいですか?
psql
やpgAdmin
などのクライアント ツールを使用して、フレキシブル サーバー インスタンスにサインインできます。 ユーザー名として Microsoft Entra ユーザー ID を使用し、パスワードとして Microsoft Entra トークンを使用します。トークンを生成する方法
az login
を使用してトークンを生成します。 詳細については、「 Microsoft Entra アクセス トークンの取得」を参照してください。グループ ログインと個々のログインの違いは何ですか?
Microsoft Entra グループ メンバーとしてサインインすることと、個々の Microsoft Entra ユーザーとしてサインインする場合の唯一の違いは、ユーザー名にあります。 個々のユーザーとしてサインインするには、個々の Microsoft Entra ユーザー ID が必要です。 グループ メンバーとしてサインインするには、グループ名が必要です。 どちらのシナリオでも、パスワードと同じ個々の Microsoft Entra トークンを使用します。
グループ認証と個人認証の違いは何ですか?
Microsoft Entra グループ メンバーとしてサインインすることと、個々の Microsoft Entra ユーザーとしてサインインする場合の唯一の違いは、ユーザー名にあります。 個々のユーザーとしてサインインするには、個々の Microsoft Entra ユーザー ID が必要です。 グループ メンバーとしてサインインするには、グループ名が必要です。 どちらのシナリオでも、パスワードと同じ個々の Microsoft Entra トークンを使用します。
トークンの有効期間は何ですか?
ユーザー トークンは最大 1 時間有効です。 システム割り当てマネージド ID のトークンは、最大 24 時間有効です。