Azure Database for MySQL の Microsoft Entra 認証 - フレキシブル サーバー

適用対象: Azure Database for MySQL - フレキシブル サーバー

Microsoft Entra 認証は、Microsoft Entra ID で定義された ID を使用して Azure Database for MySQL フレキシブル サーバーに接続するメカニズムです。 Microsoft Entra 認証を使用すると、データベース ユーザー ID やその他のMicrosoft サービスを一元的な場所で管理できるため、アクセス許可の管理が簡素化されます。

メリット

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

Microsoft Entra 認証を構成して使用するには、次の手順に従います

  1. フレキシブル サーバーにアクセスするための優先認証方法を選択します。 既定で、選択されている認証は [MySQL 認証のみ] に設定されています。 Microsoft Entra 認証を有効にするには、[Microsoft Entra 認証のみ] または [MySQL と Microsoft Entra 認証] を選択します。

  2. Microsoft Entra 認証を構成するには、次の特権を持つユーザー マネージド ID (UMI) を選択します。

    • User.Read.All: Microsoft Entra のユーザー情報にアクセスできます。
    • GroupMember.Read.All: Microsoft Entra のグループ情報にアクセスできます。
    • Application.Read.ALL: Microsoft Entra サービス プリンシパル (アプリケーション) 情報にアクセスできます。
  3. Microsoft Entra 管理を追加します。柔軟なサーバーにアクセスできる Microsoft Entra ユーザーまたはグループを指定できます。

  4. Microsoft Entra の ID にマップされているデータベース ユーザーをデータベースに作成します。

  5. 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 フレキシブル サーバーで Microsoft Entra 認証を使用した認証のしくみをまとめたものです。 矢印は通信経路を示します。

Diagram of how Microsoft Entra authentication works.

  1. アプリケーションは、Azure Instance Metadata Service ID エンドポイントからトークンを要求できます。
  2. クライアント ID と証明書を使用すると、Microsoft Entra ID に対して呼び出しが行われ、アクセス トークンが要求されます。
  3. JSON Web トークン (JWT) アクセス トークンは、Microsoft Entra ID によって返されます。 フレキシブル サーバーへの呼び出しで、アプリケーションによってアクセス トークンが送信されます。
  4. フレキシブル サーバーは、Microsoft Entra ID を使用してトークンを検証します。

管理者の構造

Microsoft Entra 認証を使用する場合、Azure Database for MySQL フレキシブル サーバーには、元の MySQL 管理者と Microsoft Entra 管理者の 2 つの管理アカウントがあります。

ユーザー データベースに最初の Microsoft Entra ID 包含データベース ユーザーを作成できるのは、Microsoft Entra アカウントに基づく管理者のみです。 Microsoft Entra 管理者のサインインには、Microsoft Entra ユーザーまたは Microsoft Entra グループを使用できます。 管理者がグループ アカウントである場合は、任意のグループ メンバーが使用でき、フレキシブル サーバーに対して複数の Microsoft Entra 管理者が有効になります。 管理者としてグループ アカウントを使用すると、フレキシブル サーバーのユーザーやアクセス許可を変更することなく、Microsoft Entra ID のグループ メンバーを一元的に追加および削除できるため、管理容易性が向上します。 一度に構成できる Microsoft Entra 管理者 (ユーザーまたはグループ) は 1 つだけです。

Diagram of Microsoft Entra admin structure.

フレキシブル サーバーにアクセスするための認証方法は次のとおりです。

  • MySQL 認証のみ - これが既定のオプションです。 フレキシブル サーバーへのアクセスには、MySQL サインインとパスワードを使用したネイティブの MySQL 認証のみを使用できます。

  • Microsoft Entra 認証のみ - MySQL ネイティブ認証が無効になり、ユーザーは Microsoft Entra ユーザーとトークンのみを使用して認証できます。 このモードを有効にするには、サーバー パラメーター aad_auth_onlyON に設定します。

  • MySQL と Microsoft Entra ID による認証 - ネイティブ MySQL 認証と Microsoft Entra 認証の両方がサポートされています。 このモードを有効にするには、サーバー パラメーター aad_auth_onlyOFF に設定します。

アクセス許可

UMI がサーバー ID として Microsoft Graph から読み取れるようにするには、次のアクセス許可が必要です。 または、UMI にディレクトリ読み取りロールを与えます。

