Azure Active Directory B2C とはWhat is Azure Active Directory B2C?

Azure Active Directory (Azure AD) B2C は、企業-消費者間の ID 管理サービスです。Azure Active Directory (Azure AD) B2C is a business-to-consumer identity management service. このサービスを使用すると、ユーザーが Web、デスクトップ、モバイル、またはシングルページ アプリケーションと安全に対話する方法を、カスタマイズしたり制御したりできます。This service enables you to customize and control how users securely interact with your web, desktop, mobile, or single-page applications. Azure AD B2C を使用して、ユーザーは、サインアップ、サインイン、パスワードのリセット、およびプロファイルの編集を行うことができます。Using Azure AD B2C, users can sign up, sign in, reset passwords, and edit profiles. Azure AD B2C では、OpenID Connect プロトコルと OAuth 2.0 プロトコルの一形式が実装されます。Azure AD B2C implements a form of the OpenID Connect and OAuth 2.0 protocols. これらのプロトコルの実装で重要な点は、リソースへのセキュリティ保護されたアクセスを提供できるようにする、セキュリティ トークンとそのクレームです。The important key in the implementation of these protocols is the security tokens and their claims that enable you to provide secure access to resources.

"ユーザー体験" は、Azure AD B2C とやり取りするユーザーとアプリケーションの動作を制御するポリシーが指定されている要求です。A user journey is a request that specifies a policy, which controls the behavior of how the user and your application interact with Azure AD B2C. Azure AD B2C では、ユーザー体験を定義するために 2 つのパスを使用できます。Two paths are available to you for defining user journeys in Azure AD B2C.

ID の専門知識の有無に関わらず、アプリケーション開発者の場合は、Azure portal を使用して一般的な ID ユーザー フローを定義することをお勧めします。If you're an application developer with or without identity expertise, you might choose to define common identity user flows using the Azure portal. ID の専門家、システム インテグレーター、コンサルタント、社内の ID チームで、OpenID Connect のフローに慣れており、ID プロバイダーおよびクレーム ベースの認証を理解している場合は、XML ベースのカスタム ポリシーを選択することをお勧めします。If you are an identity professional, systems integrator, consultant, or on an in-house identity team, are comfortable with OpenID Connect flows, and understand identity providers and claims-based authentication, you might choose XML-based custom policies.

ユーザー体験の定義を始める前に、Azure AD B2C テナントを作成し、アプリケーションと API をテナントに登録する必要があります。Before you start defining a user journey, you need to create an Azure AD B2C tenant and register your application and API in the tenant. これらのタスクを完了した後は、どちらかのユーザー フローまたはカスタム ポリシーを使用して、ユーザー体験の定義を始めることができます。After you’ve completed these tasks, you can get started defining a user journey with either user flows or custom policies. また、必要に応じて、ID プロバイダーを追加または変更したり、ユーザーが体験を経験する方法をカスタマイズしたりできます。You can also optionally, add or change identity providers, or customize the way the user experiences the journey.

プロトコルとトークンProtocols and tokens

Azure AD B2C では、ユーザー体験に対して、OpenID Connect プロトコルと OAuth 2.0 プロトコルがサポートされています。Azure AD B2C supports the OpenID Connect and OAuth 2.0 protocols for user journeys. Azure AD B2C の OpenID Connect の実装では、アプリケーションは Azure AD B2C に認証要求を発行することで、このユーザー体験を開始します。In the Azure AD B2C implementation of OpenID Connect, your application starts the user journey by issuing authentication requests to Azure AD B2C.

Azure AD B2C に対する要求の結果として、ID トークンやアクセス トークンなどのセキュリティ トークンが作成されます。The result of a request to Azure AD B2C is a security token, such as an ID token or access token. このセキュリティ トークンでは、ユーザーの ID が定義されています。This security token defines the user's identity. トークンは、/token/authorize などの Azure AD B2C エンドポイントから受信します。Tokens are received from Azure AD B2C endpoints, such as a /token or /authorize endpoint. これらのトークンからクレームにアクセスできます。クレームは、ID の検証や、セキュリティ保護されたリソースへのアクセスの許可に使用できます。From these tokens, you can access claims that can be used to validate an identity and allow access to secure resources.

テナントとアプリケーションTenants and applications

Azure AD B2C では、"テナント" は組織を表しており、ユーザーのディレクトリとなっています。In Azure AD B2C, a tenant represents your organization and is a directory of users. 各 Azure AD B2C テナントは、他の Azure AD B2C テナントと区別され分離されています。Each Azure AD B2C tenant is distinct and separate from other Azure AD B2C tenants. Azure Active Directory テナントを既にお持ちかもしれませんが、Azure AD B2C テナントは別のテナントです。You may already have an Azure Active Directory tenant, the Azure AD B2C tenant is a different tenant. テナントには、アプリケーションを使用するためにサインアップしたユーザーに関する情報が含まれています。A tenant contains information about the users that have signed up to use your application. たとえば、パスワード、プロファイル データ、アクセス許可が含まれます。For example, passwords, profile data, and permissions. 詳細については、チュートリアル: Azure Active Directory B2C テナントを作成する」の手順に従って作成できます。For more information, see Tutorial: Create an Azure Active Directory B2C tenant.

