Microsoft Entra ID でアプリケーションを構築するときは、最初にアプリケーションの ID を確立します。 アプリでトークンを要求するには、Microsoft Entra ID の ID が必要です。 アプリケーション プログラミング インターフェイス (API) で、アプリがリソースにアクセスするためのトークンを発行するには、Microsoft Entra ID の ID が必要です。
この記事では、Microsoft Entra 管理センターで、または Microsoft Graph API を使って、アプリを Microsoft Entra ID テナントに登録する方法を説明します。 これは、独立系ソフトウェア開発者 (ISV) が Microsoft Entra ID 用にアプリケーションを構築および最適化する方法に関する一連の記事の 2 つ目です。 このシリーズでは、次のトピックについて詳しく説明します。
「トークンのカスタマイズ」は、Microsoft Entra ID の ID トークンとアクセス トークンを使用してアプリケーションにセキュリティを組み込むのに役立ちます。 Microsoft Entra ID トークンで受け取ることができる情報と、それらをカスタマイズする方法について説明します。
アプリケーションの登録
開発者は、アプリケーションをマルチテナント アプリおよびシングルテナント アプリとして登録できます。 ISV には、マルチテナント アプリをお勧めします。 マルチテナント アプリには、ISV が完全に制御してテナントに登録する 1 つのアプリ登録があります。 アプリを登録するための Microsoft Entra ID テナントを作成する方法について説明します。
Microsoft Entra ID を実行している顧客にソリューションを提供し、顧客の Microsoft Entra ID テナントにオンボードするためのシームレスなエクスペリエンスを提供するには、Microsoft Entra 管理センターで [アプリの登録] の [アプリケーションの登録] に移動します。 この新しいアプリの登録で、[サポートされているアカウントの種類] の [任意の組織のディレクトリ内のアカウント (任意の Microsoft Entra ID テナント - マルチテナント)] または [任意の組織のディレクトリ (Microsoft Entra ID テナント - マルチテナント) 内のアカウントと、個人用の Microsoft アカウント (Skype、Xbox など)] を選びます。
Microsoft Entra ID テナントにアプリを登録すると、アプリのクライアント ID とも呼ばれるアプリケーション ID (アプリ ID) を受け取ります。 これは、ユーザーに対する userid のようなもので、アプリを一意に識別します。 アプリ ID は、Microsoft Entra ID クラウド全体でグローバルに一意であり、不変です。 アプリと Microsoft Entra ID の間のすべてのやり取りには、アプリ ID が含まれます。
アプリ ID に加えて、アプリの登録には、アプリ開発者が知っている、または知る必要がある、アプリに関する情報が含まれます。 たとえば、アプリ開発者は、Microsoft Entra ID と対話するためにアプリ ID を知っている必要があります。 開発者は、自分が構築しているアプリケーションの種類 (Web アプリ、ネイティブ アプリ、シングル ページ アプリ、モバイル アプリ、またはデスクトップ アプリ) を知っています。 アプリケーションの種類には必須の属性があります。
たとえば、リダイレクト Uniform Resource Identifier (URI) は必須のアプリケーション属性です。 この属性は、認証または認可の後でユーザーに送信する Web アドレス (ネイティブ アプリ アドレス) を Microsoft Entra ID に指示します。 開発者は、アプリの種類とアプリの実行場所に基づいて、アプリケーションのリダイレクト URI を知ることができます。
アプリのマニフェスト (Microsoft Entra 管理センターまたは Microsoft Graph API からアクセスします) には、多くのアプリケーション属性が格納されます。 アプリの属性と許容される値については、Microsoft Entra のアプリ マニフェストの概要に関する記事をご覧ください。
開発中のアプリに推奨される設定については、Microsoft ID プラットフォームの認証と認可のコード サンプルに関する記事をご覧ください。 構築しているアプリに似たアプリケーション サンプルを見つけて、そのドキュメントを読んでください。 サンプルでは、アプリの種類別に必要なアプリ登録の設定の詳細が示されています。 たとえば、Node.jsで API を構築している場合、こちらの登録手順に導かれるサンプルを見つけることができます。
テナント管理者がこのような制限を有効にするには、テナント内にアプリのための制御ポイントが必要です。 Microsoft Entra ID は、ユーザーがアプリの認証を行うエンタープライズ アプリケーションをテナントごとに自動的に作成します。 Microsoft Entra 管理センターでは、それらはエンタープライズ アプリケーションと呼ばれますが、オブジェクトはサービス プリンシパルです。 詳しくは、Microsoft Entra ID でのアプリとサービス プリンシパルに関する記事をご覧ください。
Microsoft Entra ID アプリ ギャラリーでアプリを公開します。 SAML 2.0 を使っているアプリおよび OAuth 2.0 と OIDC を使っているアプリの Microsoft Entra ID アプリ ギャラリーへの掲載を Microsoft に要求できます。 管理者は、Microsoft Entra 管理センター の [エンタープライズ アプリケーション] の [新しいアプリケーション] から、Microsoft Entra ID アプリ ギャラリーで事前に統合されているアプリを検索します。 Microsoft Entra ID アプリ ギャラリーでアプリを公開すると、アプリの構成が簡単で最小限になります。 Microsoft がアプリケーションをテストして、互換性の検証を提供します。これは、使用前に構成が必要な SAML 2.0 を使うアプリにとって特に重要です。 アプリのクロスドメイン ID 管理システム (SCIM) 2.0 の実装を使って、プロビジョニング用にアプリ ギャラリーのアプリを構成できます。「自動プロビジョニング」セクションをご覧ください。 始めるには、アプリケーションの公開の要求をお送りください。 アプリ ギャラリー内の 1 つのアプリケーションで SCIM を使って、シングル サインオンとユーザー プロビジョニングを実現できます。
Microsoft 365 アプリ コンプライアンス プログラムに参加します。 確認済みドメインを使うと、ISV はドメインを自分で制御できます。 発行元の確認は、Microsoft が ISV の組織を本物として確認したことを示します。 Microsoft Entra ID アプリ ギャラリーへのアプリの掲載は、アプリが Microsoft Entra ID で動作し、簡単にオンボードできることを示します。 Microsoft 365 コンプライアンス プログラムを使うと、パブリッシャー構成証明、Microsoft 365 認定、または Azure での アプリ コンプライアンス自動化ツール (ACAT) により、アプリのセキュリティとコンプライアンスについて顧客に通知できます。 これは、顧客がアプリにアクセスすることを認可するリソースがアプリケーションによってどのように保護されるかを示しています。
自動プロビジョニング
Microsoft Entra ID でのアプリのプロビジョニングでは、ユーザーがアクセスする必要のあるクラウド アプリケーションにユーザー ID、グループ オブジェクト、ロールを自動的にプロビジョニングできます。 ユーザーとグループのオブジェクトの作成に加えて、自動プロビジョニングには、状態またはロールが変わったときのユーザー ID のメンテナンスと削除が含まれます。 Microsoft Entra プロビジョニング サービスは、アプリケーションが提供する SCIM オブジェクト管理 API エンドポイントを呼び出すことによって、ユーザーとグループをアプリケーションに自動的にプロビジョニングします。
ISV の場合、Microsoft Entra ID でのアプリのプロビジョニングの利点は次のとおりです。
Microsoft Graph を使ってアプリケーションにプロビジョニングすることができ、SCIM をサポートする ID プロバイダー (IdP) でプロビジョニングが動作できる SCIM エンドポイントが構築されます。 ほとんどの IdP は SCIM プロビジョニング プロトコルをサポートしています。
プロビジョニングは、Microsoft Entra ID とアプリケーションの間でデータを同期する同期操作です。 Microsoft Graph ベースの同期ソリューションを実装するには、アプリがテナント内のすべてのユーザーとグループのすべての属性にアクセスする必要があります。 Microsoft Entra ID の一部のお客様は、このような広範なアクセスを許可することに消極的です。 SCIM では、管理者はアプリケーションと同期する Microsoft Entra ID の属性を選択できます。 多くの管理者は、SCIM の実装でのみ使用できる、このきめ細かい制御が行えることを好みます。
ISV がプロビジョニング用に独自の Microsoft Graph 同期サービスを構築するということは、自分でそのサービスを管理し、Microsoft Entra ID で変更を監視するためのプル モデルを実装する必要があることを意味します。 SCIM エンドポイントを実装すると、Microsoft Entra ID によってプロビジョニング サービス管理が行われ、変更がアプリにプッシュされます。
Microsoft Entra ID は、アプリケーションにデータを同期するだけでなく、クラウドベースの人事 (HR) アプリケーションでのプロビジョニングも提供します。 人事主導のプロビジョニングは、人事ソリューションに基づいてデジタル ID を作成するプロセスです。 人事システムが、新しく作成されるデジタル ID の Start of Authority として、多くの場合、さまざまなプロビジョニング プロセスの開始点となります。 オンプレミスの人事ソリューションでは、Microsoft Identity Manager を使って、ユーザーをオンプレミスの Active Directory にプロビジョニングできます。 その後、Microsoft Entra Connect を使って Microsoft Entra ID と同期するか、Microsoft Entra ID に直接同期できます。