外部プロセスとのインターフェイスの回復性の向上
この記事では、ユーザー体験で RESTful API を計画して実装する方法と、API エラーに対するアプリケーションの回復性を高める方法について説明します。
API が正しく配置されていることを確認する
Identity Experience Framework (IEF) ポリシーを使用すると、 RESTful API 技術プロファイルを使用して外部システムを呼び出すことができます。 外部システムは IEF ランタイム環境によって制御されないため、障害点となる可能性があります。
API を使用して外部システムを管理する方法
特定のデータにアクセスするためのインターフェイスを呼び出している間に、データで認証の決定が促進されるかどうかを確認します。 その情報が、アプリケーションのコア機能に不可欠かどうかを評価します。 たとえば、e コマースや、管理などの二次的な機能などです。 情報が認証に必要ではなく、二次的なシナリオにのみ必要な場合は、呼び出しをアプリケーション ロジックに移動することを検討します。
認証に必要なデータが比較的静的で小規模であり、ディレクトリから外部化されることに、他のビジネス上の理由がない場合は、ディレクトリに格納することを検討してください。
可能な場合は必ず、事前認証済みのパスから API 呼び出しを削除します。 削除できない場合は、API の前で、サービス拒否 (DoS) および分散型サービス拒否 (DDoS) 攻撃からの厳格な保護を配置する必要があります。 攻撃者はサインイン ページを読み込み、API に大量の DoS 攻撃を実行し、アプリケーションを無効にすることができます。 たとえば、サインインで CAPTCHA を使用すると、サインアップ フローが役に立ちます。
可能な場合は常に、組み込みのサインアップ ユーザー フローの API コネクタを使用して、サインアップ中の ID プロバイダーとのフェデレーションの後か、またはユーザーを作成する前に Web API と統合します。 ユーザー フローは既に広範囲でテストされているため、ユーザー フロー レベルで機能、パフォーマンス、またはスケールのテストを実行する必要はない可能性があります。 その場合でも、アプリケーションの機能、パフォーマンス、およびスケールをテストする必要があります。
Azure AD B2C RESTful API 技術プロファイルでは、キャッシュ動作は提供されません。 代わりに、RESTFul API プロファイルは、ポリシーに組み込まれている再試行ロジックとタイムアウトを実装します。
データの書き込みが必要な API の場合は、タスクをキューに入れて、バックグラウンド ワーカーがタスクを実行するようにします。 Azure キューなどのサービスを使用できます。 この方法により、API から効率よく戻るようになり、ポリシー実行のパフォーマンスが向上します。
API エラー処理
API は Azure AD B2C システムの外部に存在するため、技術プロファイル内で適切なエラー処理を行う必要があります。 エンド ユーザーに適切な情報が提供され、アプリケーションがエラーをスムーズに処理できることを確認してください。
API エラーをスムーズに処理する方法
API には、さまざまな理由でエラーが発生する可能性があるため、それらのエラーに対するアプリケーションの回復性を高めます。 API が要求の処理を完了できない場合は、HTTP 4XX エラー メッセージを返します。 Azure AD B2C ポリシーで、API の機能停止をスムーズに処理し、場合によっては、動作を縮小することを試みます。
一時的なエラーをスムーズに処理します。 RESTFul API プロファイルを使用すると、さまざまな サーキット ブレーカーのエラー メッセージを構成できます。
予防的に監視します。また、継続的インテグレーション/継続的デリバリー (CICD) を使用して、技術プロファイル エンジンで使用されるパスワードや証明書などの API アクセス資格情報をローテーションします。
API 管理 - ベスト プラクティス
REST API をデプロイし、RESTful 技術プロファイルを構成するときは、推奨されるベスト プラクティスに従うと、一般的な誤りや見落としを防ぐために役立ちます。
API を管理する方法
API Management (APIM) は、API の公開、管理、および分析を行います。 APIM は、バックエンドのサービスとマイクロサービスへの安全なアクセスを提供するための認証も処理します。 API ゲートウェイを使用して、API のデプロイ、キャッシュ、負荷分散をスケールアウトします。
各 API を複数回呼び出すのではなく、ユーザー体験の開始時に適切なトークンを取得し、Azure APIM API をセキュリティで保護することをお勧めします。