![]() |
![]() |
ずんだもん
ずん子ちゃん、Entraの「エンタープライズアプリケーション」と「アプリの登録」って、何が違うのだ?
東北ずん子
いい質問だね、ずんだもん!
エンタープライズアプリ
東北ずん子
簡単に言うと、「エンタープライズアプリケーション」は、会社で使うSaaSアプリとか外部サービスをEntraに追加して、みんなで使うための設定をする場所だよ。
一方、「アプリの登録」は、自分たちで作ったアプリや、APIを使うアプリをEntraに登録する場所なの。
ずんだもん
なるほどなのだ!
じゃあ、例えばSalesforceとかSlackを会社の人が使うときは「エンタープライズアプリケーション」を使うのだ?
東北ずん子
その通り!
SalesforceやSlack、GitHubみたいなSaaSサービスは「エンタープライズアプリケーション」に追加して、誰が使えるかとか、シングルサインオン(SSO)の設定をするんだよ。
アプリの登録
ずんだもん
じゃあ「アプリの登録」はどんなときに使うのだ?
東北ずん子
「アプリの登録」は、例えば自分たちで作ったWebアプリや、Microsoft Graph APIを使うアプリをEntraに登録したいときに使うよ。
ここでリダイレクトURIとか、APIの権限とか、シークレットの設定ができるんだ。
ずんだもん
ふむふむ。
じゃあ「アプリの登録」をすると、「エンタープライズアプリケーション」も自動でできるの?
東北ずん子
そうだよ!
「アプリの登録」をすると、そのアプリの“サービスプリンシパル”っていう実体が「エンタープライズアプリケーション」に自動的に作られるの。
「アプリの登録」はアプリの設計図、「エンタープライズアプリケーション」は実際に使うアプリのインスタンス、ってイメージだね!
ずんだもん
わかりやすいのだ!
まとめると、
-
SaaSや外部サービスを使いたいときは「エンタープライズアプリケーション」
-
独自開発やAPI連携したいときは「アプリの登録」
って覚えればいいのだな?
東北ずん子
その通り!
用途で使い分けると、EntraIDの管理がもっと便利になるよ♪
おさらい表
項目 | エンタープライズアプリケーション | アプリの登録 |
---|---|---|
主な用途 | SaaS・外部サービスの統合・管理 | 独自開発アプリやAPI連携 |
設定できること | SSO、ユーザー割り当て | API権限、リダイレクトURIなど |
代表的な利用シーン | Salesforce, Slack, GitHubなど | Webアプリ、Microsoft Graph等 |
オブジェクトの関係 | サービスプリンシパル(実体) | アプリケーションオブジェクト(設計図) |
ずんだもん
ずん子ちゃん、ありがとうなのだ!
「エンタープライズアプリケーション」と「アプリの登録」の比較表
Azure Active Directory(Entra)での「エンタープライズアプリケーション」と「アプリの登録」は、用途や管理対象が異なります。以下の表でその違いをわかりやすく整理します。
項目 | エンタープライズアプリケーション | アプリの登録 |
---|---|---|
主な用途 | 既存のSaaSアプリや外部アプリの統合(SSO、プロビジョニング等) | 独自開発アプリやAPI連携のためのアプリの公開・利用 |
代表的な利用シーン | Salesforce, Slack, GitHubなどのSaaSを組織に追加し管理 | Microsoft Graph API等にアクセスするアプリの開発・登録 |
管理対象 | サービスプリンシパル(テナント内のアプリインスタンス) | アプリケーションオブジェクト(アプリの雛形) |
ユーザー割り当て・管理 | ユーザーやグループへのアクセス権割り当てが可能 | 直接は不可。登録後、エンタープライズアプリから設定 |
SSO(シングルサインオン) | 主にこちらで設定(SAML, OIDC, SCIM等) | 必要に応じて構成可能 |
APIアクセス権限設定 | 基本的に不可(割り当てのみ) | 可能(Microsoft Graph等のAPI権限を設定) |
登録方法 | Azureポータル>エンタープライズアプリケーション>新規追加 | Azureポータル>アプリの登録>新規登録 |
オブジェクトの関係 | サービスプリンシパル(アプリの登録で自動生成されることも) | アプリケーションオブジェクト(1つ、雛形となる) |
代表的な設定項目 | アクセス割り当て、SSO構成、プロビジョニング | リダイレクトURI、証明書・シークレット、API権限等 |
どちらを使うべきか | 組織ユーザーに外部/既存アプリを使わせたい場合 | 独自アプリやAPI連携を開発・公開したい場合 |
まとめると
-
「アプリの登録」を行うと、そのアプリのサービスプリンシパルが「エンタープライズアプリケーション」として自動的に作成されます。つまり、「アプリの登録」はアプリの雛形(アプリケーションオブジェクト)、「エンタープライズアプリケーション」は実際にテナントで動作するインスタンス(サービスプリンシパル)を管理します。
-
どちらを使うかは「何をしたいか」で決めます。SaaSや外部サービスのSSOなら「エンタープライズアプリケーション」、独自開発やAPI利用なら「アプリの登録」です。
PowerAppsはどっちになる
![]() |
![]() |
ずんだもん
ずん子ちゃん、PowerAppsは「エンタープライズアプリケーション」と「アプリの登録」どっちになるのだ?
東北ずん子
いい質問だね!
PowerAppsは、Microsoftが提供するSaaS型の業務アプリ開発サービスだから、Entra上では「エンタープライズアプリケーション」として扱われるわよ。
ずんだもん
じゃあ、ユーザーやグループへの割り当てやSSOの設定も「エンタープライズアプリケーション」からするのだ?
東北ずん子
その通り!PowerApps自体は既成のSaaSアプリとしてEntraに登録されているから、アクセス権の割り当てや管理は「エンタープライズアプリケーション」から行うの。
ずんだもん
でも、自分でPowerApps用のカスタムコネクタやAPI連携を作りたいときは?
東北ずん子
その場合は「アプリの登録」を使うよ!
自作のPowerAppsやカスタムコネクタがMicrosoft GraphなどのAPIにアクセスする場合、「アプリの登録」でアプリケーションオブジェクトを作って、必要な権限を設定するのよ。
利用シーン | 該当する管理項目 |
---|---|
PowerApps本体の利用・管理 | エンタープライズアプリケーション |
カスタムAPIやコネクタの登録 | アプリの登録 |
ずんだもん
つまり、PowerApps本体は「エンタープライズアプリケーション」、自作API連携は「アプリの登録」なのだ!
PowerShellコマンドのちがい(Graph)
管理対象 | モジュール | 代表的なコマンド例 | 主な用途・説明 |
---|---|---|---|
エンタープライズアプリケーション | Microsoft Graph | Get-MgServicePrincipal New-MgServicePrincipal Get-MgServicePrincipalAppRoleAssignment |
エンタープライズアプリの管理、役割割り当てなど |
アプリの登録 | Microsoft Graph | New-MgApplication Get-MgApplication Set-MgApplication Remove-MgApplication |
アプリ登録、プロパティ・権限・シークレット管理 |
補足
-
Microsoft Graph PowerShell SDKは今後推奨される新しい管理方法です。
-
エンタープライズアプリケーションは「ServicePrincipal」系コマンド、アプリの登録は「Application」系コマンドを使います。
-
どちらもGraph対応ですが、コマンド名と管理対象が異なるため、用途に応じて使い分けます。
出力イメージと用途(シンプル表)
コマンド | 主な出力項目例 | 利用用途(現場でよく使うケース) |
---|---|---|
Get-MgServicePrincipal | DisplayName SignInAudience PublisherName |
テナント内で実際に使われているアプリ(SaaSや自社開発)の一覧取得 ユーザーやグループの割り当て状況確認、SSO設定の確認 |
Get-MgApplication | DisplayName SignInAudience PublisherDomain |
自分たちで登録・管理しているアプリの設計図一覧取得 API権限やリダイレクトURI、シークレットなどの設定確認・管理 |
出力イメージ(ダミーデータ)
Get-MgServicePrincipal
DisplayName | SignInAudience | PublisherName |
---|---|---|
Microsoft Graph | AzureADMultipleOrgs | Microsoft |
PowerApps | AzureADMultipleOrgs | Microsoft |
Contoso HR System | AzureADMyOrg | Contoso IT Dept |
Get-MgApplication
DisplayName | SignInAudience | PublisherDomain |
---|---|---|
Contoso Web App | AzureADandPersonalMicrosoftAccount | contoso.com |
API Connector | AzureADMyOrg | api.contoso.net |
Mobile Auth Service | AzureADMultipleOrgs | auth.contoso.jp |
利用シーンまとめ
-
Get-MgServicePrincipal
→「このテナントで実際に動いている(ユーザー割り当てやSSO対象となる)アプリ一覧を知りたいとき」に使う -
Get-MgApplication
→「自分たちがEntraに登録したアプリの“設計図”やAPI連携設定を確認したいとき」に使う
ずんだもん
「エンタープライズアプリケーション」と「アプリの登録」では、PowerShellコマンドが違うのだな!
東北ずん子
その通り!
-
アプリの登録は「Application」コマンド
-
エンタープライズアプリケーションは「ServicePrincipal」コマンド
を使い分ければOKだよ!
なぜMSは「アプリの登録」と「エンタープライズアプリケーション」を分けているのか?
![]() |
![]() |
ずんだもん
なんでMicrosoftは、こんなややこしく「アプリの登録」と「エンタープライズアプリケーション」を分けているのだ?
一つでよくないのだ?
東北ずん子
実は、これにはちゃんと理由があるんだよ!
Entraでは、
-
アプリの登録(App registration):アプリの「設計図」や「雛形」を作る場所
-
エンタープライズアプリケーション(Enterprise applications):実際にテナント(組織)で使う「実体(インスタンス)」を管理する場所
という役割分担があるんだ。
ずんだもん
設計図と実体…?
東北ずん子
そう!
例えば、同じアプリでも、A社とB社で使い方や設定が違うことがあるよね?
「アプリの登録」は1つだけど、それを元に各社ごとに「エンタープライズアプリケーション(サービスプリンシパル)」が作られて、それぞれの会社で管理できるようになっているんだよ。
ずんだもん
なるほど!
つまり「アプリの登録」は“共通の仕様書”、
「エンタープライズアプリケーション」は“各会社ごとの実際のアプリ”ってことなのだ!
東北ずん子
その通り!
これを分けておくことで、
-
SaaSベンダーは「アプリの登録」で一度だけアプリを設計
-
各会社は「エンタープライズアプリケーション」で自分たちの設定やユーザー管理ができる
という利便性が生まれるんだよ。
和訳も一因
ずんだもん
でも、英語の「App registration」と「Enterprise applications」って、日本語訳だと余計わかりにくくなってる気がするのだ…
東北ずん子
確かに!
-
「App registration」は直訳すると「アプリの登録」だけど、実際はアプリの設計図を登録するって意味。
-
「Enterprise applications」は直訳すると「エンタープライズアプリケーション」だけど、実際は組織で使うアプリの実体って意味。
日本語だと「登録」と「アプリケーション」だけで違いが伝わりにくくて、混乱しやすいんだよね。
その他について
![]() |
![]() |
マルチテナント
ずんだもん
ずん子ちゃん、「アプリの登録」って1回作れば、他の会社でも使えるって本当なのだ?
東北ずん子
そうだよ!
「アプリの登録」をマルチテナント設定にしておけば、他のAzureテナントでもそのアプリを使えるようになるんだ。
ずんだもん
どうやって他のテナントで使えるようになるのだ?
東北ずん子
他のテナントでアプリに最初にサインインすると、その時にサービスプリンシパル(エンタープライズアプリケーション)が自動で作られるの。
つまり、「アプリの登録」は共通の設計図で、各テナントでのエンタープライズアプリが**実体(インスタンス)**になる感じね。
ずんだもん
なるほど!じゃあSaaSベンダーが一度アプリを登録すれば、いろんなお客さんに使ってもらえるのだ?
東北ずん子
その通り!
だからマルチテナントのアプリ登録は、SaaSの基本設計なのよ。
アクセス制御
ずんだもん
ところで、「アプリの登録」って、ユーザーに使ってもらう設定もできるのだ?
東北ずん子
実はそれはできないの。
「アプリの登録」にはユーザーやグループの割り当て機能がないのよ。アクセス制御は「エンタープライズアプリケーション」でやるの。
ずんだもん
じゃあ、ユーザーがそのアプリを使えるようにするには?
東北ずん子
「エンタープライズアプリケーション」でユーザーやグループを割り当てたり、条件付きアクセスの設定をしたりするの。
これはテナントごとに違う設定ができるから、柔軟なんだよ。
Graphのアプリ登録
ずんだもん
あと、Microsoft GraphってAPIを使うには、「アプリの登録」って必要なのだ?
東北ずん子
うん、必要だよ!
Microsoft Graphとか、SharePoint APIみたいなMicrosoftのAPIを呼び出すには、アプリをEntraで登録しておく必要があるの。
ずんだもん
なんでなのだ?
東北ずん子
APIを使うには、アプリにちゃんと権限を与えて、トークンを発行してもらう仕組みが必要だからなんだ。
その設定ができるのが、「アプリの登録」なの。
ずんだもん
つまり、「アプリの登録」って、APIを使うときの“入り口”なのだな!
東北ずん子
その通り!
Microsoft Graphや外部サービスと安全に連携するには、「アプリの登録」で認証と認可の設定をちゃんと行うことが大事なの♪
まとめ
- 設計図(App registration)と実体(Enterprise applications)を分けることで、SaaSベンダーと利用企業の両方にとって便利な仕組みになっている
ずんだもん
やっとスッキリしたのだ!
ありがとう、ずん子ちゃん!
東北ずん子
どういたしまして!
「設計図」と「実体」って覚えると、もう迷わないよ♪
参考サイト
参考文献・利用キャラクター
- ずんだもん:VOICEVOX:ずんだもん
本記事で使用しているキャラクター画像の著作権は、それぞれの権利者に帰属します。
非商用目的での利用に基づき掲載しています。