アプリケーション モデルApplication model

アプリケーションでは、ユーザー自身をサインインさせることも、ID プロバイダーにサインインを委任することもできます。Applications can sign in users themselves or delegate sign-in to an identity provider. このトピックでは、アプリケーションを Microsoft ID プラットフォームに登録するために必要な手順について説明します。This topic discusses the steps that are required to register an application with Microsoft identity platform.

アプリケーションを登録するRegistering an application

ID プロバイダーで、ユーザーが特定のアプリにアクセスできることを認識するためには、ユーザーとアプリケーションの両方を ID プロバイダーに登録する必要があります。For an identity provider to know that a user has access to a particular app, both the user and the application must be registered with the identity provider. アプリケーションを Azure AD に登録するとき、アプリケーションの ID 構成を指定します。これによって Microsoft ID プラットフォームとの統合が可能になります。When you register your application with Azure AD, you are providing an identity configuration for your application that allows it to integrate with Microsoft identity platform. アプリを登録すると、次のことも可能になります。Registering the app also allows you to:

  • サインイン ダイアログ内で、アプリケーションのブランド化をカスタマイズします。Customize the branding of your application in the sign-in dialog. これは、ユーザーがアプリを初めて使用するときに目にするため重要です。This is important because this is the first experience a user will have with your app.
  • ユーザーが組織に属している場合にのみサインインできるようにするかどうかを決定します。Decide if you want to let users sign in only if they belong to your organization. これはシングル テナント アプリケーションです。This is a single tenant application. または、ユーザーが職場または学校のアカウントを使用してサインインできるようにします。Or allow users to sign in using any work or school account. これはマルチ テナント アプリケーションです。This is a multi-tenant application. また、個人の Microsoft アカウントや、LinkedIn、Google などのソーシャル アカウントを許可することもできます。You can also allow personal Microsoft accounts, or a social account from LinkedIn, Google, and so on.
  • スコープのアクセス許可を要求します。Request scope permissions. たとえば、サインインしたユーザーのプロファイルを読み取るためのアクセス許可を付与する "user. read" スコープを要求できます。For example, you can request the "user.read" scope, which grants permission to read the profile of the signed-in user.
  • Web API へのアクセスを定義するスコープを定義します。Define scopes that define access to your web API. 通常、アプリで API にアクセスする場合、定義したスコープへのアクセス許可を要求する必要があります。Typically, when an app wants to access your API, it will need to request permissions to the scopes you define.
  • アプリの ID を証明するシークレットを Microsoft ID プラットフォームと共有します。Share a secret with Microsoft identity platform that proves the app's identity. これは、アプリが機密クライアント アプリケーションである場合に関連します。This is relevant in the case where the app is a confidential client application. 機密クライアント アプリケーションは、資格情報を安全に保持できるアプリケーションです。A confidential client application is an application that can hold credentials securely. 資格情報を格納するには、信頼されたバックエンド サーバーが必要です。They require a trusted backend server to store the credentials.

アプリケーションが登録されると、トークンの要求時にアプリによって Microsoft ID プラットフォームと共有される一意の ID が付与されます。Once registered, the application will be given a unique identifier that the app shares with Microsoft identity platform when it requests tokens. アプリが機密クライアント アプリケーションである場合は、証明書またはシークレットが使用されたかどうかに応じて、秘密キーまたは公開キーも共有されます。If the app is a confidential client application, it will also share the secret or the public key-depending on whether certificates or secrets were used.

Microsoft ID プラットフォームは、次の 2 つの主な機能を果たすモデルを使用するアプリケーションを表します。Microsoft identity platform represents applications using a model that fulfills two main functions:

  • サポートされる認証プロトコルによって、アプリを識別するIdentify the app by the authentication protocols it supports
  • 認証に必要なすべての識別子、URL、シークレット、および関連情報を指定するProvide all the identifiers, URLs, secrets, and related information that are needed to authenticate

Microsoft ID プラットフォーム: Microsoft identity platform:

  • 実行時に認証をサポートするために必要なすべてのデータを保持しますHolds all the data required to support authentication at runtime
  • 状況次第でアプリからアクセスする必要があるリソースと、特定の要求がどのような状況下で満たされる必要があるかどうかを決定するための、すべてのデータを保持しますHolds all the data for deciding what resources an app might need to access, and under what circumstances a given request should be fulfilled
  • アプリ開発者のテナント内とその他の任意の Azure AD テナントにアプリ プロビジョニングを実装するためのインフラストラクチャを提供しますProvides infrastructure for implementing app provisioning within the app developer's tenant, and to any other Azure AD tenant
  • トークンの要求時にユーザーの同意を処理し、テナント間でのアプリの動的プロビジョニングを容易にするHandles user consent during token request time and facilitate the dynamic provisioning of apps across tenants

