Microsoft Entra認証は、Microsoft Entra IDで定義されている ID を使用して Azure Database for MySQL フレキシブル サーバーに接続するためのメカニズムです。 Microsoft Entra認証を使用すると、データベース ユーザー ID やその他のMicrosoft サービスを一元的な場所で管理できるため、アクセス許可の管理が簡略化されます。
Entra 認証の利点
- 一貫した方法でAzure サービス全体でユーザーを認証します。
- パスワード ポリシーとパスワードローテーションを 1 か所で管理します。
- Microsoft Entra IDを使用して複数の形式の認証をサポートするため、パスワードを格納する必要がなくなります。
- 外部Microsoft Entra ID グループを使用してデータベースのアクセス許可を管理できるようにします。
- MySQL データベース ユーザーを使用して、データベース レベルで ID を認証します。
- Azure Database for MySQLフレキシブル サーバーに接続するアプリケーションのトークンベースの認証をサポートします。
Microsoft Entra 認証を構成して使用する
フレキシブル サーバーにアクセスするための優先認証方法を選択します。
- 既定では、認証方法は MySQL 認証のみに設定されます。
- Microsoft Entra認証を有効にするには、認証方法を次に変更します。
Microsoft Entra authentication only- または
MySQL and Microsoft Entra authentication
次の特権を持つユーザー割り当てマネージド ID (UAMI) を選択します。
- User.Read.All: Microsoft Entraユーザー情報へのアクセスを許可します。
- GroupMember.Read.All: グループ情報へのアクセスMicrosoft Entra許可します。
- Application.Read.ALL: Microsoft Entra サービス プリンシパル (アプリケーション) 情報にアクセスできます。
Microsoft Entra 管理者を追加します。追加できるのは、フレキシブル サーバーにアクセスできる Microsoft Entra のユーザーまたはグループです。
Microsoft Entra ID にマップされたデータベースにデータベース ユーザーを作成します。
Microsoft Entra ID のトークンを取得してサインインすることで、データベースに接続します。
Note
Azure Database for MySQL フレキシブル サーバーでMicrosoft Entra認証を構成する方法の詳細な手順については、「Azure Database for MySQL - フレキシブル サーバーのMicrosoft Entra認証を設定する」を参照してください。
Architecture
Microsoft Entra認証には、ユーザーマネージド ID が必要です。 ユーザー割り当て ID をフレキシブル サーバーにリンクすると、マネージド ID リソース プロバイダー (MSRP) は内部的にその ID に証明書を発行します。 マネージド ID を削除すると、対応するサービス プリンシパルが自動的に削除されます。
サービスは、マネージド ID を使用して、Microsoft Entra認証をサポートするサービスのアクセス トークンを要求します。 Azure Database では現在、Azure Database for MySQL フレキシブル サーバーのユーザー割り当てマネージド ID (UMI) のみがサポートされています。 詳細については、Azure の「マネージド ID の種類」を参照してください。
次の概要図は、Azure Database for MySQL Flexible Server で Microsoft Entra 認証を使用した認証の仕組みをまとめたものです。 矢印は通信経路を示します。
- アプリケーションは、Azure Instance Metadata Service ID エンドポイントからトークンを要求できます。
- クライアント ID と証明書を使用すると、Microsoft Entra に対してアクセス トークンを要求する呼び出しが行われます。
- Microsoft Entra は、JSON Web トークン (JWT) アクセス トークンを返します。 アプリケーションは、サーバーへの呼び出し時にアクセス トークンを送信します。
- サーバーは Microsoft Entra を使用してトークンを検証します。
管理者の構造
Azure Database for MySQLフレキシブル サーバーでMicrosoft Entra認証を使用すると、元の MySQL 管理者とMicrosoft Entra管理者の 2 つの管理者アカウントが取得されます。
ユーザー データベースに最初の Microsoft Entra ID 包含データベース ユーザーを作成できるのは、Microsoft Entra アカウントに基づく管理者のみです。 Microsoft Entra 管理者のサインインには、Microsoft Entra ユーザーまたは Microsoft Entra グループを使用できます。 管理者がグループ アカウントの場合、すべてのグループ メンバーはデータベース サーバー管理者です。 グループ アカウントは、データベース サーバーのユーザーやアクセス許可を変更することなく、Microsoft Entra でグループ メンバーを一元的に追加および削除することで、管理性を強化します。
Important
一度に構成できるMicrosoft Entra管理者 (ユーザーまたはグループ) は 1 つだけです。
フレキシブル サーバーにアクセスするには、次の認証方法を使用できます。
- MySQL 認証のみ - MySQL サインインとパスワードでネイティブ MySQL 認証を使用する既定のオプション。
- Microsoft Entra認証のみ - MySQL ネイティブ認証を無効にし、ユーザーとアプリケーションはMicrosoft Entraを使用して認証する必要があります。 このモードを有効にするには、サーバー パラメーターの
aad_auth_onlyをONに設定します。 - MySQL と Microsoft Entra ID を使用した認証 - ネイティブ MySQL 認証とMicrosoft Entra認証の両方を使用できます。 このモードを有効にするには、サーバー パラメーターの
aad_auth_onlyをOFFに設定します。
Permissions
UMI がサーバー ID としてMicrosoft Graphから読み取れるようにするには、次のアクセス許可を付与します。 または、 ディレクトリ閲覧者 ロールをユーザー割り当てマネージド ID に割り当てます。
Important
これらのアクセス許可を付与できるのは、少なくとも 特権ロール管理者 ロールを持つユーザーだけです。
- User.Read.All: Microsoft Entraユーザー情報へのアクセスを許可します。
- GroupMember.Read.All: グループ情報へのアクセスMicrosoft Entra許可します。
- Application.Read.ALL: Microsoft Entra サービス プリンシパル (アプリケーション) 情報にアクセスできます。
アクセス許可を付与して使用する方法については、「Microsoft Graphアクセス許可の概要」を参照してください。
UMI にアクセス許可を付与すると、UMI がサーバー ID として割り当てられたすべてのサーバーに適用されます。
トークンの検証
Azure Database for MySQL フレキシブル サーバーの Microsoft Entra 認証では、ユーザーが MySQL サーバーに存在することを確認し、トークンの内容を検証することでトークンの有効性を確認します。 サービスは、次のトークン検証手順を実行します。
- トークンは Microsoft Entra によって署名されます。
- トークンは、サーバーに関連付けられているテナントに対して Microsoft Entra によって発行されます。
- トークンの有効期限が切れていない。
- トークンはフレキシブル サーバー インスタンス用です (別の Azure リソースではありません)。
Microsoft Entra ID を使用して接続する
Microsoft Entra 認証では、Microsoft Entra ID を使用してデータベースに接続する次の方法がサポートされています。
- Microsoft Entra パスワード
- Microsoft Entra を統合済み
- Microsoft Entra Universal とマルチファクター認証 (MFA)
- Active Directory アプリケーション証明書またはクライアント シークレットの使用
- マネージド ID
Active Directoryに対して認証を行うと、トークンが取得されます。 このトークンはログイン用のパスワードです。
Note
Microsoft Entraユーザー ロールのみが、新しいユーザーの追加などの管理操作をサポートします。
Note
Active Directory トークンを使用して接続する方法の詳細については、「Azure Database for MySQL - フレキシブル サーバーのMicrosoft Entra認証を設定する」を参照してください。
その他の考慮事項
フレキシブル サーバーごとに一度に構成できるMicrosoft Entra管理者は 1 つだけです。
Microsoft Entraからユーザーを削除した場合、そのユーザーは Entra で認証できません。 そのため、ユーザーはアクセス トークンを取得できません。 一致するユーザーがまだデータベースに存在しますが、そのユーザーを使用してサーバーに接続することはできません。
Note
トークンの有効期限が切れるまで (トークン発行から最大 60 分)、削除されたMicrosoft Entra ユーザーを使用してサインインできます。 Azure Database for MySQL フレキシブル サーバーからユーザーを削除すると、このアクセスはすぐに取り消されます。
Microsoft Entra管理者をサーバーから削除すると、サーバーは Microsoft Entra テナントに関連付けられなくなり、サーバーのすべてのMicrosoft Entra ログインが無効になります。 同じテナントから新しい Microsoft Entra 管理者を追加すると、Microsoft Entra ログインが再度有効になります。
フレキシブル サーバーは、アクセス トークンをユーザー名ではなく、ユーザーの一意の Entra ID と照合します。 そのため、Microsoft Entraからユーザーを削除し、同じ名前の新しいユーザーを追加した場合、新しいユーザーは以前のアクセス許可を継承しません。
レプリカ サーバーで Entra 認証を有効にするには、すべてのレプリカ パートナーにプライマリ サーバーで使用されるのと同じ構成手順を適用する必要があります。
Note
Microsoft Entra認証が有効になっているフレキシブル サーバーのサブスクリプションを別のテナントまたはディレクトリに転送することはできません。