tjtjtjのメモ

自分のためのメモです

keycloak ユーザーストレージSPI

keycloak を試した時のメモ

ユーザー・ストレージSPI

keycloak-documentation.openstandia.jp

ユーザー・ストレージSPIを使用して、外部ユーザー・データベースとクレデンシャル・ストアに接続するように、Keycloakの拡張機能を実装できます。組み込みのLDAPActive Directoryのサポートは、このSPIを実際に実装したものです。設定などの作業をせず、すぐにKeycloakはローカル・データベースを使用して、ユーザーの作成、更新、検索とクレデンシャルの検証をします。 しかし、多くの場合、組織はKeycloakのデータモデルに移行できない外部の独自ユーザー・データベースをすでに持っています。このような状況では、アプリケーション開発者は、ユーザー・ストレージSPIの実装をコーディングして、外部ユーザーストアと、Keycloakがユーザーのログインおよび管理に使用する内部ユーザー・オブジェクト・モデルをブリッジすることができます。

ブリッジを書けば、独自ユーザーの認証ができるようになる。

dasniko/keycloak-user-spi-demo

github.com

これを利用させてもらう。 git clonemvn install で jar を作っておく。keycloak に jar をコピーして起動。

git clone https://github.com/dasniko/keycloak-user-spi-demo.git
cd keycloak-user-spi-demo
mvn install
docker create -p 8080:8080 -e KEYCLOAK_USER=admin -e KEYCLOAK_PASSWORD=password --name keycloak jboss/keycloak
docker cp ./target/keycloak-demo-user-spi.jar keycloak:/opt/jboss/keycloak/standalone/deployments/
docker start keycloak

keycloak に admin/password で入り、 user federation に demo-user-provider があるので選択しsave。

f:id:tjtjtjofthedead:20201024082041p:plain

すると users に keycloak-user-spi-demo のユーザーが表示される。 f:id:tjtjtjofthedead:20201024082123p:plain

ここ から username/password がわかる。

demo-user でログイン

あとは fred.flintstone/fred でkeycloakに入ったり、ロール付けたりするといいんじゃないですかね。