連載予定
- Azure Active Directory B2Cの特徴と使いどころ
- 基本的な使い方(標準ユーザーフロー)を知る
- 基本的な概念(テナント、アプリケーション、ユーザー)を理解する★
- ユーザーフローの日本語化
- パスワードレス認証
- 条件付きアクセスを使って環境に応じた認証を要求する
- 柔軟な認証フローを実現する:カスタムポリシー
B2Cの環境構築の流れ
B2Cの環境構築の流れを図にしてみました。
これまでみてきたようにカスタムポリシーを利用しようとしなければ簡単に高度な認証機能を持った基盤を構築することができます。
B2CのテナントとAzure Active Directory
B2Cの管理画面から離れて、同じディレクトリのAzure Active Directoryをみてみましょう。
なぜかサインインした痕跡がありますね。
ユーザーとアプリの登録をみてみましょう。前回登録したものが表示されると思います。
つまり前回登録したユーザーというのはAzure Active Directoryのユーザーで、前回登録したアプリケーションはAzure Active Directoryのアプリケーション(サービスプリンシパル)です。
このことを確認した上で、B2Cの管理画面に戻り、左メニューにある「ロールと管理者」をみてみましょう。
B2Cには関係なさそうなロールがたくさん並んでいますね。でも、B2CのユーザがAzure ADのユーザであると考えると何も違和感はないと思います。B2Cの管理画面はB2Cに関連するものを集めたものになっているだけで、Azure Active Drectoryと同じものを操作しているのです。
B2Cのユーザー
B2CのユーザーはAzure Active Directoryのユーザーであり、以下の3つの種類のユーザーを扱うことができます。
- ローカルユーザー。自分自身のテナントのユーザー
- ゲストユーザー。このテナントに招待された自分以外のAzure Active Directoryのユーザー
- コンシューマーユーザー。MicrosoftアカウントのユーザーやFacebookのユーザーなどAzure Active Directory以外で管理されているユーザーがID連携をしてこのテナントに参加したもの
B2Cのアプリケーション
B2CのアプリケーションはAzure Active Directoryのアプリケーションであり、B2Cで登場するアプリケーションには以下の3つの種類があります。
- B2Cを認証基盤として利用するWebなどのアプリケーション。前回登録したjwtappもこちらです。MSALとアクセストークンの検証方法を説明する際に取り上げます。
- Azure Active Directory GraphやMicrosoft Graphと呼ばれるAzure ADを操作するためのAPIを利用してテナントを操作する際に利用するアプリケーション(サービスプリンシパル)。Graph APIによるテナント操作について説明する際に取り上げます。
- B2Cの内部で利用されるアプリケーション。B2Cのテナントを作成すると一緒に作られる「b2c-extensions-app. Do not modify. Used by AADB2C for storing user data.」といういかにもな名前のものと、カスタムポリシーを利用する場合に必要になる「IdentityExperienceFramework」と「ProxyIdentityExperienceFramework」があります。これらについてはカスタムポリシーについて説明する際に取り上げます。