Azure AD B2C を使用するようアプリケーションを構成する前に、まず、Azure portal を使用してテナントにアプリケーションを登録する必要があります。Before you configure your application to use Azure AD B2C, you first need to register it in the tenant using the Azure portal. 登録プロセスでは、値が収集され、対象のアプリケーションに割り当てられます。The registration process collects and assigns values to your application. これらの値には、アプリケーションとリダイレクト URI を一意に識別するアプリケーション ID が含まれており、これを使用して応答がアプリケーションに戻されます。These values include an application ID that uniquely identifies the application and a redirect URI that's used to direct responses back to the application.

すべてのアプリケーションによるやり取りは、次のような大まかなパターンに従って行われます。The interaction of every application follows a similar high-level pattern:

  1. アプリケーションが、ポリシーを実行するようにユーザーに指示します。The application directs the user to run a policy.
  2. ユーザーがポリシーの定義に従ってポリシーを完了します。The user completes the policy according to the policy definition.
  3. アプリケーションがトークンを受け取ります。The application receives a token.
  4. アプリケーションはトークンを使って、リソースへのアクセスを試みます。The application uses the token to try to access a resource.
  5. リソース サーバーは、トークンを検証し、アクセスを許可できることを確認します。The resource server validates the token to verify that access can be granted.
  6. アプリケーションは、トークンを定期的に更新します。The application periodically refreshes the token.

Web アプリケーションを登録するには、アプリケーションを登録して Azure AD B2C を使用したサインアップとサインインを有効にするチュートリアルの手順を完了します。To register a web application, complete the steps in Tutorial: Register an application to enable sign-up and sign-in using Azure AD B2C. Web API アプリケーションを Azure Active Directory B2C テナントに追加すること、またはネイティブ クライアント アプリケーションを Azure Active Directory B2C テナントに追加することもできます。You can also add a web API application to your Azure Active Directory B2C tenant or add a native client application to your Azure Active Directory B2C tenant.

ユーザー体験User journeys

ユーザー体験内のポリシーは、ユーザー フローまたはカスタム ポリシーとして定義することができます。The policy in a user journey can be defined as a user flow or a custom policy. Azure portal では、サインアップ、サインイン、プロファイル編集など、最も一般的な ID タスク用の定義済みのユーザー フローを利用できます。Predefined user flows for the most common identity tasks, such as sign-up, sign-in, and profile editing, are available in the Azure portal.

ユーザー体験では、次の設定を構成することにより動作を制御できます。User journeys allow you to control behaviors by configuring the following settings:

  • ユーザーがアプリケーションへのサインアップに使用するソーシャル アカウントSocial accounts that the user uses to sign up for the application
  • 名や郵便番号など、ユーザーから収集されたデータData collected from the user such as first name or postal code
  • 多要素認証Multi-factor authentication
  • ページのルック アンド フィールLook and feel of pages
  • アプリケーションに返される情報Information returned to the application

カスタム ポリシーは、Azure AD B2C テナントでの Identity Experience Framework の動作を定義する構成ファイルです。Custom policies are configuration files that define the behavior of the Identity Experience Framework in your Azure AD B2C tenant. Identity Experience Framework は、マルチパーティの信頼を確立してユーザー体験の手順を完了する、基になるプラットフォームです。The Identity Experience Framework is the underlying platform that establishes multi-party trust and completes the steps in a user journey.

カスタム ポリシーは、多くのタスクを完了するために変更できます。Custom policies can be changed to complete many tasks. カスタム ポリシーは、階層型チェーンで互いを参照する 1 つまたは複数の XML 形式ファイルです。A custom policy is one or several XML-formatted files that refer to each other in a hierarchical chain. カスタム ポリシーのスターター パックを使用して、一般的な ID タスクを有効にすることができます。A starter pack is available for custom policies to enable common identity tasks.

Azure AD B2C テナントでは必要に応じてさまざまな種類のカスタム ポリシーまたはユーザー フローが使用され、複数のアプリケーションでそれらを再利用できます。Custom policies or user flows of different types are used in your Azure AD B2C tenant as needed and can be reused across applications. この柔軟性により、最小限のコード変更で、またはコードをまったく変更せずに、ユーザー ID エクスペリエンスを定義および変更できます。This flexibility enables you to define and modify user identity experiences with minimal or no changes to your code. ポリシーは、HTTP 認証要求に特別なクエリ パラメーターを追加することによって使用されます。Policies are used by adding a special query parameter to HTTP authentication requests. 独自のカスタム ポリシーを作成するには、「Azure Active Directory B2C でのカスタム ポリシーの概要」をご覧ください。To create your own custom policy, see Get started with custom policies in Azure Active Directory B2C.

