M365Con 2027 – 無料オンラインカンファレンス · 11–22 Jan 2027 · 120 sessions→ m365con.net

ブログ · Mirko Peters

Azure のマネージド ID とアプリの登録: 主な違いとベストプラクティス

By ·

最近 Azure で本格的なものを構築したりセキュリティ対策を講じたりするなら、マネージド ID とアプリの登録を理解することは避けて通れません…

Automatically translated with AI from the original post. Read the English original

Cover: Stop OAuth Consent Attacks in Microsoft Entra ID

最近の Azure で本格的なアプリケーションを構築したり保護したりするなら、マネージド ID とアプリの登録を理解することは、もはや必須です。どちらも、アプリ、自動化、サービスの ID とアクセス管理において大きな役割を果たします。ただし、どちらをどこで使うべきかを取り違えると、不要な手間やセキュリティ上の穴が生じたり、シークレットの管理が過剰になったりします。

本記事では、マネージド ID とアプリの登録とは何か、それらが Entra ID(旧 Azure AD)とどのように連携するか、そして適切な方式を選ぶことがセキュリティ態勢と日々の運用にとってなぜ重要なのかを解説します。遠回しな説明は抜きにして、実践的なシナリオ、シークレットを廃止するための移行のコツ、トラブルシューティングとガバナンスに役立つ具体的なヒントを紹介します。攻撃が増え、Entra ID のベストプラクティスも変化する中で、より堅牢で安全かつ効率的な Microsoft クラウドの運用を目指すことが狙いです。

マネージド ID とアプリの登録の理解

まず、Azure と Entra ID においてマネージド ID とアプリの登録が実際に何をするのかを明確にしましょう。どちらも、アプリ、スクリプト、自動化などの人間以外のアクターが認証し、Microsoft クラウド内のリソースにアクセスするための方法です。ただし、その認証の仕組みや、それによって解決される(あるいは生じる)日々の課題はかなり異なります。

マネージド ID は、シークレットを使わない認証に対する Azure の答えです。アプリのパスワードや証明書を扱う代わりに、Azure リソース(仮想マシン、App Service、Logic Apps など)に Entra ID 上の独自の ID を割り当てられます。この ID は Azure が自動的に管理します。リソースの作成時に作成され、リソースを削除すると破棄されます。そして何より、従来のシークレットをやり取りする必要がありません。マネージド ID には、システム割り当て(リソースごとに 1 つで、用途が厳密に限定される)とユーザー割り当て(複数のリソースで再利用可能)の 2 種類があります。

アプリの登録は従来型の方式です。Entra ID にアプリを登録するとアプリケーション オブジェクトが作成され、クライアント ID が発行されます。認証には、必要に応じてシークレットまたは証明書を使用します。アプリが Microsoft のサービスへのサインイン、Graph API へのアクセス、Azure 外での動作(または複数のリソースをまたぐ動作)を必要とする場合は、通常アプリの登録を使用します。ただし、シークレット、セキュリティ、ライフサイクルの管理は自分で行う必要があり、その分トレードオフが伴います。

どちらを選ぶかは、単なる技術的な判断ではありません。セキュリティリスクの計算でもあります。シークレットは攻撃者にとって格好の標的になりますが、シークレットを使わないマネージド ID を使えば、脆弱性の一群そのものを排除できます。この点が重要な理由を知るには、Entra ID OAuth 同意の悪用に関する詳しい解説をご覧ください。基本を誤った環境では、攻撃者は容易に永続化します。そのため、ID を正しく設計することが最初の一歩です。

コアとなる違い: ライフサイクル、セキュリティ、Azure との統合

ここからは理論と現実の話です。マネージド ID とアプリの登録はどちらも、アプリやスクリプトに「デジタルの名札」を与え、リソースへのアクセスを可能にします。しかし、その名札をどう取得し、どう管理し、どう後始末するかは大きく異なります。

マネージド ID は、クラウドにおける「設定したら後は放置」に最も近い方式です。Azure リソースを作成し、マネージド ID を要求するだけで完了です。Azure が ID を作成して Entra ID に接続し、バックエンドの同期も維持します。リソースを削除すると ID も消えます。シークレットの管理はゼロで、パスワードのローテーションも不要なため、セキュリティチームも安心できます。

アプリの登録は、はるかに多くの手間を要します。Entra ID でアプリの登録を手動で作成し、そのクライアント ID を管理し、認証用のシークレットまたは証明書を生成する必要があります。時間の経過とともにシークレットは期限切れになり(または漏えいする可能性もあり)、どのアプリがそれを使用しているかを監査するのは管理者の責任です。シークレットのローテーション、期限切れが近い資格情報の追跡、使われなくなった登録の削除は、それだけで独立した作業になります。だからこそ、セキュリティチームは常にライフサイクルの自動化について質問するのです。

セキュリティの観点では、両者の違いは明確です。マネージド ID は Azure リソースに紐づくシークレットレスの認証を使い、アプリの登録は静的なシークレットや証明書に依存します。そのため、シークレットのリスクがある場面や、自動化を最優先する場面では、マネージド ID が選ばれることが多くなります。

