マネージド ID を使用して Azure SQL Database を Azure Spring Apps にデプロイされたアプリに接続する

Note

BasicStandard、および Enterprise プランは、2025 年 3 月中旬以降に非推奨になり、廃止期間は 3 年間になります。 Azure Container Apps に移行することをお勧めします。 詳細については、「Azure Spring Apps の廃止のお知らせ」を参照してください。

Standard 従量課金と専用プランは、2024 年 9 月 30 日以降に非推奨になり、6 か月後に完全にシャットダウンされます。 Azure Container Apps に移行することをお勧めします。 詳細については、「Azure Spring Apps の Standard 従量課金および専用プランを Azure Container Apps に移行する」を参照してください。

この記事の適用対象: ✔️ Java ✔️ C#

この記事の適用対象: ✔️ Basic または Standard ✔️ Enterprise

この記事では、Azure Spring Apps に展開されたアプリのマネージド ID を作成し、それを使用して Azure SQL Database にアクセスする方法について説明します。

Azure SQL Database は、クラウド向けに構築されたインテリジェントでスケーラブルなリレーショナル データベース サービスです。 パフォーマンスと持続性を最適化する、AI を活用した自動機能により、常に最新の状態に保たれます。 サーバーレス コンピューティングと Hyperscale ストレージ オプションを使用することで、リソースが必要に応じて自動的にスケーリングされるため、ストレージ サイズやリソースの管理に煩わされずに、新しいアプリケーションの構築に専念できます。

前提条件

マネージド ID を使用して Azure SQL Database に接続する

手動の手順に従うか、サービス コネクタを使用することで、マネージド ID を使用してアプリケーションを Azure SQL Database に接続できます。

マネージド ID にアクセス許可を付与する

SQL サーバーに接続して、次の SQL クエリを実行します。

CREATE USER [<managed-identity-name>] FROM EXTERNAL PROVIDER;
ALTER ROLE db_datareader ADD MEMBER [<managed-identity-name>];
ALTER ROLE db_datawriter ADD MEMBER [<managed-identity-name>];
ALTER ROLE db_ddladmin ADD MEMBER [<managed-identity-name>];
GO

<managed-identity-name> プレースホルダーの値はルール <service-instance-name>/apps/<app-name> に従います (例: myspringcloud/apps/sqldemo)。 Azure CLI で次のコマンドを使用して、マネージド ID 名のクエリを実行することもできます。

az ad sp show --id <identity-object-ID> --query displayName

マネージド ID を使用するように Java アプリを構成する

次の例に示すように、src/main/resources/application.properties ファイルを開き、spring.datasource.url 行の末尾に Authentication=ActiveDirectoryMSI; を追加します。 $AZ _DATABASE_NAME 変数には、必ず正しい値を使用してください。

spring.datasource.url=jdbc:sqlserver://$AZ_DATABASE_NAME.database.windows.net:1433;database=demo;encrypt=true;trustServerCertificate=false;hostNameInCertificate=*.database.windows.net;loginTimeout=30;Authentication=ActiveDirectoryMSI;

アプリを構築して Azure Spring Apps にデプロイする

アプリをリビルドし、「前提条件」の 2 番目の箇条書きでプロビジョニングした Azure Spring Apps にデプロイします。 これで、Spring Boot アプリケーションがマネージド ID によって認証されました。これは、Azure Spring Apps で JPA を使用して、Azure SQL Database のデータの保存と取得を行います。

次のステップ