ID プロバイダーIdentity providers

アプリケーションでは、ユーザーが異なる ID プロバイダーでサインインできるようにすることができます。In your applications, you may want to enable users to sign in with different identity providers. "ID プロバイダー" では、ID 情報の作成、保守、管理、およびアプリケーションへの認証サービスの提供が行われます。An identity provider creates, maintains, and manages identity information while providing authentication services to applications. Azure portal を使用して、Azure AD B2C によってサポートされる ID プロバイダーを追加することができます。You can add identity providers that are supported by Azure AD B2C using the Azure portal.

通常、アプリケーションでは ID プロバイダーを 1 つだけ使用しますが、さらに追加することもできます。You typically use only one identity provider in your application, but you have the option to add more. Azure AD B2C テナントで ID プロバイダーを構成するには、最初に ID プロバイダーの開発者サイトでアプリケーションを作成した後、作成する ID プロバイダー アプリケーションからの、アプリケーション ID またはクライアント ID と、パスワードまたはクライアント シークレットを記録する必要があります。To configure an identity provider in your Azure AD B2C tenant, you first create an application on the identity provider developer site, and then you record the application identifier or client identifier and the password or client secret from the identity provider application that you create. この ID とパスワードはその後、アプリケーションを構成するのに使用されます。This identifier and password are then used to configure your application.

次の記事では、いくつかの一般的な ID プロバイダーをユーザー フローに追加する手順が説明されています。The following articles describe the steps to add some of the common identity providers to user flows:

次の記事では、いくつかの一般的な ID プロバイダーをカスタム ポリシーに追加する手順が説明されています。The following articles describe the steps to add some of the common identity providers to custom policies:

詳細については、チュートリアル: Azure Active Directory B2C でアプリケーションに ID プロバイダーを追加する」をご覧ください。For more information, see Tutorial: Add identity providers to your applications in Azure Active Directory B2C.

ページのカスタマイズPage customization

ユーザー体験で顧客に表示される HTML および CSS コンテンツのほとんどを制御できます。Most of the HTML and CSS content that's presented to customers in a user journey is controllable. ページのカスタマイズを使用することで、ユーザー フローの任意のカスタム ポリシーの外観をカスタマイズできます。By using page customization, you can customize the look and feel of any custom policy or user flow. このカスタマイズ機能を使用することで、アプリケーションと Azure AD B2C との間で、ブランドと視覚的な一貫性を維持することができます。You maintain brand and visual consistency between your application and Azure AD B2C by using this customization feature.

Azure AD B2C では、ユーザーのブラウザーでコードが実行され、クロス オリジン リソース共有 (CORS) と呼ばれる最新の手法が使用されます。Azure AD B2C runs code in the user's browser and uses a modern approach called Cross-Origin Resource Sharing (CORS). 最初に、カスタマイズした HTML コンテンツを含むポリシーで URL を指定します。First, you specify a URL in a policy with customized HTML content. Azure AD B2C により、ユーザー インターフェイス要素が URL から読み込まれた HTML コンテンツとマージされ、ユーザーにページが表示されます。Azure AD B2C merges user interface elements with the HTML content that's loaded from your URL and then displays the page to the user.

クエリ文字列で Azure AD B2C にパラメーターを送信します。You send parameters to Azure AD B2C in a query string. パラメーターを HTML エンドポイントに渡すことで、ページのコンテンツが動的に変更されます。By passing the parameter to your HTML endpoint, the page content is dynamically changed. たとえば、Web アプリケーションまたはモバイル アプリケーションから渡すパラメーターに基づいて、サインアップまたはサインイン ページの背景イメージを変更します。For example, you change the background image on the sign-up or sign-in page based on a parameter that you pass from your web or mobile application.

ユーザー フロー内のページのカスタマイズについては、「チュートリアル:Azure Active Directory B2C でユーザー エクスペリエンスのインターフェイスをカスタマイズする」をご覧ください。To customize pages in a user flow, see Tutorial: Customize the interface of user experiences in Azure Active Directory B2C. カスタム ポリシー内のページのカスタマイズについては、「Azure Active Directory B2C でカスタム ポリシーを使用してアプリケーションのユーザー インターフェイスをカスタマイズする」または「Azure Active Directory B2C: カスタム ポリシーを使用して動的コンテンツを含む UI を構成する」をご覧ください。To customize pages in a custom policy, see Customize the user interface of your application using a custom policy in Azure Active Directory B2C or Configure the UI with dynamic content by using custom policies in Azure Active Directory B2C.

