Help us understand the problem. What is going on with this article?

KeycloakのFAPI(Financial-grade API)対応について(2019/12 update)

日立製作所 中村雄一

OpenID Foundationで策定が進むプロファイルである「Financial-grade API(FAPI)」へのKeycloakの対応のための開発を筆者のチームで進めています。昨年(2018年末時点)の状況については、以前の記事をご覧ください。
 本記事では、KeycloakのFAPI対応状況のこの1年のupdateを記します。

KeycloakのFAPI対応状況(機能面)

 昨年に引き続き、日立の@tnorimatさんが中心となって対応のための開発が行われています。主に機能面のアップデートを表に記します。

非対応項目のJIRA 概要 Pull Request 対応バージョン
KEYCLOAK-9756 リクエストオブジェクトのPS256/386/512署名アルゴリズム対応 5974 6.0.0
KEYCLOAK-10747 PKCE設定項目追加 6135 6.0.0
KEYCLOAK-6748 IDトークン暗号化 7.0.0

多くの人に関係すると思われるのが、PKCE(RFC7636)の設定項目の追加です。Keycloak6.0.0以前では、認可コードを取得する際、PKCE関連のパラメタが無くとも認可コードが払い出されていました。つまり、PKCE関連のパラメタをクライアント側が付け忘れることを防止することができませんでした。
Keycloak 7.0.0以降では、管理コンソールに下図のような設定項目が追加されました。

PKCE_Enabling.png

例えば「S256」を選択すると、認可エンドポイントへのクライアントからのリクエストにcode_challenge_method=S256およびcode_challengeが含まれていないと、リクエストがエラーで帰ってきます。これにより、クライアント側で確実にPKCEを使わせることができるようになりました。

Conformance Testパスに向けた状況

この1年の間に、OpenID FoundationよりFAPIについてもConformance Testがリリースされました。Keycloakとしても、Conformance testにパスすることが望まれます。OSSセキュリティ技術の会を通じて関係する日本企業の協力を得て@tnorimatが中心となりConformance testパスのための課題をJIRAに登録しました。
結果を下記表にまとめました。エラー処理などの細かな課題が中心となっています。13個あり、うち3件は既にKeycloak8.0.0で対応済です。

非対応項目のJIRA 概要 Pull Request 対応バージョン
KEYCLOAK-11251 JWTでのクライアント認証において署名アルゴリズムES256またはPS256サポート 6414 8.0.0
KEYCLOAK-11252,KEYCLOAK-11253 well-knownにてサーバメタデータ返却の漏れ 6351,6354 8.0.0
KEYCLOAK-11254 Hybridフローの一部をクライアントに強制
KEYCLOAK-11255KEYCLOAK-11262 リクエストオブジェクトのエラー処理
KEYCLOAK-11263 MTLSのエラー処理

今後の課題

 Keycloakも大きなレベルではFAPIのPart1とPart2の機能は備えており、あとはconformance testのパスという状態です。一方で、新しい仕様であるCIBAフローへの対応については、まだ進んでおらず、貢献が待たれます。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした