広告

Azure ワークロード ID について

Authentication

ワークロード 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 を表すサービス プリンシパルがテナントに作成されます。
  • ※ レガシ:アプリの登録前に作成されたアプリ、またはレガシ エクスペリエンスを使用して作成されたアプリです。

アプリケーション オブジェクトとサービス プリンシパル間のリレーションシップ

![https://docs.microsoft.com/ja-jp/learn/modules/authenticate-apps-with-managed-identities/media/2-service-principal-overview.svg]

アプリケーション オブジェクトは、すべてのテナントで使用するアプリケーションの "グローバル" 表現であり、サービス プリンシパルは、特定のテナントで使用する "ローカル" 表現です。

特徴:

  • マルチテナント アプリケーション場合、アプリケーション オブジェクトの後ろに、テナントごとにサービス プリンシパルが作成される(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

コメント

タイトルとURLをコピーしました