この記事について
keycloakのログイン時に独自の認証方式を導入したく、認証SPIの実装方法を調査していました。しかし、どこを見ても公式ドキュメントをコピペしただけの内容しか見つからなかったので、備忘録として手短に残します。
環境
OS: macOS 10.14.6
keycloak: 7.0.1
準備
SPIなどのカスタマイズは全てGithubからダウンロードした、ファイルがJavaで書かれているkeycloakでないとできません。
Githubは開発途中のためgit clone
したのではほぼ確実にエラー出ます。
releasesからちゃんとテストをパスできたバージョンをダウンロードしましょう。
Let's try!
認証SPIの実装
examplesフォルダに既に完璧に実装されているカスタマイズが入っているので、それを使ってSPIの実装を紹介します。
JARファイルの生成
examples/providers/authenticator
に秘密の質問を使った認証SPIが入っています。
ターミナルからここのフォルダでmvn clean install
してJARファイルにパッケージングします。
examples/providers/authenticator/target
にauthenticator-required-action-example.jar
とauthenticator-required-action-example-sources.jar
というふたつのJARファイルが生成されます。
keycloakダウンロード
別に$KEYCLOAK_HOME
でmvn install
してdistributionにkeycloak自体のSNAPSHOTを作ってもいいですが、より確実にkeycloak公式ダウンロードページからGithubで選んだものと同じバージョンをダウンロードします。
実装
公式版KEYCLOAK_HOMEにprovidersというフォルダを作ります。
先ほど生成したJARファイルを二つともここにコピーして、./bin/standalone.sh
で起動すれば完了です。