Application Load Balancer で認証を設定するときに、エラーが発生します。
解決策
ID プロバイダー (IdP) または Application Load Balancer の設定に誤りがあると、の認証を設定する際に、Application Load Balancer によりエラーが発生する可能性があります。認証エラーをトラブルシューティングするには、次のタスクを実行します。
redirect_mismatch
Amazon Cognito を使用している場合は、コールバック URL を https://<domain>/oauth2/idpresponse に設定します。別の IdP を使用している場合は、リダイレクト URI を https://<domain>/oauth2/idpresponse に設定します。
**注:置換<domain>**Application Load Balancer へのアクセスに使用されるドメインを使用します。
HTTP 401: Unauthorized
HTTP 401: Unauthorized エラーを解決するには、Application Load Balancer と IdP において、次の設定がすべて一致するように更新します。
- 発行元
- 認証エンドポイント
- トークンエンドポイント
- クライアント ID/クライアントシークレット
また、ユースケースに応じて、認証されていないリクエストに対するアクションを、許可または、認可 (クライアントの再試行) に設定します。
HTTP 500: 内部サーバーエラー
ロードバランサーは、IdP トークンのエンドポイント (TokenEndpoint) および IdP ユーザー情報のエンドポイント (UserInfoEndpoint) と通信できる必要があります。ロードバランサーがこれらのエンドポイントと通信するちきに、Application Load Balancer は IPv4 のみをサポートします。
HTTP 500: 内部サーバーエラーを解決するには、次のタスクを実行します。
- IdP エンドポイントの DNS 名がパブリックで解決可能であることを確認します。認証機能ではプライベートドメイン名を解決できません。
- HTTPS ポート 443 経由の IdP エンドポイントへのトラフィックを許可するアウトバウンドルールを、ロードバランサーのセキュリティグループに追加します。
- ロードバランサーのサブネット ACL が、IdP エンドポイントとの間のトラフィックを許可していることを確認します。
エグレスルールでは、宛先 IP (IdP エンドポイント) および宛先 TCP ポート 443 を Allow に設定する必要があります。
イングレスルールでは、送信元 IP (IdP エンドポイント) および宛先 TCP ポート範囲 1024 〜 65535 を Allow に設定する必要があります。
- ロードバランサーのサブネットルートテーブルを、IdP エンドポイントに到達するように設定します。
インターネットを対象とするロードバランサーでは、パブリック IdP エンドポイントに到達するようにインターネットゲートウェイのデフォルトルートを設定します。
内部ロードバランサーまたは、パブリック IPv4 のないデュアルスタック IPv4 IP アドレスを持つバランサーの場合は、パブリック IdP エンドポイントに到達するように NAT ゲートウェイまたはインスタンスのデフォルトルートを設定します。
その他のすべてのネットワークトポロジでは、IdP エンドポイントに到達するのに十分なルーティングをエンドツーエンドで行う必要があります。
- 有効な OAuth2 グラントタイプを選択します。Application Load Balancer は、アクセストークンを取得するための認証コードグラントをサポートしています。IdP で誤ったアクセス許可が設定されている場合、Application Load Balancer でエラーが発生します。
- IdP トークンまたはユーザー情報エンドポイントが 5 秒以内に応答することを確認してください。
その他の HTTP エラーコード
Application Load Balancer で発生する、その他の HTTP エラーコードのトラブルシューティング方法については、「ロードバランサーが HTTP エラーを生成する」を参照してください。
関連情報
Application Load Balancer の組み込み認証でログインを簡素化
Application Load Balancer を使用してユーザーを認証する
アプリクライアントでのアプリケーション固有の設定