MFA でのカスタム電子メールの問題の解決
Azure B2C は、さまざまなシナリオに合わせてカスタム電子メールを送信する機能など、ユーザー認証フローの広範なカスタマイズ オプションを提供します。ローカル アカウントのサインインやパスワードを忘れた場合のフローを有効にするカスタム ポリシーを設定すると、利用規約の処理から SendGrid を介したメールのカスタマイズに至るまで、すべてがシームレスに機能する可能性があります。
ただし、サインイン中の多要素認証 (MFA) プロセスが検証コードのカスタム電子メールの送信に失敗し、代わりにデフォルトの Microsoft テナント電子メールに戻ると、一般的な問題が発生します。この記事では、この問題について調査し、効果的に解決する方法についてのガイダンスを提供します。
| 指示 | 説明 |
|---|---|
| <BasePolicy> | Azure AD B2C カスタム ポリシーで継承する基本ポリシーを定義します。 |
| <ClaimsTransformations> | カスタム電子メール件名の生成など、クレームの変換が含まれます。 |
| ClaimsTransformation | 入力クレームと出力クレームを含む、個々のクレーム変換を指定します。 |
| SendGridClient | 電子メールを送信するために SendGrid クライアントを初期化します。 |
| SendGridMessage | SendGrid を通じて電子メールを送信するためのメッセージ オブジェクトを作成します。 |
| AddTo | 電子メール メッセージに受信者を追加します。 |
| SendEmailAsync | SendGrid クライアントを使用して電子メール メッセージを非同期に送信します。 |
Azure B2C でのカスタム MFA 電子メールの実装について
上記で提供されているスクリプトは、Azure B2C でのサインイン プロセス中にカスタム MFA 検証メールの送信を有効にするように設計されています。最初のスクリプトには、Azure AD B2C のカスタム ポリシー XML の構成が含まれます。この XML 内では、 <BasePolicy> タグは基本ポリシーから継承するために使用され、すべての基本的な設定が確実に含まれるようにします。の <ClaimsTransformations> セクションには、クレームの変換が含まれています。たとえば、 ClaimsTransformation 要素。これらの変換により、MFA 電子メールのコンテンツを動的にカスタマイズできます。
2 番目のスクリプトは、SendGrid を使用してカスタム電子メールを送信する C# Azure 関数です。この関数は、キューによってトリガーされます。 [QueueTrigger("mfa-email-queue")] 属性。 SendGrid クライアントを初期化します。 SendGridClient を使用して電子メール メッセージを作成します SendGridMessage。の AddTo メソッドは受信者を電子メールに追加します。 SendEmailAsync 電子メールを非同期に送信します。この設定により、MFA 電子メールが SendGrid で定義されたカスタマイズされたコンテンツとともに送信されるようになり、サインイン フロー中に送信されるデフォルトの Microsoft テナント電子メールの問題が解決されます。
Azure B2C での MFA 検証用のカスタム電子メールの実装
Azure AD B2C カスタム ポリシーの XML 構成
<TrustFrameworkPolicy xmlns="http://schemas.microsoft.com/online/cpim/schemas/2013/06"><BasePolicy><PolicyId>B2C_1A_TrustFrameworkBase</PolicyId></BasePolicy><BuildingBlocks><ClaimsTransformations><ClaimsTransformation Id="CreateMfaEmailSubject"><InputClaims><InputClaim ClaimTypeReferenceId="email" TransformationClaimType="email"/></InputClaims><OutputClaims><OutputClaim ClaimTypeReferenceId="email" TransformationClaimType="email"/></OutputClaims></ClaimsTransformation></ClaimsTransformations>
SendGrid を使用するためのサインイン フローのカスタマイズ
SendGrid 経由でカスタムメールを送信するための C# Azure 関数
using System.Threading.Tasks;using Microsoft.Azure.WebJobs;using Microsoft.Extensions.Logging;using SendGrid;using SendGrid.Helpers.Mail;public static async Task Run([QueueTrigger("mfa-email-queue")] string email, ILogger log){var client = new SendGridClient(Environment.GetEnvironmentVariable("SendGridApiKey"));var msg = new SendGridMessage(){From = new EmailAddress("no-reply@yourdomain.com", "Your Company"),Subject = "Your MFA Verification Code",PlainTextContent = $"Your verification code is {email}",HtmlContent = $"<strong>Your verification code is {email}</strong>"};msg.AddTo(new EmailAddress(email));var response = await client.SendEmailAsync(msg);}
Azure B2C で MFA 電子メールをカスタマイズするための高度なテクニック
Azure B2C で MFA 電子メールをカスタマイズするときに考慮すべきもう 1 つの重要な側面は、カスタム ポリシー内で適切なオーケストレーション ステップを確保することです。これには、MFA 電子メールの送信を正しく処理するためのユーザー ジャーニーの追加手順の定義と構成が含まれます。効果的な手法の 1 つは、サインイン ポリシー内に電子メール検証専用の新しいオーケストレーション ステップを追加することです。このステップでは、クレーム変換と技術プロファイルを活用して、電子メール送信プロセスを起動する必要があります。
さらに、ユーザー ジャーニーをデバッグおよび監視して、正しい電子メール テンプレートと API が呼び出されていることを確認することが重要です。 Application Insights などのツールを使用すると、カスタム ポリシーの実行内の問題を追跡および診断するのに役立ちます。これにより、リアルタイムの監視とトラブルシューティングが可能になり、MFA プロセス中にカスタム電子メールが期待どおりに送信されるようになります。
Azure B2C のカスタム MFA 電子メールに関するよくある質問と回答
- Azure B2C で MFA 用のカスタム電子メール テンプレートを構成するにはどうすればよいですか?
- 使用 SendGrid または別の電子メール サービスを使用してカスタム電子メール テンプレートを作成および管理し、それを B2C カスタム ポリシー内に統合します。
- カスタム MFA 電子メールを送信するにはどのようなオーケストレーション手順が必要ですか?
- 専用の orchestration step サインイン ポリシーの電子メール検証用。
- サインイン フロー中にカスタム電子メールが確実に使用されるようにするにはどうすればよいですか?
- 適切なオーケストレーション手順でカスタム電子メール テンプレートを参照するようにユーザー ジャーニーを更新します。
- MFA 中にデフォルトの Microsoft 電子メールが送信されるのはなぜですか?
- カスタム ポリシーが正しく参照しているかどうかを確認します。 custom email provider そしてテンプレート。
- Azure B2C でのカスタム電子メール送信に関する問題をデバッグするにはどうすればよいですか?
- 使用 Application Insights ユーザー ジャーニーと電子メール送信プロセスを監視および診断するため。
- SendGrid 以外のメール サービスを使用できますか?
- はい、Azure B2C はさまざまな電子メール プロバイダーをサポートしています。カスタム ポリシーでそれらを適切に構成する必要があります。
- カスタム MFA 電子メールにはどのようなクレーム変換が必要ですか?
- 必要なものを定義する claims transformations 電子メールのコンテンツを動的に生成してフォーマットします。
- 送信者のメールアドレスをカスタマイズすることはできますか?
- はい、電子メール サービス構成で送信者アドレスを指定し、ポリシーでそれを参照します。
- カスタム MFA 電子メール フローをテストするにはどうすればよいですか?
- テスト アカウントを使用してサインイン プロセスをトリガーし、カスタム電子メールが正しく送信されることを確認します。
Azure B2C での MFA のカスタマイズに関する最終的な考え
MFA 検証用のカスタム電子メールを送信するように Azure B2C を構成するには、オーケストレーション ステップ、クレーム変換、SendGrid などの外部サービスの統合などのさまざまな要素を理解し、正しく設定する必要があります。プロセスは複雑になる場合がありますが、詳細なガイドラインに従い、適切なデバッグ ツールを使用すると、サインイン フロー中にカスタム電子メールが確実に送信されるようにすることができます。これにより、セキュリティが強化されるだけでなく、シームレスでブランド化された認証プロセスが提供されるため、ユーザー エクスペリエンスも向上します。