開発者リソースDeveloper resources

クライアント アプリケーションClient applications

iOSAndroid、.NET などのアプリケーションを選択できます。You have the choice of applications for iOS, Android, and .NET, among others. Azure AD B2C は、これらのアクションを可能にする一方で、同時にユーザー ID を保護します。Azure AD B2C enables these actions while protecting your user identities at the same time.

ASP.NET Web アプリケーション開発者である場合は、Web アプリケーションが Azure AD B2C を使用してアカウントを認証できるようにするチュートリアルの手順を使用して、アカウントを認証するようにアプリケーションを設定します。If you're an ASP.NET web application developer, set up your application to authenticate accounts using the steps in Tutorial: Enable a web application to authenticate with accounts using Azure AD B2C.

デスクトップ アプリケーション開発者である場合は、デスクトップ アプリケーションが Azure AD B2C を使用してアカウントを認証できるようにするチュートリアルの手順を使用して、アカウントを認証するようにアプリケーションを設定します。If you're a desktop application developer, set up your application to authenticate accounts using the steps in Tutorial: Enable a desktop application to authenticate with accounts using Azure AD B2C.

Node.js を使用するシングルページ アプリケーションの開発者である場合は、シングルページ アプリケーションが Azure AD B2C を使用してアカウントを認証できるようにするチュートリアルの手順を使用して、アカウントを認証するようにアプリケーションを設定します。If you're a single-page application developer using Node.js, set up your application to authenticate accounts using the steps in Tutorial: Enable a single-page application to authenticate with accounts using Azure AD B2C.

APIAPIs

クライアントまたは Web アプリケーションで API を呼び出す必要がある場合は、Azure AD B2C でそれらのリソースへのセキュリティ保護されたアクセスを設定することができます。If your client or web applications need to call APIs, you can set up secure access to those resources in Azure AD B2C.

ASP.NET Web アプリケーション開発者の場合は、「チュートリアル: Azure Active Directory B2C を使用して ASP.NET Web API へのアクセスを許可する」の手順を使用して、保護された API を呼び出すようにアプリケーションを設定します。If you're an ASP.NET web application developer, set up your application to call a protected API using the steps in Tutorial: Grant access to an ASP.NET web API using Azure Active Directory B2C.

デスクトップ アプリケーション開発者の場合は、「チュートリアル: Azure Active Directory B2C を使用してデスクトップ アプリから Node.js Web API へのアクセスを許可する」の手順を使用して、保護された API を呼び出すようにアプリケーションを設定します。If you're a desktop application developer, set up your application to call a protected API using the steps in Tutorial: Grant access to a Node.js web API from a desktop app using Azure Active Directory B2C.

Node.js を使用するシングルページ アプリケーションの開発者である場合は、Azure Active Directory B2C を使用してシングルページ アプリケーションから ASP.NET Core Web API へのアクセスを許可するチュートリアルの手順を使用して、保護された API を呼び出すようにアプリケーションを設定します。If you are a single-page application developer using Node.js, set up your application to authenticate accounts using the steps in Tutorial: Grant access to an ASP.NET Core web API from a single-page application using Azure Active Directory B2C.

JavaScriptJavaScript

独自の JavaScript クライアント側コードを、Azure AD B2C のアプリケーションに追加できます。You can add your own JavaScript client-side code to your applications in Azure AD B2C. アプリケーションで JavaScript を設定するには、ユーザー フローまたはカスタム ポリシーでページ コントラクトを定義して JavaScript を有効にします。To set up JavaScript in your application, you define a page contract and enable JavaScript in your user flows or custom policies.

ユーザー アカウントUser accounts

多くの一般的なテナント管理タスクをプログラムで実行する必要があります。Many common tenant management tasks need to be performed programmatically. 主な例にはユーザーの管理があります。A primary example is user management. たとえば、既存のユーザー ストアを Azure AD B2C テナントに移行することがあります。You might need to migrate an existing user store to an Azure AD B2C tenant. その場合、自分のページでユーザー登録をホストし、バックグラウンドで Azure AD B2C ディレクトリのユーザー アカウントを作成することがあります。You may want to host user registration on your own page and create user accounts in your Azure AD B2C directory behind the scenes. この種のタスクでは、ユーザー アカウントの作成、読み取り、更新、削除を実行する機能が必要です。These types of tasks require the ability to create, read, update, and delete user accounts. Azure AD Graph API を使用してこれらの操作を実行できます。You can do these tasks by using the Azure AD Graph API.

次の手順Next steps

次のチュートリアルを続けて、サインアップおよびサインイン エクスペリエンスのためのアプリケーションの構成を開始します。Start configuring your application for the sign-up and sign-in experience by continuing to the tutorial.