問題タブ [aad-b2c]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
azure-ad-b2c - Azure AD B2C - 「セルフサービス パスワード リセット」を実行した後、カスタム ポリシー「セッション」が正しくない状態のままになる
SocialAndLocalAccountsスターター パックに基づくカスタム ポリシーがあります。
このサンプルHomeRealmDiscovery-ModernHome Realm Discovery
に基づいて、サードパーティ プロバイダーを使用するユーザーを正しいサインイン ページ (IdP) にリダイレクトするためのサポートを追加しています。
また、サードパーティの ID プロバイダー経由でサインインするユーザーのサインイン ページDomain Hints
を完全にスキップするためのサポートも追加しました。
このポリシーは、公式ドキュメントに従って、新しくリリースされたSelf-Served Password Resetを利用します。
問題は何ですか?
ユーザーが「Self-Served Password Reset」を実行すると、B2C セッションが破損した状態のままになります。ユーザーが B2C にリダイレクトされた場合、セッションは取得されません。
どうすればそれを言えますか?ユースケースは何ですか?
再現する手順:
1: ユーザーは、ユーザーを B2C サインイン ページにリダイレクトするアプリケーションに移動します。
2: ユーザーがローカル アカウントの電子メール (Gmail) を入力し、次の画面で、セルフサービス パスワード リセットを使用して実装されている [パスワードを忘れた] リンクをクリックします。
3: ユーザーはパスワード リセット フローを正しく実行し、最終的に「MFA」要素 (SMS コード) を入力します。
4: ユーザーは、ID トークンを使用して正しくアプリケーションにリダイレクトされ、ログインに成功します。
6: ユーザーは、同じカスタム ポリシーを使用して、新しい/別のアプリケーションへのリンクをクリックします。
7: 新しいアプリケーションはユーザーを B2C にリダイレクトします (同じカスタム ポリシー)
期待される結果:ユーザーは有効な B2C セッションを持っている必要があり、再度サインインするように求められることはありませんが、代わりに有効なid-token
.
実際の結果:ユーザーは新しいアプリケーションに送り返され、コールバック URL にエラー メッセージが表示されます。エラーが原因で、B2C にリダイレクトされて再ログインされます。
エラーメッセージ:
重要:ユーザーが通常のサインイン フロー (パスワードのリセットなし) を実行すると、すべてが正常に機能します。ユーザーはさまざまなアプリケーションを切り替えることができ、B2C はエラーをスローしたり、新しいサインインを要求したりすることなく、セッションを正しくピックアップします。異なるアプリ間の SSO は意図したとおりに機能します。
以下は、TrustFrameworkExtention
すべてのロジックを含み、スターター パックのベース ファイルから拡張された完全なファイルです:
TrustFrameworkExtention.xml
azure-ad-b2c - セルフサービスのパスワード リセット (埋め込みパスワード リセットのサンプル) では、ユーザーが電子メール フィールドに既に入力した内容が電子メール フィールドに事前入力されません。
セルフサービスのパスワード リセット (埋め込みパスワード リセットのサンプル) を使用する場合、ユーザーが電子メール フィールドに既に値を入力しており、ユーザーが [パスワードを忘れた場合] リンクをクリックすると、パスワードのリセット フローで電子メールを入力するように求められます。また。
ユーザーが既に電子メール フィールドに入力した内容を事前入力する方法はありますか?