PostgreSQL での認証に Azure Active Directory を使用するUse Azure Active Directory for authenticating with PostgreSQL

Microsoft Azure Active Directory (Azure AD) 認証は、Azure AD で定義された ID を使用して Azure Database for PostgreSQL に接続できるよう設計されています。Microsoft Azure Active Directory (Azure AD) authentication is a mechanism of connecting to Azure Database for PostgreSQL using identities defined in Azure AD. Azure AD 認証を使用すると、データベース ユーザーの ID や他の Microsoft サービスを一元管理でき、アクセス許可の管理が容易になります。With Azure AD authentication, you can manage database user identities and other Microsoft services in a central location, which simplifies permission management.

重要

Azure Database for PostgreSQL 向けの Azure AD 認証は現在、パブリック プレビュー段階にあります。Azure AD authentication for Azure Database for PostgreSQL is currently in public preview. このプレビュー バージョンはサービス レベル アグリーメントなしで提供されています。運用環境のワークロードに使用することはお勧めできません。This preview version is provided without a service level agreement, and it's not recommended for production workloads. 特定の機能はサポート対象ではなく、機能が制限されることがあります。Certain features might not be supported or might have constrained capabilities. 詳しくは、Microsoft Azure プレビューの追加使用条件に関するページをご覧ください。For more information, see Supplemental Terms of Use for Microsoft Azure Previews.

Azure AD を利用すると、以下のようなメリットがあります。Benefits of using Azure AD include:

  • Azure サービス全体でのユーザー認証の一元化Authentication of users across Azure Services in a uniform way
  • パスワード ポリシーとパスワード ローテーションの一元管理Management of password policies and password rotation in a single place
  • Azure Active Directory による複数の認証形式のサポート (パスワードを格納する必要がなくなる)Multiple forms of authentication supported by Azure Active Directory, which can eliminate the need to store passwords
  • 顧客は外部の (Azure AD) グループを使用してデータベースのアクセス許可を管理できます。Customers can manage database permissions using external (Azure AD) groups.
  • Azure AD 認証では、PostgreSQL データベース ロールを使用してデータベース レベルで ID が認証されるAzure AD authentication uses PostgreSQL database roles to authenticate identities at the database level
  • Azure Database for PostgreSQL に接続するアプリケーションに対するトークンベースの認証のサポートSupport of token-based authentication for applications connecting to Azure Database for PostgreSQL

Azure Active Directory 認証を構成して使用するには、次の手順に従います。To configure and use Azure Active Directory authentication, use the following process:

  1. 必要に応じてユーザー ID と共に Azure Active Directory を作成して設定します。Create and populate Azure Active Directory with user identities as needed.
  2. (省略可能) Active Directory を関連付けるか、現在 Azure サブスクリプションに関連付けられている Active Directory を変更します。Optionally associate or change the Active Directory currently associated with your Azure subscription.
  3. Azure Database for PostgreSQL サーバーの Azure AD 管理者を作成します。Create an Azure AD administrator for the Azure Database for PostgreSQL server.
  4. Azure AD の ID にマップされているデータベース ユーザーをデータベースに作成します。Create database users in your database mapped to Azure AD identities.
  5. Azure AD の ID 用のトークンを取得してログインし、自分のデータベースに接続します。Connect to your database by retrieving a token for an Azure AD identity and logging in.

注意

Azure AD を作成して設定し、Azure Database for PostgreSQL で Azure AD を構成する方法については、Azure Database for PostgreSQL 向けの Azure AD での構成とサインインに関するページを参照してください。To learn how to create and populate Azure AD, and then configure Azure AD with Azure Database for PostgreSQL, see Configure and sign in with Azure AD for Azure Database for PostgreSQL.

アーキテクチャArchitecture

次の概要図は、Azure Database for PostgreSQL で Azure AD 認証を使用した場合の認証のしくみをまとめたものです。The following high-level diagram summarizes how authentication works using Azure AD authentication with Azure Database for PostgreSQL. 矢印は通信経路を示します。The arrows indicate communication pathways.