同意とは、リソース所有者からクライアント アプリケーションに承認 (リソース所有者に代わって特定の権限で保護されたリソースにアクセスするための) を付与するプロセスです。Consent is the process of a resource owner granting authorization for a client application to access protected resources, under specific permissions, on behalf of the resource owner. Microsoft ID プラットフォーム: Microsoft identity platform:

  • ユーザーと管理者が、その代理としてアプリがリソースにアクセスすることの同意を、動的に付与または拒否できるようにします。Enables users and administrators to dynamically grant or deny consent for the app to access resources on their behalf.
  • 管理者が、アプリに許可する操作と特定のアプリを使用できるユーザー、およびディレクトリのリソースにアクセスする方法を、最終的に決定できるようにします。Enables administrators to ultimately decide what apps are allowed to do and which users can use specific apps, and how the directory resources are accessed.

マルチテナント アプリMulti-tenant apps

Microsoft ID プラットフォームでは、アプリケーション オブジェクトによってアプリケーションが記述されます。In Microsoft identity platform, an application object describes an application. デプロイ時に、Microsoft ID プラットフォームではアプリケーション オブジェクトがブループリントとして使用され、ディレクトリまたはテナント内のアプリケーションの具体的なインスタンスを表すサービス プリンシパルが作成されます。At deployment time, Microsoft identity platform uses the application object as a blueprint to create a service principal, which represents a concrete instance of an application within a directory or tenant. サービス プリンシパルは、特定のターゲット ディレクトリでアプリが実際に何ができるか、誰がそれを使用できるか、どのリソースにアクセスできるのか、などを定義します。The service principal defines what the app can actually do in a specific target directory, who can use it, what resources it has access to, and so on. Microsoft ID プラットフォームは、同意によってアプリケーション オブジェクトからサービス プリンシパルを作成します。Microsoft identity platform creates a service principal from an application object through consent.

次の図は、同意に基づくシンプルな Microsoft ID プラットフォーム プロビジョニングの流れを示しています。The following diagram shows a simplified Microsoft identity platform provisioning flow driven by consent. 2 つのテナントが示されています。AB です。It shows two tenants: A and B.

  • テナント A はアプリケーションを所有しています。Tenant A owns the application.
  • テナント B は、サービス プリンシパルを使用して、アプリケーションをインスタンス化します。Tenant B is instantiating the application via a service principal.

同意に基づくシンプルなプロビジョニングの流れ

このプロビジョニングの流れは次のとおりです。In this provisioning flow:

  1. テナント B のユーザーがアプリでサインインしようとすると、承認エンドポイントがアプリケーションのトークンを要求します。A user from tenant B attempts to sign in with the app, the authorization endpoint requests a token for the application.
  2. 認証のためにユーザーの資格情報が取得および検証されます。The user credentials are acquired and verified for authentication.
  3. ユーザーは、アプリからテナント B にアクセスすることに同意するように求められます。The user is prompted to provide consent for the app to gain access to tenant B.
  4. Microsoft ID プラットフォームで、テナント A のアプリケーション オブジェクトが、テナント B にサービス プリンシパルを作成するためのブループリントとして使用されます。Microsoft identity platform uses the application object in tenant A as a blueprint for creating a service principal in tenant B.
  5. ユーザーは、要求されたトークンを受け取ります。The user receives the requested token.

追加のテナントに対してこのプロセスを繰り返すことができます。You can repeat this process for additional tenants. テナント A は、アプリ (アプリケーション オブジェクト) のブループリントを保持します。Tenant A retains the blueprint for the app (application object). アプリに同意が与えられている他のすべてのテナントのユーザーと管理者は、各テナントの対応するサービス プリンシパル オブジェクトから、アプリケーションに許可されている操作を引き続き制御します。Users and admins of all the other tenants where the app is given consent keep control over what the application is allowed to do via the corresponding service principal object in each tenant. 詳細については、Microsoft ID プラットフォームのアプリケーション オブジェクトとサービス プリンシパル オブジェクトに関するページを参照してください。For more information, see Application and service principal objects in Microsoft identity platform.

次のステップNext steps

認証と承認の基本に関するその他のトピックは、次のとおりです。For other topics covering authentication and authorization basics:

  • Microsoft ID プラットフォームでの認証と承認の基本的な概念については、「認証と承認」を参照してください。See Authentication vs. authorization to learn about the basic concepts of authentication and authorization in Microsoft identity platform.
  • 認証と承認でアクセス トークン、更新トークン、ID トークンがどのように使用されるかについては、「セキュリティ トークン」を参照してください。See Security tokens to learn how access tokens, refresh tokens, and ID tokens are used in authentication and authorization.
  • Microsoft ID プラットフォームでの Web アプリ、デスクトップ アプリ、モバイル アプリのサインイン フローの詳細については、アプリのサインイン フローに関するページを参照してください。See App sign-in flow to learn about the sign-in flow of web, desktop, and mobile apps in Microsoft identity platform.

アプリケーション モデルの詳細情報:To learn more about the application model: