チュートリアル: 自動化を使って SQL Server 用の Microsoft Entra 管理者を設定する

適用対象: SQL Server 2022 (16.x)

Note

この機能は SQL Server 2022 (16.x) 以降のバージョンで利用でき、オンプレミスの SQL Server、Windows および Linux ホスト、および Windows Azure VM 上の SQL Server 2022 でのみサポートされます。

この記事では、Azure portal を使用して SQL Server の Microsoft Entra ID (旧称 Azure Active Directory) で認証を許可するように Microsoft Entra 管理者を設定する方法と、次のような API を設定する方法について説明します。

  • PowerShell
  • Azure CLI
  • ARM テンプレート

また、更新された機能を調べて、Azure portal で SQL Server 用の Microsoft Entra 管理者を設定します。これにより、証明書の作成とアプリケーションの登録が自動化されます。 以前は、SQL Server 用の Microsoft Entra 認証を設定するには、Azure 証明書とアプリケーションの登録を使用して Microsoft Entra 管理者を手動で設定する必要がありました

Note

Microsoft Entra ID はAzure Active Directory (Azure AD) の新しい名前ですが、既存の環境の中断を防ぐために、UI フィールド、接続プロバイダー、エラー コード、コマンドレットなど、ハードコーディングされた一部の要素でAzure AD が残ります。 この記事では、2 つの名前は交換可能です。

前提条件

  • SQL Server 2022 (16.x) 以降がインストールされている。
  • SQL Server が Azure クラウドに接続されていること。 詳細については、「SQL Server を Azure Arc に接続する」を参照してください。
  • Microsoft Entra ID は、Azure Arc インスタンスと同じテナントでの認証用に構成されています。
  • Azure Key Vault が必須です。

Microsoft Entra 管理者を設定する前の準備

SQL Server - Azure Arc リソースとキー コンテナーリソースで Microsoft Entra 管理者を設定するには、次のアクセス許可が必要です。

Azure Arc のアクセス許可を構成する

ガイドに従って、SQL Server が Azure Arc に接続されていることを確認します。SQL Server - Azure Arc リソースの Microsoft Entra 管理者を設定するユーザーには、サーバーでの投稿者ロールが必要です。

  1. Azure portal に移動します
  2. [SQL Server - Azure Arc] を選択し、SQL Server ホストのインスタンスを選択します。
  3. [アクセス制御 (IAM)] を選択します。
  4. [追加]>[ロールの割り当ての追加] を選択して、Microsoft Entra 管理者を設定しているユーザーに投稿者ロールを追加します。

Azure Key Vault のアクセス許可を構成する

Azure Key Vault をまだ作成していない場合は、作成します。 Microsoft Entra 管理者を設定するユーザーには、Azure Key Vault での投稿者ロールが必要です。 Azure Key Vault のユーザーにロールを追加するには:

  1. Azure portal に移動します
  2. [キー コンテナー] リソースに移動します。
  3. [アクセス制御 (IAM)] を選びます。
  4. [追加]>[ロールの割り当ての追加] を選択して、Microsoft Entra 管理者を設定しているユーザーに投稿者ロールを追加します。

SQL Server ホストのアクセス ポリシーを設定する

  1. Azure portal で、Azure Key Vault インスタンスに移動し、[アクセス ポリシー] を選択します。

  2. [アクセス ポリシーの追加] を選択します。

  3. [キーのアクセス許可] で、[署名] を使用します。

  4. [シークレットのアクセス許可] で、[取得][リスト] を選択します。

  5. [認定資格証のアクセス許可] で、[取得][リスト] の順に選択します。

  6. [次へ] を選択します。

  7. [プリンシパル] ページで、マシンの名前を検索します。Azure Arc インスタンスは、SQL Server ホストのホスト名です。

    Screenshot of Azure Arc server resource in portal.

  8. [次へ] を 2 回選択するか、[確認と作成] を選択して、[アプリケーション (オプション)] ページをスキップします。

    Screenshot of Azure portal to review and create access policy.

    [プリンシパル] の "オブジェクト ID" が、インスタンスに割り当てられているマネージド ID の [プリンシパル ID] と一致していることを確認します。

    Screenshot of portal control of JSON view of machine definition.

    確認するには、リソース ページに移動し、[概要] ページの [要点] ボックスの右上にある [JSON ビュー] を選択します。 ID の下に principalId があります。

  9. [作成] を選択します

アクセス許可が確実に適用されるように、必ず [作成] を選択してください。 アクセス許可が格納されたことを確認するには、ブラウザー ウィンドウを更新し、Azure Arc インスタンスの行がまだ残っていることを確認します。

Microsoft Entra ユーザーのアクセス ポリシーを設定する

  1. Azure portal で、Azure Key Vault インスタンスに移動し、[アクセス ポリシー] を選択します。
  2. [アクセス ポリシーの追加] を選択します。
  3. [キーのアクセス許可] で、[取得][リスト][作成] の順に選択します。
  4. [シークレットのアクセス許可] には、[取得][リスト]、および [設定] を選択します。
  5. [証明書のアクセス許可] には、[取得][リスト]、および [作成] を選択します。
  6. [プリンシパルの選択] で、SQL Server への接続に使用する Microsoft Entra ユーザーを追加します。
  7. [追加][保存] の順に選択します。

SQL Server 用の Microsoft Entra 管理者の設定

新しい API とポータル機能を使用すると、ユーザーは Azure 証明書と Microsoft Entra アプリケーションを個別に作成しなくても、SQL Server 用の Microsoft Entra 管理者を設定できます。 タブを選択すると、証明書とアプリケーションの自動作成を使用して Azure Arc に接続されている SQL Server の Microsoft Entra 管理者を設定する方法が表示されます。

Note

ARM テンプレートでは、Microsoft Entra 管理者を設定する前に、Azure Key Vault 証明書と Microsoft Entra アプリケーションを作成する必要があります。このプロセスの詳細については、「チュートリアル: SQL Server の Microsoft Entra 認証を設定する」を参照してください。

Azure portal を使用して Microsoft Entra 管理者を設定し、同じプロセスで Azure Key Vault 証明書と Microsoft Entra アプリケーションを作成します。 これは、SQL Server で Microsoft Entra 認証を使用するために必要です。

Note

以前は、Microsoft Entra 管理者を設定する前に、Azure Key Vault 証明書と Microsoft Entra アプリケーションの登録が必要でした。 これは必要なくなりましたが、ユーザーは引き続き、Microsoft Entra 管理者を設定する際に独自の証明書とアプリケーションを提供することを選択できます。

Azure portal を使用した Microsoft Entra 管理者の設定

  1. Azure portal に移動し、[SQL Server - Azure Arc] を選択し、SQL Server ホストのインスタンスを選択します。

  2. [プロパティ] メニューに移動して、[SQL Server - Azure Arc] リソースの状態を確認し、接続されているかどうかを確認します。 詳細については、「Arc 対応 SQL Server リソースの検証」を参照してください。

  3. リソース メニューの [設定] で、[Microsoft Entra ID] を選択します。

  4. [管理者の設定] を選択して [Microsoft Entra ID] ペインを開き、管理者ログインとして SQL Server に追加するアカウントを選択します。

  5. [Service-managed cert] を選択します。

  6. [キー コンテナーの変更] を選択し、既存の Azure Key Vault リソースを選択します。

  7. [サービスマネージド アプリの登録] を選択します。

  8. [保存] を選択します。 これにより、Arc サーバー エージェントに要求が送信され、その SQL Server インスタンスの Microsoft Entra 認証が構成されます。 操作が完了するまでに数分かかる場合があります。Saved successfully で保存処理が確認されるまで待ってから、Microsoft Entra ログインを試行してください。

    サービスマネージド アプリの登録では、次の処理が行われます。

    • <hostname>-<instanceName><uniqueNumber> という形式の名前の証明書をキー コンテナーに作成します。
    • <hostname>-<instanceName><uniqueNumber> のような名前の Microsoft Entra アプリケーションを作成し、そのアプリケーションに必要なアクセス許可を割り当てます。 詳細については、「アプリケーション権限の付与」を参照してください。
    • Azure Key Vault 内の新しい証明書をアプリケーションに割り当てます。
    • これらの設定を Azure Arc に保存します。

    Screenshot of setting Microsoft Entra authentication with automatic certificate and application generation in the Azure portal.

Note

Microsoft Entra 用に作成された証明書は自動的にローテーションされません。 ユーザーは、 Microsoft Entra 管理者のセットアップ用に独自の証明書とアプリケーションを提供することを選択できます。 詳細については、「チュートリアル: SQL Server の Microsoft Entra 認証を設定する」を参照してください。

Microsoft Entra 管理者が設定されると、Microsoft Entra 管理者の資格情報を使用して SQL Server に接続できます。 ただし、新しい Microsoft Entra ログインとユーザーの作成に関連するその他のデータベース アクティビティは、管理者の同意が Microsoft Entra アプリケーションに付与されるまで失敗します。

Note

アプリケーションに対して管理者の同意を付与するには、同意を付与するアカウントに Microsoft Entra グローバル管理者または特権ロール管理者のロールが必要です。 これらのロールは、アプリケーションの管理者の同意を付与するために必要ですが、Microsoft Entra 管理者を設定する必要はありません。

  1. Azure portal で、[Microsoft Entra ID]>[アプリの登録] を選択し、新しく作成したアプリケーションを選択します。 アプリケーションには <hostname>-<instanceName><uniqueNumber> のような名前が必要です。

  2. [API のアクセス許可] メニューを選択します。

  3. [管理者の同意の付与] を選択します。

    Screenshot of application permissions in the Azure portal.

アプリケーションに管理者の同意を付与しない場合、SQL Server で Microsoft Entra ログインまたはユーザーを作成すると、次のエラーが発生します。

Msg 37455, Level 16, State 1, Line 2
Server identity does not have permissions to access MS Graph.

Microsoft Entra 認証を使用して SQL Server に接続する

Azure Arc に接続されている SQL Server に対して Microsoft Entra 認証が設定されました。Microsoft Entra 認証を使用して SQL Server に接続するには、記事「チュートリアル: SQL Server の Microsoft Entra 認証を設定する」の Microsoft Entra 管理者を設定した後のセクションに従ってください。

関連項目