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 Spring Apps のアプリケーションにシステム割り当てとユーザー割り当てのマネージド ID を使用する方法について説明します。
Azure リソースのマネージド ID では、Microsoft Entra ID 内のマネージド ID が、自動的に Azure リソース (Azure Spring Apps 内のお使いのアプリケーションなど) に提供されます。 この ID を使用すると、コード内に資格情報を記述することなく、Microsoft Entra の認証をサポートする任意のサービスに対して認証を行うことができます。
機能の状態
システム割り当て | ユーザー割り当て |
---|---|
GA | GA |
アプリケーションのマネージド ID を管理する
システム割り当てマネージド ID については、システム割り当てマネージド ID を有効または無効にする方法に関する記事を参照してください。
ユーザー割り当てマネージド ID については、ユーザー割り当てマネージド ID の割り当ておよび削除方法に関する記事を参照してください。
Azure リソースのトークンを取得する
アプリケーションは、そのマネージド ID を使用して、Microsoft Entra ID で保護されているその他のリソース (Azure Key Vault など) にアクセスするためのトークンを取得することができます。 これらのトークンは、アプリケーションの特定のユーザーではなく、リソースにアクセスするアプリケーションを表します。
アプリケーションからのアクセスを許可するようにターゲット リソースを構成できます。 詳細については、「Azure リソースまたは別のリソースマネージド ID アクセスを Azure リソースまたは別のリソースに割り当てる 」を参照してください。 たとえば、Key Vault にアクセスするためのトークンを要求する場合は、お使いのアプリケーションの ID を含むアクセス ポリシーを追加していることを確認してください。 追加しないと、トークンを含めた場合でも、Key Vault の呼び出しは拒否されます。 どのリソースで Microsoft Entra トークンがサポートされるかについて詳しくは、「Microsoft Entra 認証をサポートする Azure サービス」をご参照ください。
Azure Spring Apps では、トークンの取得に Azure Virtual Machine と同じエンドポイントが共有されます。 Java SDK または Spring Boot Starter を使用してトークンを取得することをお勧めします。 さまざまなコードとスクリプトの例、およびトークンの有効期限や HTTP エラーの処理などの重要なトピックに関するガイダンスについては、「Azure VM で Azure リソースのマネージド ID を使用してアクセス トークンを取得する方法」を参照してください。
アプリケーション コードで Azure サービスを接続する例
次の表に、例を含む記事へのリンクを示します。
Azure サービス | チュートリアル |
---|---|
Key Vault | チュートリアル: マネージド ID を使用して Key Vault を Azure Spring Apps アプリに接続する |
Azure Functions | チュートリアル: マネージド ID を使用して Azure Spring Apps アプリから Azure Functions を呼び出す |
Azure SQL | マネージド ID を使用して Azure SQL Database を Azure Spring Apps アプリに接続する |
マネージド ID を使用しているときのベスト プラクティス
有効なユース ケースがない限り、システム割り当てマネージド ID とユーザー割り当てマネージド ID を個別に使用することを強くお勧めします。 両方の種類のマネージド ID を一緒に使用すると、アプリケーションがシステム割り当てマネージド ID を使用していて、その ID のクライアント ID を指定せずにアプリケーションがトークンを取得した場合、エラーが発生する可能性があります。 このシナリオは、1 つ以上のユーザー割り当てマネージド ID がそのアプリケーションに割り当てられるまで正常に動作しますが、アプリケーションが正しいトークンを取得できない可能性があります。
制限事項
アプリケーションあたりのユーザー割り当てマネージド ID の最大数
アプリケーションごとのユーザー割り当てマネージド ID の最大数については、Azure Spring Apps のクォータとサービス プランに関する記事を参照してください。
概念マッピング
次の表に、マネージド ID のスコープおよび Microsoft Entra のスコープ内の、概念間のマッピングを示します。
マネージド ID のスコープ | Microsoft Entra スコープ |
---|---|
プリンシパル ID | Object ID |
Client ID | アプリケーション ID |