こうしたライフサイクルとセキュリティの違いは、自動化、コンプライアンス、そしてクラウド環境の引き締めに大きな影響を与えます。ガバナンス ポリシーや統制がアイデンティティの乱立やセキュリティのドリフトにどう関わるかを知りたい場合は、Azure ガバナンス戦略に関するこのガイドをご覧ください。規模が拡大している Azure 環境を担当する方にとっては必読の内容です。

サービス プリンシパル、RBAC ロール、Microsoft Graph のアクセス許可

ここからは、少し舞台裏を見ていきましょう。マネージド ID もアプリの登録も、内部では Entra ID のサービス プリンシパルを利用しています。サービス プリンシパルは、Entra ID が認識している実際に動作する ID と考えてください。マネージド ID から作られたものでも、アプリの登録から作られたものでも、テナント内でアクセス許可を受け、アクセスするのはこのオブジェクトです。

アプリの登録の場合、新しいアプリを追加すると、割り当てた各テナントに対応するサービス プリンシパルが Entra によって作成されます。これは、Azure RBAC ロール(共同作成者や閲覧者など)を付与する際や、委任またはアプリケーション レベルの Graph API のアクセス許可を付与する際に使用する ID です。

マネージド ID は少し異なりますが、基本的な仕組みは同じです。Azure リソースでマネージド ID を有効にすると、Entra によって、そのリソースと運命をともにする専用のサービス プリンシパルが作成されます。その後、この ID に対して(Key Vault 閲覧者などの)RBAC ロールを直接割り当てます。すると、リソースは裏側でトークンを使ってアクセスできるようになります。コードの変更は不要で、シークレットを持ち歩く必要もありません。

アクセス許可の付与こそが実務の要です。どちらのモデルもリソース レベルのアクセスには Azure の RBAC を使いますが、Graph のアクセス許可の付与方法は異なります。アプリの登録では、明示的な同意または管理者による承認によって Graph API へのアクセスを承認できます。マネージド ID には、対話型のサインインを経ずに Graph へのアプリケーション アクセス許可を与えられるため、ユーザー データの取得、セキュリティの監査、ワークフローのトリガーなど、自動化処理に最適です。

ただし、これらの ID のアクセス割り当てやコンプライアンスの監視は、「設定したら放置」というわけにはいきません。RBAC ロールの割り当てを厳密に管理し、定期的に監査を行い、Microsoft Defender for Cloud のようなツールを活用することで、誰が何をしているかを把握し、構成ミスを発見し、ドリフトを最小限に抑えることができます。ID ガバナンスを深く掘り下げたい場合は、Azure エンタープライズ ガバナンスのガイドや、継続的なセキュリティのコツを解説したMicrosoft Defender for Cloud でのコンプライアンス監視の解説もぜひご覧ください。

適切なモデルの選択: シナリオ、移行、ガバナンス

これまでの背景知識は重要ですが、多くのチームが実際に知りたいのは次の点でしょう。マネージド ID とアプリの登録はどのように使い分けるのか。また、規模が拡大しても問題が起きないよう、これらの ID をどのように移行し、管理すればよいのか。

マネージド ID は、Azure 内で直接動作し、同じテナント内のアクセスだけが必要なワークロードに適しています。たとえば、スクリプトを実行する VM、Key Vault にアクセスする App Service、Microsoft Graph にクエリを送信する Logic Apps などが該当します。セキュリティが強化され、設定もすばやく済み、シークレットの管理も少なくて済みます。一方で、SaaS、マルチテナント ソリューション、ハイブリッド構成(オンプレミスのアプリからクラウド API へアクセスするなど)を運用する場合は、柔軟性と幅広い互換性があるため、今もアプリの登録が第一の選択肢です。

アプリの登録からマネージド ID への移行は、注目度の高いテーマです。まず準備状況の評価から始めます。どのワークロードを実際に移行できるのか、どのような依存関係や制限があるのかを確認します。すでにアプリの登録で構築されているアプリケーションは、段階的に移行し、十分にテストし、ダウンタイムや認証の想定外の問題を防ぐためのフォールバック計画を用意しておくことをお勧めします。

ハイブリッド環境やマルチクラウド環境では、多少の工夫が必要になります。場合によっては両方のモデルを組み合わせて使う必要があり、これはハイブリッド ID と呼ばれる手法です。重要なのは、シークレットを最小限に抑え、アクセス許可を制限し、どの ID が何をするのかを明確に文書化することです。そして、リスクの原因になりがちな古い ID や所有者のいない ID を見つけるために、定期的な監査が欠かせません。

強固なガバナンス ポリシーが、戦略全体をまとめ上げます。Azure Policy、Privileged Identity Management、定期的なコンプライアンス チェックを活用すれば、最小特権の原則を徹底し、設定のずれを検出し、ゼロトラストに沿った運用を維持できます。サービス アカウントと本当のワークロード ID の違い(従来型の手法が不十分な理由を含む)について現実的に確認したい場合は、人間以外の ID のリスクと Microsoft Entra Workload Identitiesに関するこの分析をご覧ください。総合的なガバナンスの基本を知りたい方には、エンタープライズ ガバナンス戦略に関するリソースが、ベスト プラクティスを豊富に収録しています。

Entities in this article

Microsoft Entra ID Application registration Microsoft Graph Governance Managed identity Microsoft Entra Service principal Microsoft Azure App Service Azure Key Vault

Related articles

RSS