Authlete 2.x のドキュメントは 2.x 版をご覧ください。
概要
本ドキュメントでは、Authlete で FAPI の機能を利用するための具体的な方法について解説します。 Authlete は FAPI 1.0 と FAPI 2.0 の両方をサポートします。どちらの場合も、どのプロファイルを適用するかを Authlete に伝える方法は共通です。各プロファイルの詳細
はじめに
Authlete がサポートする FAPI
Authlete は FAPI 1.0 と FAPI 2.0 の両方をサポートします。 FAPI 1.0 と 2.0 には、それぞれ複数のセキュリティープロファイルがあります。各セキュリティープロファイルにおける認可サーバーの要件は異なっており、どちらのプロファイルに従うかによって認可サーバーの振る舞いも異なります。 FAPI の機能を有効にするには、FAPI における要求事項を満たすようにサービスおよびクライアントを適切に設定したうえで、どのプロファイルを適用するかを Authlete に伝える必要があります。プロファイルの指定方法
プロファイルの指定方法は 2 通りあります。
静的な設定を使うと、そのサービスまたはクライアントのすべてのリクエストに同じプロファイルが適用されます。準拠レベルの異なる複数のクライアントを 1 つの認可サーバーで収容する場合は、クライアントごとに「FAPI モード」を設定するか、スコープ属性による動的判定を使います。
「FAPI モード」はサービスとクライアントの設定項目で、Authlete 3.0 で追加されました。Authlete 2.x にはスコープ属性による動的判定のみがあります。
Authlete がプロファイルを決定する順序
Authlete は、リクエストごとに以下の順序で適用するプロファイルを決定します。先に条件を満たしたものが採用され、それ以降は評価されません。- Authlete サーバーで FAPI 機能が有効でない場合、通常の OAuth 2.0 / OpenID Connect の仕様に従います。
- サービスの「指定可能なサービスプロファイル」で FAPI が有効でない場合、通常の OAuth 2.0 / OpenID Connect の仕様に従います。
- サービスの「FAPI モード」が設定されていれば、その値に従います。
- クライアントの「FAPI モード」が設定されていれば、その値に従います。
- リクエストに含まれる (あるいは関連付けられる) スコープの属性に従います。
- いずれにも該当しない場合、通常の OAuth 2.0 / OpenID Connect の仕様に従います。
FAPI モードとスコープ属性の対応
fapi2 の値 baseline、advanced-jar、advanced-jarm は旧来の値で、現在は非推奨です。新たに設定する場合は上表の値を使用してください。スコープ属性が複数のプロファイルを指す場合
スコープの属性は、リクエストに含まれる (あるいは関連付けられる) すべてのスコープから集めて評価されます。そのため、異なるプロファイルの属性を持つスコープが 1 つのリクエストに同時に含まれることがあります。 この場合、Authlete は以下の順序で判定します。先に該当したグループが採用され、それ以降は評価されません。
同時に適用されるのは 1 位のグループの中だけです。 FAPI 2.0 のメッセージ署名は、該当する属性を複数付与すれば複数が同時に適用されます。2 位から 4 位は、いずれか 1 つだけが採用されます。
たとえば、あるスコープが
fapi = rw を、別のスコープが fapi2 = sp を持つリクエストでは、FAPI 2.0 セキュリティプロファイルだけが適用され、FAPI 1.0 アドバンスの属性は無視されます。
FAPI に関する設定項目の場所
サービスの設定は、サービス設定の エンドポイント > 詳細設定 > FAPI タブにあります。「指定可能なサービスプロファイル (任意)」で FAPI プロファイルを有効にし、「FAPI モード」でこのサービスに適用するモードを選びます。「FAPI モード」で「FAPI 2.0 メッセージ署名」を選ぶと、「FAPI 2.0 メッセージ署名要件」で対象を選べるようになります。

FAPI モードの組み合わせ規則
複数の FAPI モードを同時に指定できるのは、FAPI 2.0 のメッセージ署名同士の場合だけです。以下の 3 つは、それぞれ単独でのみ指定できます。- FAPI 1.0 Baseline
- FAPI 1.0 Advanced
- FAPI 2.0 セキュリティプロファイル