FAPI モードにおける追加検証項目
概要
バージョン 2.0 以降、Authlete は Financial-grade API Security Profile 1.0 (FAPI 1.0) をサポートしています。FAPI 1.0 は Baseline (Financial-grade API - Part 1: Read Only API Security Profile) と Advanced (Financial-grade API - Part 2: Read and Write API Security Profile) に分かれており、どちらに従うかによって Authlete の振る舞いも異なります。
ここでは、標準の OAuth 2.0 および OpenID Connect 用の検証項目に加えて、FAPI 1.0 Baseline/Advanced において追加実行される検証項目について説明します。
認可エンドポイント
1. response_type リクエストパラメーター
Baseline |
チェック無し |
Advanced |
JARM が使われていない限り、response_type リクエストパラメーターの値は "code id_token" もしくは "code id_token token" のいずれかでなければならない。 |
2. redirect_uri リクエストパラメーター
Baseline |
redirect_uri リクエストパラメーター必須 |
Advanced |
同上 |
3. リダイレクト URI のスキーム
Baseline |
リダイレクト URI のスキームは https でなければならない。 |
Advanced |
同上 |
4. リダイレクト URI の検証
Baseline |
登録済みのリダイレクト URI に完全一致しなければならい。部分一致は不可。 |
Advanced |
同上 |
5. state リクエストパラメーター
Baseline |
scope リクエストパラメーターに openid が含まれていなければ、state リクエストパラメーター必須。 |
Advanced |
同上 |
6. nonce リクエストパラメーター
Baseline |
認証されたユーザーの識別子が要求されている場合、nonce リクエストパラメーター必須。 |
Advanced |
同上 |
7. リクエストオブジェクト
Baseline |
チェック無し |
Advanced |
認可リクエストでリクエストオブジェクトを用いなければならない。すなわち、request リクエストパラメーターもしくは request_uri リクエストパラメーターが必須。 |
8. リクエストオブジェクトの署名
Baseline |
チェック無し |
Advanced |
リクエストオブジェクトは署名されていなければならない。 |
9. リクエストオブジェクト外のリクエストパラメーター群
Baseline |
チェック無し |
Advanced |
リクエストオブジェクト外にあるリクエストパラメーター群は、全てリクエストオブジェクトの中にも重複して入れておかなければならない。 |
10. リクエストオブジェクト内の exp クレーム
Baseline |
チェック無し |
Advanced |
リクエストオブジェクトに exp クレームが含まれていなければならない。 |
11. リクエストオブジェクト内の aud クレーム
Baseline |
チェック無し |
Advanced |
リクエストオブジェクトに aud クレームが含まれていなければならない。その値は、OpenID プロバイダーの識別子と一致、もしくは当該識別子を含む配列でなければならない。 |
12. リクエストオブジェクトの署名アルゴリズム
Baseline |
チェック無し |
Advanced |
PS256 もしくは ES256 |
13. code_challenge リクエストパラメーター
Baseline |
code_challenge リクエストパラメーター必須。 |
Advanced |
クライアントタイプが public の場合、code_challenge リクエストパラメーター必須。 |
14. code_challenge_method リクエストパラメーター
Baseline |
code_challenge_method リクエストパラメーターの値は S256 でなければならない。plain 不可。 |
Advanced |
クライアントタイプが public の場合、code_challenge_method リクエストパラメーターの値は S256 でなければならない。plain 不可。 |
15. ACR を essential として要求
Baseline |
チェック無し |
Advanced |
ACR を essential として要求しなければならない。 |
16. レスポンス JWT の署名アルゴリズム
Baseline |
チェック無し |
Advanced |
PS256 または ES256。クライアントのメタデータ authorization_signed_response_alg の値をどちらかにする。 |
17. ID トークンの署名アルゴリズム
Baseline |
チェック無し |
Advanced |
PS256 または ES256。クライアントのメタデータ id_token_signed_response_alg の値をどちらかにする。 |
トークンエンドポイント
18. クライアント認証方式
Baseline |
次のいずれか
|
Advanced |
次のいずれか
|
19. クライアントアサーションの署名アルゴリズム
Baseline |
チェック無し |
Advanced |
PS256 または ES256 |
20. クライアントアサーションの鍵サイズ
Baseline |
鍵のサイズは、アルゴリズムが RSA 系であれば 2048 ビット以上、楕円曲線系であれば 160 ビット以上が必須。 |
Advanced |
同上 |
21. ID トークンの署名アルゴリズム
Baseline |
チェック無し |
Advanced |
PS256 または ES256。クライアントのメタデータ id_token_signed_response_alg の値をどちらかにする。 |
22. Mechanism for sender-constraining access tokens
Baseline |
チェック無し |
Advanced |
MTLS (Certificate Binding) を mechanism for sender-constraining access tokens として用いなければならない。 |
ユーザー情報エンドポイント
23. ユーザー情報レスポンスの署名アルゴリズム
Baseline |
チェック無し |
Advanced |
ユーザー情報レスポンスに署名が行われる場合(クライアントのメタデータ userinfo_signed_response_alg が未設定ではない場合)、そのアルゴリズムは PS256 または ES256 でなければならない。 |
参考情報
How did we do with this article?