認証フロー

管理者の構造Administrator structure

Azure AD 認証を使用すると、PostgreSQL サーバーの管理者アカウントは、元の PostgreSQL 管理者と Azure AD 管理者の 2 つになります。When using Azure AD authentication, there are two Administrator accounts for the PostgreSQL server; the original PostgreSQL administrator and the Azure AD administrator. ユーザー データベースに最初の Azure AD 包含データベース ユーザーを作成できるのは、Azure AD アカウントに基づく管理者のみです。Only the administrator based on an Azure AD account can create the first Azure AD contained database user in a user database. Azure AD の管理者ログインには、Azure AD ユーザーまたは Azure AD グループを使用できます。The Azure AD administrator login can be an Azure AD user or an Azure AD group. 管理者がグループ アカウントの場合は、PostgreSQL サーバー用に複数の Azure AD 管理者を有効にすることで、すべてのグループ メンバーがそのアカウントを使用できます。When the administrator is a group account, it can be used by any group member, enabling multiple Azure AD administrators for the PostgreSQL server. グループ アカウントを管理者として使用すると、PostgreSQL サーバーでユーザーまたはアクセス許可を変更することなく Azure AD でグループ メンバーを一元的に追加および削除できるため、より管理しやすくなります。Using a group account as an administrator enhances manageability by allowing you to centrally add and remove group members in Azure AD without changing the users or permissions in the PostgreSQL server. いつでも構成できる Azure AD 管理者 (ユーザーまたはグループ) は 1 つだけです。Only one Azure AD administrator (a user or group) can be configured at any time.

admin structure

アクセス許可Permissions

Azure AD で認証を行える新しいユーザーを作成するには、データベースに azure_ad_admin ロールを用意する必要があります。To create new users that can authenticate with Azure AD, you must have the azure_ad_admin role in the database. このロールは、特定の Azure Database for PostgreSQL サーバー用に Azure AD 管理者アカウントを構成することで割り当てられます。This role is assigned by configuring the Azure AD Administrator account for a specific Azure Database for PostgreSQL server.

新しい Azure AD データベース ユーザーを作成するには、Azure AD 管理者として接続する必要があります。To create a new Azure AD database user, you must connect as the Azure AD administrator. これについては、Azure Database for PostgreSQL 向けの Azure AD での構成とログインに関するページで説明されています。This is demonstrated in Configure and Login with Azure AD for Azure Database for PostgreSQL.

Azure AD 認証が可能なのは、Azure Database for PostgreSQL 用に Azure AD 管理者が作成された場合のみです。Any Azure AD authentication is only possible if the Azure AD admin was created for Azure Database for PostgreSQL. Azure Active Directory 管理者がサーバーから削除された場合、以前に作成された既存の Azure Active Directory ユーザーは、自分の Azure Active Directory 資格情報を使用してもデータベースに接続できなくなります。If the Azure Active Directory admin was removed from the server, existing Azure Active Directory users created previously can no longer connect to the database using their Azure Active Directory credentials.

Azure AD の ID を使用した接続Connecting using Azure AD identities

Azure Active Directory 認証では、Azure AD の ID を使用してデータベースに接続する次の方法がサポートされています。Azure Active Directory authentication supports the following methods of connecting to a database using Azure AD identities:

  • Azure Active Directory パスワードAzure Active Directory Password
  • Azure Active Directory 統合Azure Active Directory Integrated
  • MFA による Azure Active Directory ユニバーサルAzure Active Directory Universal with MFA
  • Active Directory Application 証明書またはクライアント シークレットの使用Using Active Directory Application certificates or client secrets

Active Directory に対して認証された後、トークンを取得します。Once you have authenticated against the Active Directory, you then retrieve a token. このトークンはログイン用のパスワードです。This token is your password for logging in.

注意

