ワークロード ID は一般用語です(Azure 特有のものではない)
定義としては:
ワークロード ID とは、他のサービスやリソースを認証してアクセスするためにソフトウェア ワークロード (アプリケーション、サービス、スクリプト、コンテナーなど) によって使用される ID です。
Azure AD の場合、以下のものが当てはなります。
- アプリケーション オブジェクト(AAD のアプリケーション登録)
- サービス プリンシパル
- マネージド ID
アプリケーション
- ID とアクセスの管理機能を Azure AD に委任するには、アプリケーションを Azure AD のテナントに登録する必要があります。
- アプリケーションの ID 構成を作成よって Azure AD との連携が可能となります。
- アプリの登録が完了すると、ホーム テナントまたはディレクトリ内に存在するアプリ(アプリケーション オブジェクト)のグローバルに一意なインスタンスが作成されます。
- アプリの登録は「シングル テナント」か「マルチテナント」かを指定可能
- アプリケーションの登録先の AAD にアプリケーション オブジェクトが作成される
- 「Azure ポータル」→「Azure Active Directory」→「エンタープライズ アプリケーション」→「すべてのアプリケーション」で確認可能
- AAD にサービス プリンシパル(インスタンス)も作成される
- 「マルチテナント」の場合、アプリケーションが使用されるすべてのテナントにサービス プリンシパルが作成される
- Graph APIで作成した場合、サービス プリンシパルは別途作成が必要 ※ ポータルではアプリケーションと一体になっている
- 1つのアプリケーションの後ろに複数のサービス プリンシパルを使用する場合もあります。
サービス プリンシパル
セキュリティ プリンシパルは以下のものの総称です
- サービス プリンシパル
- ユーザー (ユーザー プリンシパル)
- ユーザー グループ
サービス プリンシパルの種類
- アプリケーション:アプリケーションが使用されるすべてのテナントにサービス プリンシパル(インスタンス)が作成される
- マネージドID:マネージド ID が有効になっている場合、そのマネージド ID を表すサービス プリンシパルがテナントに作成されます。
- ※ レガシ:アプリの登録前に作成されたアプリ、またはレガシ エクスペリエンスを使用して作成されたアプリです。
アプリケーション オブジェクトとサービス プリンシパル間のリレーションシップ
アプリケーション オブジェクトは、すべてのテナントで使用するアプリケーションの "グローバル" 表現であり、サービス プリンシパルは、特定のテナントで使用する "ローカル" 表現です。
特徴:
- マルチテナント アプリケーション場合、アプリケーション オブジェクトの後ろに、テナントごとにサービス プリンシパルが作成される(1対多)
- シングル テナントの場合、サービス プリンシパルは1つのみ作成される
- Azure ポータルで、実体としてアプリケーション オブジェクトのみ確認・作成ができる
- Graph APIで作成した場合、明示的にサービス プリンシパルを作成する必要もある
最後に
以前サービス プリンシパルに関して、記事書いていたので、両方合わせて読んでいただくと、理解が進むかと思ます。もし興味があれば「こちら」も合わせて読んでいただければと思います。
参考
https://learn.microsoft.com/ja-jp/azure/active-directory/develop/workload-identities-overview
https://learn.microsoft.com/ja-jp/azure/active-directory/develop/app-objects-and-service-principals
コメント