Apple ID サポートは2年くらい前にカスタムポリシーで実装してたやつですね。その後 Private Preview で一部では提供されていたので私も評価していたんですが、しばらく前に全面的にリニューアルされて出てきました。ただ、個人的には iOS も最近は Platform Authenticator としてつかえるので Apple ID としてサポートするよりも FIDO として実装しちゃった方がいいじゃないかな?と思ってます。(仕事で Azure AD B2C のデプロイする場合は FIDO でやっちゃってます)
かっちりした開発をする場合はちゃんとアプリケーション側でエラーハンドリングをするのが正解だとは思いますが、アプリ側に手が入れにくい場合などある程度Azure AD B2C側でエラー画面を出して処理を止めたい場合もあります。こういう時に使うのがUserJourneyBehaviorsに定義するOnError Modeです。
とりうるパラメータと振る舞いは以下の通りです。
DisplayInService:Azure AD B2Cのフローの中でエラーメッセージを表示して処理を止める
ご存知の通り、Azure AD B2Cには実体となっているAzure ADが存在します。ポータルからAzure AD B2Cを立ち上げると、別のテナントが開き、その中でAzure AD B2Cの管理を行う、という形になります。この別テナントにもAzure ADが存在しているので、Azure AD B2Cの管理画面からテナントを変えずにAzure Portalのホームへ遷移、改めてAzure ADの管理メニューを開くと実体の管理ができるようになります。(分かりにくいですね)
そのテナントは通常のAzure ADなのでカスタムドメインを追加することができます。
ここで普通にカスタムドメインを追加し、ドメインの所有権の確認を行います。
これで第1段階はOKです。
2. Azure Front Doorを作り、b2clogin.comへ振り分け設定をする
次はAzure Front Doorを作って構成します。
Azure Front Doorは単純なエッジで動くレイヤ7のフロントサービスで、SSLのオフロードなどを含め高スケーラビリティなWebアプリをデプロイするのに役に立つサービスです。
必要な設定は、
フロントエンド設定(リクエストを受けるドメイン)
バックエンド(振り分け先となるWebアプリケーション)
振り分けルール(パスやポートなど、バックエンドへの振り分け条件の設定)
の3種類です。
まずはフロントエンドです。この段階では適当な名前でAzure Front Doorドメイン(azurefd.net)上の名前を定義します。※どっちみち後でカスタムドメインをつけるので適当でOK、っていうことです。
次にバックエンドです。今回はAzure AD B2Cがバックエンドとなりますので、カスタムドメインを使いたいAzure AD B2Cのテナントドメイン名(xxx.b2clogin.com)を設定します。
最後が振り分けルールです。
ここでは特に考えずにフロントとバックエンドをストレートにマッピングしておきます。
ここもカスタムドメインを追加した後でちゃんと設定しますので仮でOKです。
これでAzure Front Doorの基本設定は完了です。
3. Azure Front Doorにカスタムドメインを設定する
次はAzure Front Doorにもカスタムドメインを設定します。ここで設定するドメインは先にAzure ADに設定したドメインと同じものを使う必要があります。
(ちなみに、Azure AD B2Cで構成しようとするとwell-knownまでのパスが深すぎてMATTR側でInternal Server Errorが出ます。リバプロなどでAzure AD B2Cをカスタムドメイン化して動かしてあげる必要があります。これは別のポストで今後紹介していこうと思います)
Auth0は普段使っているテナントがそのまま使えるので特に問題はありません。
やるべきことは、
アプリケーション(Client)を作成する
ユーザに発行すべきcredentialの型と値を属性として持たせる
の2点だけです。
まずはアプリケーション登録ですが、通常のRegular Web Applicationとしてクライアント定義をしていきます。