翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
Application Load Balancer を使用して JWTs を検証する
Application Load Balancer (ALB) を設定して、安全なservice-to-service (S2S) またはmachine-to-machine (JWT) を検証できます。ロードバランサーは、JWT の発行方法や人間による操作の有無にかかわらず、JWT を検証できます。
ALB はトークン署名を検証し、'iss' (発行者) と 'exp' (有効期限) の 2 つの必須クレームが必要です。さらに、トークンに存在する場合、ALB は「nbf」(以前ではない) および「iat」(時に発行) クレームも検証します。検証のために最大 10 個の追加クレームを設定できます。これらのクレームは 3 つの形式をサポートしています。
-
単一文字列: 単一のテキスト値
-
スペース区切り値: スペースで区切られた複数の値 (最大 10 個の値)
-
文字列配列: テキスト値の配列 (最大 10 個の値)
トークンが有効な場合、ロードバランサーはトークンを使用してリクエストをターゲットにそのまま転送します。それ以外の場合、リクエストを拒否します。
JWT 検証を使用する準備をする
以下のタスクを実行します。
-
クライアント ID とクライアントシークレットを発行する IdP にサービスを登録します。
-
サービスへのアクセスをリクエストするには、IdP を別途呼び出します。IdP はアクセストークンで応答します。このトークンは通常、IdP によって署名された JWT です。
-
JSON ウェブキーセット (JWKS) エンドポイントを設定します。ロードバランサーは、設定した既知の場所で IdP によって発行されたパブリックキーを取得します。
-
JWT をリクエストヘッダーに含め、すべてのリクエストで Application Load Balancer に転送します。
コンソールを使用して JWT 検証を設定するには
-
Amazon EC2 コンソール (https://console.aws.amazon.com/ec2/
) を開きます。 -
ナビゲーションペインの [ロードバランシング] で [ロードバランサー] を選択します。
-
Application Load Balancer を選択し、リスナータブを選択します。
-
HTTPS リスナーを選択し、ルールの管理を選択します。
-
[ルールを追加] を選択してください。
-
(オプション) ルールの名前を指定するには、名前とタグを展開し、名前を入力します。タグを追加するには、[タグを追加] を選択し、タグキーとタグ値を入力します。
-
条件 で、1~5 の条件値を定義します。
-
(オプション) 変換を追加するには、変換の追加を選択し、変換タイプを選択し、一致する正規表現と置換文字列を入力します。
-
アクション、事前ルーティングアクションで、トークンの検証を選択します。
-
JWKS エンドポイントの場合は、JSON ウェブキーセットエンドポイントの URL を入力します。このエンドポイントはパブリックアクセス可能で、JWT 署名の検証に使用されるパブリックキーを返す必要があります。
-
発行者には、JWT トークンに iss クレームの想定値を入力します。
-
(オプション) 追加クレームを検証するには、追加クレームを選択します。
クレーム名に、検証するクレームの名前を入力します。
Format で、クレーム値の解釈方法を選択します。
-
単一文字列: クレームは、指定された 1 つの値と正確に一致する必要があります。
-
文字列配列: クレームは配列の値の 1 つと一致する必要があります。
-
スペース区切り値: クレームには、指定された値を含める必要があるスペース区切り値が含まれています。
-
-
Values には、クレームの想定値を入力します。
-
追加のクレームに対して繰り返します (最大 10 クレーム)。
-
-
アクション、ルーティングアクションで、トークンの検証が成功した後に実行するプライマリアクション (固定レスポンスに転送、リダイレクト、または返す) を選択します。
-
必要に応じてプライマリアクションを設定する
-
[保存] を選択します。
CLI を使用して JWT 検証を設定するには
次の create-rule コマンドを使用して、JWT 検証 を設定します。
JWTs を検証するアクションを使用してリスナールールを作成します。リスナーは HTTPS リスナーである必要があります。
aws elbv2 create-rule \ --listener-arnlistener-arn\ --priority10\ --conditions Field=path-pattern,Values="/login" \ --actions file://actions.json
以下は、 jwt-validationアクションと forwardアクションを指定する actions.json ファイルの例です。ID プロバイダーから提供されたドキュメントに従って、サポートされているフィールドを確認してください。
--actions '[ { "Type":"jwt-validation", "JwtValidationConfig":{ "JwksEndpoint":"https://issuer.example.com/.well-known/jwks.json", "Issuer":"https://issuer.com" }, "Order":1 }, { "Type":"forward", "TargetGroupArn":"target-group-arn", "Order":2 } ]'
次の例では、検証する追加のクレームを指定します。
--actions '[ { "Type":"jwt-validation", "JwtValidationConfig":{ "JwksEndpoint":"https://issuer.example.com/.well-known/jwks.json", "Issuer":"https://issuer.com", "AdditionalClaims":[ { "Format":"string-array", "Name":"claim_name", "Values":["value1","value2"] } ], }, "Order":1 }, { "Type":"forward", "TargetGroupArn":"target-group-arn", "Order":2 } ]'
詳細については、「Application Load Balancer のリスナールール」を参照してください。