JWT 認証コンポーネントは、JSON Web トークン (JWT) に基づいて認証と権限付与を実装します。HTTP リクエスト URL パラメーター、リクエストヘッダー、または Cookie から JWT を解析し、リソースにアクセスするためのトークンの権限を検証することをサポートします。
機能タイプ
認証と権限付与
フィールドの説明
ComponentConfig
パラメーター | タイプ | 必須 | デフォルト値 | 説明 |
Config | はい | - | JWT 認証構成。 |
JwtSpec
パラメーター | タイプ | 必須 | デフォルト値 | 説明 |
JwkConfig | はい | - | JWK の構成方法を指定します。 | |
JwtSources | はい | - | JWT の抽出方法を指定します。抽出ソースは 1 つだけサポートされます。 |
JwkConfigSpec
パラメーター | タイプ | 必須 | デフォルト値 | 説明 |
Type | いいえ | - | JWK 構成タイプ。 | |
RemoteJwks | いいえ | - | リモート JWKS 構成。 |
JwkConfigType
値 | 説明 |
Remote | JWK をリモートでフェッチします。 |
RemoteJwksSpec
パラメーター | タイプ | 必須 | デフォルト値 | 説明 |
Url | いいえ | - | リモート JWK アドレス。 |
URI
プロトコル、ホスト名、パスを含む完全な FQDN です。ALB インスタンスは、その vSwitch の IP を使用してこのアドレスにアクセスします。ターゲットアドレスがネットワーク経由で到達可能であることを確認してください。ターゲットアドレスがパブリックネットワーク上にある場合は、ALB インスタンスが配置されている vSwitch に SNAT を構成します。
例
http://example.com/jwt/pubkeysリモート JWK 応答は RFC 7518 に準拠しています。以下は戻り値の例です:
{
"keys": [
{
"e": "公開鍵の指数 (例: AQAB)",
"kid": "キー ID",
"kty": "暗号化アルゴリズムファミリー (例: RSA)。必須であり、大文字と小文字を区別します",
"alg": "使用される特定の暗号化アルゴリズム (例: RS256)。必須であり、大文字と小文字を区別します",
"use": "キーの用途 (例: 署名用の sig)",
"n": "公開鍵のモジュラス"
},
{
"kty": "oct",
"k": "yMsZ3vkBL4fEwJrNOPW6RztnYpdQ0UlVTum7H1qAehD",
"alg": "HS256"
}
]
}JwtSourcesSpec
パラメーター | タイプ | 必須 | デフォルト値 | 説明 |
Headers | いいえ | - | HTTP リクエストヘッダーから JWT を抽出します。 | |
Params | String[] | いいえ | - | URL パラメーターから JWT を抽出します。 |
Cookies | String[] | いいえ | - | Cookie から JWT を抽出します。 |
JwtHeaderSpec
パラメーター | タイプ | 必須 | デフォルト値 | 説明 |
Name | String | はい | Authorization | リクエストヘッダーのフィールド名。 |
ValuePrefix | String | いいえ | Bearer | ヘッダー値のプレフィックス。このプレフィックスは、トークンを抽出する前に削除されます。 |
エラーコード
HTTP ステータスコード | エラーメッセージ | 理由 |
401 | Jwt is missing | リクエストに JWT が指定されていません。 |
401 | Jwks remote fetch is failed | リモート JWKS エンドポイントへのアクセス中にタイムアウトが発生しました。 |
401 | Jwt verification fails | JWT ペイロードの検証に失敗しました。 |
401 | Jwt is expired | 指定されたトークンは期限切れです。 |
401 | Jwt signature is an invalid Base64url encoded | 指定されたトークンは Base64 からデコードできません。 |