Share via


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

Note

Azure Spring Apps は、Azure Spring Cloud サービスの新しい名前です。 サービスの名前は新しくなりましたが、スクリーンショット、ビデオ、図などの資産の更新に取り組んでいる間、場所によってはしばらく古い名前が表示されます。

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

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

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

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

前提条件

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

手動の手順に従うか、Service Connector を使用して、マネージド 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 にデプロイします。 これで、JPA を使用して Azure Spring Apps の Azure SQL Database にデータを格納および取得するマネージド ID によって認証された Spring Boot アプリケーションが作成されました。

次のステップ