サービス プリンシパルを調べる
ID およびアクセス管理機能を Microsoft Entra ID に委任するには、アプリケーションを Microsoft Entra テナントに登録する必要があります。 アプリケーションを Microsoft Entra ID に登録するとき、アプリケーションの ID 構成を作成します。これによって Microsoft Entra ID との統合が可能になります。 Azure portal にアプリを登録するときは、次のいずれかを選択します。
- シングル テナント: 自分のテナント内でのみアクセス可能
- マルチテナント: 他のテナントでアクセス可能
アプリケーションをポータルに登録すると、アプリケーション オブジェクト (アプリのグローバルに一意なインスタンス) とサービス プリンシパル オブジェクトがホーム テナントに自動的に作成されます。 また、アプリにグローバルに一意な ID (アプリまたはクライアント ID) も割り当てられます。 ポータルでは、シークレットまたは証明書とスコープを追加してアプリを機能させることや、サインイン ダイアログでアプリのブランドをカスタマイズすることなどができます。
Note
Azure PowerShell、Azure CLI、Microsoft Graph、およびその他のツールを使用して、テナントにサービス プリンシパル オブジェクトを作成することもできます。
アプリケーション オブジェクト
Microsoft Entra アプリケーションは、その唯一のアプリケーション オブジェクトによって規定されます。 アプリケーション オブジェクトは、アプリケーションが登録された Microsoft Entra テナント (アプリケーションの "ホーム" テナントと呼ばれます) に存在します。 アプリケーション オブジェクトは、1 つ以上のサービス プリンシパル オブジェクトを作成するためのテンプレートまたはブループリントとして使用されます。 サービス プリンシパルは、アプリケーションが使用されるすべてのテナントに作成されます。 オブジェクト指向プログラミングのクラスと同様に、アプリケーション オブジェクトには、作成されたすべてのサービス プリンシパル (またはアプリケーション インスタンス) に適用されるいくつかの静的プロパティがあります。
アプリケーション オブジェクトでは、アプリケーションの 3 つの側面について説明します。
- アプリケーションにアクセスするためにサービスでトークンを発行する方法。
- アプリケーションがアクセスする必要があるリソース。
- アプリケーションが実行できるアクション。
アプリケーション オブジェクトのプロパティのスキーマは、Microsoft Graph Application エンティティによって定義されています。
サービス プリンシパル オブジェクト
Microsoft Entra テナントによって保護されているリソースにアクセスするには、アクセスを要求しているエンティティがセキュリティ プリンシパルによって表されている必要があります。 これは、ユーザー (ユーザー プリンシパル) とアプリケーション (サービス プリンシパル) の両方に当てはまります。
セキュリティ プリンシパルは、その Microsoft Entra テナント内のユーザー/アプリケーションのアクセス ポリシーとアクセス許可を定義します。 これにより、サインイン時のユーザー/アプリケーションの認証、リソースへのアクセス時の承認などのコア機能を利用できるようになります。
サービス プリンシパルには、次の 3 種類があります。
アプリケーション - この種類のサービス プリンシパルは、単一のテナントまたはディレクトリ内のグローバル アプリケーション オブジェクトのローカル表現、つまりアプリケーション インスタンスです。 サービス プリンシパルは、アプリケーションが使用される各テナント内に作成され、グローバルに一意なアプリ オブジェクトを参照します。 サービス プリンシパル オブジェクトには、特定のテナント内でアプリが実際に実行できること、アプリにアクセスできるユーザー、アプリからアクセスできるリソースを定義します。
マネージド ID - この種類のサービス プリンシパルは、マネージド ID を表す目的で使用されます。 マネージド ID は、Microsoft Entra 認証をサポートするリソースに接続するときに使用する ID をアプリケーションに提供します。 マネージド ID が有効になっている場合、そのマネージド ID を表すサービス プリンシパルがテナントに作成されます。 マネージド ID を表すサービス プリンシパルには、権利やアクセス許可を付与できますが、直接更新したり変更を加えたりすることはできません。
レガシ - この種類のサービス プリンシパルは、レガシ アプリを表します。これは、アプリの登録前に作成されたアプリ、またはレガシ エクスペリエンスを使用して作成されたアプリです。 レガシ サービス プリンシパルには以下を含めることができます。
- 資格情報
- サービス プリンシパル名
- 応答 URL
- 許可されているユーザーが編集できるが、アプリの登録が関連付けられていないその他のプロパティ。
アプリケーション オブジェクトとサービス プリンシパル間のリレーションシップ
アプリケーション オブジェクトは、すべてのテナントで使用するアプリケーションの "グローバル" 表現であり、サービス プリンシパルは、特定のテナントで使用する "ローカル" 表現です。 アプリケーション オブジェクトは、対応するサービス プリンシパル オブジェクトの作成に使用するために、一般的な既定のプロパティが派生するテンプレートとして機能します。
アプリケーション オブジェクトには以下があります。
- ソフトウェア アプリケーションとの 1 対 1 のリレーションシップ
- 対応するサービス プリンシパル オブジェクトとの 1 対多のリレーションシップ。
サービス プリンシパルは、テナントによってセキュリティ保護されているリソースにサインインまたはアクセスするための ID を確立できるように、アプリケーションが使用される各テナント内に作成する必要があります。 シングルテナント アプリケーションには、アプリケーション登録中に作成され、使用が同意されたサービス プリンシパルが (そのホーム テナントに) 1 つだけあります。 マルチテナント アプリケーションには、そのテナントのユーザーが使用に同意した各テナントで作成されたサービス プリンシパルもあります。