Active Directory トークンを使用して接続する方法の詳細については、Azure Database for PostgreSQL 向けの Azure AD での構成とサインインに関するページを参照してください。For more details on how to connect with an Active Directory token, see Configure and sign in with Azure AD for Azure Database for PostgreSQL.

追加の考慮事項Additional considerations

  • さらに管理しやすくするには、管理者として専用の Azure AD グループをプロビジョニングすることをお勧めします。To enhance manageability, we recommend you provision a dedicated Azure AD group as an administrator.
  • Azure Database for PostgreSQL サーバー用にいつでも構成できる Azure AD 管理者 (ユーザーまたはグループ) は 1 つだけです。Only one Azure AD administrator (a user or group) can be configured for a Azure Database for PostgreSQL server at any time.
  • Azure Active Directory アカウントを使用して Azure Database for PostgreSQL に最初に接続できるのは、PostgreSQL の Azure AD 管理者だけです。Only an Azure AD administrator for PostgreSQL can initially connect to the Azure Database for PostgreSQL using an Azure Active Directory account. Active Directory 管理者は、それ以降の Azure AD のデータベース ユーザーを構成できます。The Active Directory administrator can configure subsequent Azure AD database users.
  • Azure AD からユーザーが削除されると、そのユーザーは Azure AD で認証されることができなくなります。したがって、そのユーザーのアクセス トークンを取得できなくなります。If a user is deleted from Azure AD, that user will no longer be able to authenticate with Azure AD, and therefore it will no longer be possible to acquire an access token for that user. この場合、一致するロールがデータベースに残るものの、そのロールを使用してサーバーに接続することはできなくなります。In this case, although the matching role will still be in the database, it will not be possible to connect to the server with that role.

注意

トークンの有効期限 (トークンの発行から最大 60 分) が切れるまで、削除された Azure AD ユーザーはログインを実行できます。Login with the deleted Azure AD user can still be done till the token expires (up to 60 minutes from token issuing). Azure Database for PostgreSQL からもユーザーを削除する場合は、そのアクセスはすぐに取り消されます。If you also remove the user from Azure Database for PostgreSQL this access will be revoked immediately.

  • サーバーから Azure AD 管理者が削除されると、サーバーと Azure AD テナントの関連付けが解消されます。そのため、サーバーへのすべての Azure AD ログインが無効になります。If the Azure AD admin is removed from the server, the server will no longer be associated with an Azure AD tenant, and therefore all Azure AD logins will be disabled for the server. 同じテナントから新しい Azure AD 管理者を追加すると、Azure AD ログインが再び有効になります。Adding a new Azure AD admin from the same tenant will reenable Azure AD logins.
  • Azure Database for PostgreSQL では、ユーザー名ではなくユーザーの一意な Azure AD ユーザー ID を使用して、アクセス トークンを Azure Database for PostgreSQL ロールに一致させます。Azure Database for PostgreSQL matches access tokens to the Azure Database for PostgreSQL role using the user’s unique Azure AD user ID, as opposed to using the username. つまり、Azure AD で Azure AD ユーザーが削除され、同じ名前で新しいユーザーが作成されると、それは Azure Database for PostgreSQL によって別のユーザーとして見なされます。This means that if an Azure AD user is deleted in Azure AD and a new user created with the same name, Azure Database for PostgreSQL considers that a different user. そのため、Azure AD からユーザーを削除して同じ名前で新しいユーザーを追加すると、その新しいユーザーは既存のロールに接続できなくなります。Therefore, if a user is deleted from Azure AD and then a new user with the same name added, the new user will not be able to connect with the existing role. これを可能にするには、Azure Database for PostgreSQL Azure AD 管理者が、"azure_ad_user" ロールを取り消してそのユーザーに付与し、Azure AD ユーザー ID を更新する必要があります。To allow that, the Azure Database for PostgreSQL Azure AD admin must revoke and then grant the role “azure_ad_user” to the user to refresh the Azure AD user ID.

次の手順Next steps