0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

ずんだもん「Azure『アプリの登録』と『エンタープライズアプリ』って何が違うの?コマンドもまとめてみたのだ!」

Last updated at Posted at 2025-05-16
Image 1 Image 2

ずんだもん
ずん子ちゃん、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はどっちになる

Image 1 Image 2

ずんだもん
ずん子ちゃん、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は「アプリの登録」と「エンタープライズアプリケーション」を分けているのか?

Image 1 Image 2

ずんだもん
なんでMicrosoftは、こんなややこしく「アプリの登録」と「エンタープライズアプリケーション」を分けているのだ?
一つでよくないのだ?

東北ずん子
実は、これにはちゃんと理由があるんだよ!
Entraでは、

  • アプリの登録(App registration):アプリの「設計図」や「雛形」を作る場所

  • エンタープライズアプリケーション(Enterprise applications):実際にテナント(組織)で使う「実体(インスタンス)」を管理する場所
    という役割分担があるんだ。

ずんだもん
設計図と実体…?

東北ずん子
そう!
例えば、同じアプリでも、A社とB社で使い方や設定が違うことがあるよね?
「アプリの登録」は1つだけど、それを元に各社ごとに「エンタープライズアプリケーション(サービスプリンシパル)」が作られて、それぞれの会社で管理できるようになっているんだよ。

ずんだもん
なるほど!
つまり「アプリの登録」は“共通の仕様書”、
「エンタープライズアプリケーション」は“各会社ごとの実際のアプリ”ってことなのだ!

東北ずん子
その通り!
これを分けておくことで、

  • SaaSベンダーは「アプリの登録」で一度だけアプリを設計

  • 各会社は「エンタープライズアプリケーション」で自分たちの設定やユーザー管理ができる

という利便性が生まれるんだよ。

和訳も一因

ずんだもん
でも、英語の「App registration」と「Enterprise applications」って、日本語訳だと余計わかりにくくなってる気がするのだ…

東北ずん子
確かに!

  • 「App registration」は直訳すると「アプリの登録」だけど、実際はアプリの設計図を登録するって意味。

  • 「Enterprise applications」は直訳すると「エンタープライズアプリケーション」だけど、実際は組織で使うアプリの実体って意味。

日本語だと「登録」と「アプリケーション」だけで違いが伝わりにくくて、混乱しやすいんだよね。

その他について

Image 1 Image 2

マルチテナント

ずんだもん
ずん子ちゃん、「アプリの登録」って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:ずんだもん
    本記事で使用しているキャラクター画像の著作権は、それぞれの権利者に帰属します。
    非商用目的での利用に基づき掲載しています。
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?