Azure Spring Apps のアプリケーションのシステム割り当てマネージド ID を有効にする
Note
Basic、Standard、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 に移行する」を参照してください。
この記事の適用対象:✅ Basic/Standard ✅ Enterprise
この記事では、Azure portal と CLI を使用して、Azure Spring Apps でアプリケーションのシステム割り当てマネージド ID を有効または無効にする方法を示します。
Azure リソースのマネージド ID では、Microsoft Entra ID で自動的に管理される ID が、Azure Spring Apps のアプリケーションなどの Azure リソースに提供されます。 この ID を使用すると、コード内に資格情報を記述することなく、Microsoft Entra の認証をサポートする任意のサービスに対して認証を行うことができます。
前提条件
Azure リソースのマネージド ID について不明な場合は、「Azure リソースのマネージド ID とは」を参照してください
- Azure Spring Apps Enterprise プランのインスタンスが既にプロビジョニングされている。 詳細については、「クイック スタート: Enterprise プランを使用してアプリをビルドし Azure Spring Apps にデプロイする」をご覧ください。
- Azure CLI バージョン 2.45.0 以上。
- Azure CLI 用 Azure Spring Apps 拡張機能では、バージョン 1.0.0 以降のアプリ ユーザー割り当てマネージド ID がサポートされています。 次のコマンドを使用して、以前のバージョンを削除し、最新の拡張機能をインストールします。
az extension remove --name spring az extension add --name spring
- Azure Spring Apps インスタンスが既にプロビジョニングされていること。 詳細については、「クイックスタート: 初めてのアプリケーションを Azure Spring Apps にデプロイする」を参照してください。
- Azure CLI バージョン 2.45.0 以上。
- Azure CLI 用 Azure Spring Apps 拡張機能では、バージョン 1.0.0 以降のアプリ ユーザー割り当てマネージド ID がサポートされています。 次のコマンドを使用して、以前のバージョンを削除し、最新の拡張機能をインストールします。
az extension remove --name spring az extension add --name spring
システム割り当て ID を追加する
システム割り当て ID を持つアプリを作成するには、アプリケーションにその他のプロパティを設定する必要があります。
Azure portal でマネージド ID を設定するには、先にアプリを作成し、その後でこの機能を有効にします。
- ポータルを使って通常の方法でアプリを作成します。 ポータルでアプリに移動します。
- 左側のナビゲーション ペインで、[設定] グループまで下へスクロールします。
- [ID] を選択します。
- [システム割り当て済み] タブで、 [状態] を [オン] に切り替えます。 [保存] を選択します。
Azure リソースのトークンを取得する
アプリは、そのマネージド ID を使って、Azure Key Vault など Microsoft Entra ID で保護されているその他のリソースにアクセスするトークンを取得できます。 これらのトークンは、アプリケーションの特定のユーザーではなく、リソースにアクセスするアプリケーションを表します。
アプリケーションからのアクセスを有効にするには、ターゲット リソースを構成する必要がある場合があります。 詳細については、「マネージド ID アクセスを Azure リソースまたは別のリソースに割り当てる」を参照してください。 たとえば、Key Vault にアクセスするためのトークンを要求する場合は、お使いのアプリケーションの ID を含むアクセス ポリシーを追加していることを確認してください。 追加しないと、トークンを含めた場合でも、Key Vault の呼び出しは拒否されます。 Microsoft Entra トークンをサポートするリソースの詳細については、「マネージド ID を使用して他のサービスにアクセスできる Azure サービス」を参照してください。
Azure Spring Apps では、トークンの取得に Azure Virtual Machine と同じエンドポイントが共有されます。 Java SDK または Spring Boot Starter を使用してトークンを取得することをお勧めします。 トークンの有効期限や HTTP エラーの処理などの重要なトピックに関するさまざまなコードとスクリプトの例とガイダンスについては、「Azure VM 上で Azure リソースのマネージド ID を使用してアクセス トークンを取得する方法」を参照してください。
アプリからシステム割り当て ID を無効にする
システム割り当て ID を削除すると、それは Microsoft Entra ID からも削除されます。 アプリ リソースを削除すると、Microsoft Entra ID からシステム割り当て ID が自動的に削除されます。
不要になったアプリからシステム割り当てマネージド ID を削除するには、次の手順に従います:
- Azure Spring Apps インスタンスが含まれている Azure サブスクリプションに関連付けられているアカウントを使用して、Azure portal にサインインします。
- 目的のアプリケーションに移動し、[ID] を選択します。
- [システム割り当て済み]/[状態] で [オフ] を選択し、[保存] を選択します。
オブジェクト ID (プリンシパル ID) からクライアント ID を取得する
オブジェクト/プリンシパル ID 値からクライアント ID を取得するには、次のコマンドを使用します:
az ad sp show --id <object-ID> --query appId