重要

全体管理者または特権ロール管理者のみがこれらのアクセス許可を付与できます。

  • User.Read.All: Microsoft Entra のユーザー情報にアクセスできます。
  • GroupMember.Read.All: Microsoft Entra のグループ情報にアクセスできます。
  • Application.Read.ALL: Microsoft Entra サービス プリンシパル (アプリケーション) 情報にアクセスできます。

アクセス許可を付与して使用する方法のガイダンスについては、「Microsoft Graph のアクセス許可の概要」を参照してください

アクセス許可を UMI に付与すると、サーバー ID として割り当てられた UMI で作成されたすべてのサーバーに対してそれらが有効になります。

トークンの検証

Azure Database for MySQL フレキシブル サーバーでの Microsoft Entra 認証では、ユーザーが MySQL サーバーに存在し、トークンの内容を検証することによってトークンの有効性をチェックします。 次のトークンの検証手順が実行されます。

  • トークンは Microsoft Entra ID によって署名され、改ざんされていません。
  • トークンは、サーバーに関連付けられているテナントの Microsoft Entra ID によって発行されました。
  • トークンの有効期限が切れていないこと。
  • トークンが (別の Azure リソースではなく) フレキシブル サーバー リソース用であること。

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

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

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

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

Note

その管理操作 (新しいユーザーの追加など) は、Microsoft Entra ユーザー ロールでのみサポートされます。

Note

Active Directory トークンを使用して接続する方法の詳細については、「Azure Database for MySQL - フレキシブル サーバーの Microsoft Entra ID を使用した構成とサインイン」を参照してください

その他の考慮事項

  • フレキシブル サーバーごとに構成できる Microsoft Entra 管理者は、いつでも 1 つだけです。

  • Microsoft Entra アカウントを使用してフレキシブル サーバーに最初に接続できるのは、MySQL の Microsoft Entra 管理者だけです。 Active Directory 管理者は、後続の Microsoft Entra データベース ユーザーまたは Microsoft Entra グループを構成できます。 管理者がグループ アカウントである場合は、任意のグループ メンバーが使用でき、フレキシブル サーバーに対して複数の Microsoft Entra 管理者が有効になります。 管理者としてグループ アカウントを使用すると、フレキシブル サーバーのユーザーやアクセス許可を変更することなく、Microsoft Entra ID のグループ メンバーを一元的に追加および削除できるため、管理容易性が向上します。

  • ユーザーが Microsoft Entra ID から削除された場合、そのユーザーは Microsoft Entra ID で認証できなくなります。 そのため、そのユーザーのアクセス トークンは取得できなくなります。 一致するユーザーはまだデータベースに存在しますが、そのユーザーを使用してサーバーに接続することはできません。

Note

削除された Microsoft Entra ユーザーによるログインは、トークンの有効期限が切れるまで (トークンの発行から最大 60 分)、引き続き実行できます。 Azure Database for MySQL フレキシブル サーバーからユーザーを削除すると、このアクセスはすぐに取り消されます。

  • Microsoft Entra 管理者がサーバーから削除された場合、サーバーは Microsoft Entra テナントに関連付けられていないため、サーバーのすべての Microsoft Entra ログインが無効になります。 同じテナントから新しい Microsoft Entra 管理者を追加すると、Microsoft Entra ログインが再度有効になります。

  • フレキシブル サーバーは、ユーザー名ではなく、ユーザーの一意の Microsoft Entra ユーザー ID を使用して、Azure Database for MySQL フレキシブル サーバー ユーザーにアクセス トークンを照合します。 つまり、Microsoft Entra ユーザーが Microsoft Entra ID で削除され、同じ名前で新しいユーザーが作成された場合、フレキシブル サーバーでは別のユーザーと見なされます。 そのため、ユーザーが Microsoft Entra ID から削除され、同じ名前の新しいユーザーが追加された場合、新しいユーザーは既存のユーザーと接続できません。

Note

Microsoft Entra 認証が有効になっているフレキシブル サーバーのサブスクリプションは、別のテナントまたはディレクトリに転送できません。

次のステップ

  • Azure Database for MySQL フレキシブル サーバーで Microsoft Entra ID を構成する方法については、「Azure Database for MySQL フレキシブル サーバー用の Microsoft Entra 認証を設定する」を参照してください