次の方法で共有


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

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

Entra 認証の利点

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

Microsoft Entra 認証を構成して使用する

  1. フレキシブル サーバーにアクセスするための優先認証方法を選択します。

    • 既定では、選択した認証は MySQL 認証のみに設定されます。
    • Microsoft Entra 認証を有効にするには、認証方法を変更する必要があります。
      • Microsoft Entra authentication only
      • または MySQL and Microsoft Entra authentication
  2. 次の特権を持つユーザー割り当てマネージド ID (UAMI) を選択します。

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

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

  5. Microsoft Entra ID のトークンを取得してログインすることで、データベースに接続します。

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

Architecture

Microsoft Entra 認証には、ユーザーマネージド ID が必要です。 User-Assigned ID がフレキシブル サーバーにリンクされている場合、マネージド ID リソース プロバイダー (MSRP) はその ID に内部的に証明書を発行します。 マネージド ID が削除されると、対応するサービス プリンシパルが自動的に削除されます。

その後、サービスはマネージド ID を使用して、Microsoft Entra 認証をサポートするサービスのアクセス トークンを要求します。 現在、Azure Database では、Azure Database for MySQL フレキシブル サーバーのユーザー割り当てマネージド ID (UMI) のみがサポートされています。 詳細については、Azure の「マネージド ID の種類」を参照してください。

次の概要図は、Azure Database for MySQL フレキシブル サーバーで Microsoft Entra 認証を使用した認証のしくみをまとめたものです。 矢印は通信経路を示します。

Microsoft Entra 認証のしくみの図。

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

管理者の構造

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

Microsoft Entra アカウントに基づく管理者のみが、ユーザー データベースに含まれる最初の Microsoft Entra ID 包含データベース ユーザーを作成できます。 Microsoft Entra 管理者のサインインには、Microsoft Entra ユーザーまたは Microsoft Entra グループを使用できます。 管理者がグループ アカウントの場合、すべてのグループ メンバーはデータベース サーバー管理者です。 グループ アカウントは、データベース サーバーのユーザーやアクセス許可を変更することなく、Microsoft Entra でグループ メンバーを一元的に追加および削除することで、管理性を強化します。

Important

一度に構成できる Microsoft Entra 管理者 (ユーザーまたはグループ) は 1 つだけです。

Microsoft Entra 管理構造の図。

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

  • MySQL 認証のみ - 既定のオプションでは、MySQL サインインとパスワードのみを使用したネイティブ MySQL 認証が許可されます。
  • Microsoft Entra 認証のみ - MySQL ネイティブ認証は無効であり、ユーザーとアプリケーションは Microsoft Entra を使用して認証する必要があります。 このモードを有効にするには、サーバー パラメーター aad_auth_onlyON に設定されます。
  • MySQL と Microsoft Entra ID による認証 - ネイティブ MySQL と Microsoft Entra 認証の両方を使用できます。 このモードを有効にするには、サーバー パラメーター aad_auth_onlyOFF に設定されます。

Permissions

UMI が Microsoft Graph からサーバー ID として読み取れるようにするには、次のアクセス許可が必要です。 または、ユーザー割り当てマネージド 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 統合
  • MFA を使用した Microsoft Entra Universal
  • Active Directory アプリケーション証明書またはクライアント シークレットの使用
  • マネージド ID

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

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

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

その他の考慮事項

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

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

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

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

  • フレキシブル サーバーは、アクセス トークンをユーザー名ではなく、ユーザーの一意の Entra ID と照合します。 そのため、ユーザーが Microsoft Entra から削除され、同じ名前の新しいユーザーが追加された場合、新しいユーザーは以前のアクセス許可を継承しません。

  • レプリカ サーバーで Entra 認証を有効にするには、すべてのレプリカ パートナーにプライマリ サーバーで使用されるのと同じ構成手順を適用する必要があります。

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

次のステップ