日立製作所 中村 雄一
OpenID Foundationで策定が進むプロファイルである「Financial-grade API(FAPI)」へのKeycloakの対応のための開発を筆者のチームで進めています。昨年度の活動状況はこちらの記事に紹介しています。その後、Keycloakコミュニティの中でもFAPI対応への関心が高まり、日立の 乗松さんを技術リーダーとしてFAPI-SIG(Special Interest Group)が立ち上がりました。Keycloakコミュニティでは初となるSIGとなります。本記事ではFAPI-SIGを紹介します。
FAPI-SIGの活動概要
FAPI-SIGの活動は、GithubのKeycloak Project配下の、kc-sig-fapiリポジトリで実施されています。活動状況はオープンで、Projectタブを見ると開発の進捗もわかるようになっています。記事執筆現在、FAPI Certificationの取得に向けた活動、CIBAの対応のための開発、Client Policyのエンハンス、が行われています。
FAPI Certificationの取得
OpenID FoundationのFAPI Conformance Testをパスし、FAPI Certificationの取得を目的として、テスト環境の整備と自動化のための試みが行われています。テストの実行の仕方もkc-sig-fapiリポジトリのトップページに記載されています。記事執筆時点で、Conformance Testを開発環境でパスすることができるようになっています。
CIBAへの対応
OAuthのフローの中で認証デバイスを分離する規格である、FAPIのCIBA(Client Initiated Backchannel Authentication)プロファイルへの対応を目的としたプロジェクトです。開発規模が大きくなるため、作業リポジトリを設け、5人ほどの開発者によって分担して開発が順調に進んでいます。
Client Policyのエンハンス
KeycloakがFAPIに対応した機能を備えたとしても、設定・運用面で問題があります。例えば、KeycloakをFAPI用に設定しようとする場合、従来のKeycloakでは、全部のクライアントに対してFAPIが設定されてしまいますので、FAPIを使いたくないクライアントがある場合に困ります。またFAPIを設定する場合も設定項目が膨大で設定が大変です。
このような問題を解決するために、Client Policyというクライアント単位の設定のためのフレームワークが乗松さんを中心に開発され、Keycloak 12より取り込まれています。本フレームワークの概要については、こちらの講演資料を参照ください。このClient PolicyはKeycloak 12では隠し機能の状態であり、これを使えるようにするためのREST APIや画面の整備、またClient Policyの設定部品の整備も進められています。
参加するには
FAPIの仕様は日々エンハンスされていますので、Keycloak側でも継続な対応が必要になってきますので、開発協力者が常に求められる状況にあります。開発に興味がある方は、kc-sig-fapiリポジトリのIssueをウォッチし、自分でも手を上げられそうなものに参加するとよいでしょう。また、Web会議の予定と議事録もFAPI-SIGディレクトリで公開されており、Web会議に参加し議論することもできます。