2017-10-19 4 views
0

は、我々は、カスタム実装セキュリティとユーザー管理を使用する複数のアプリケーションを持っています。今より良いソリューションであるため、キークローズに切り替えることになります。我々は製品のように、いくつかの場所で私たちのUserモデルを使用するすべてのアプリケーションで Keycloak`sユーザー

(f.e. creator_id = 1)a.s.o. 同様の質問がここに Keycloak and spring boot rest api - user specific data stragegy

頼まれた私の質問は以下のとおりです。

は、どのように私は私達のユーザーモデルを保つが、keycloakために私達のユーザーを移行することなく、認証およびユーザー管理のためにkeycloak使用することができますか?そして、どのようにユーザー登録のプロセスを(Keycloakで)同期させるのですか?有用な例が非常に役立つでしょう。

+1

[この質問の私の回答](https://stackoverflow.com/questions/39259607/how-to-integrate-or-make-use-of-keycloak-user-database-in-my)を見てください。 - アプリケーション)、それがあなたのために働くかどうかを確認してください。私はしばらくそれを使用してきており、うまくいきました。 – stdunbar

+0

について考えてみましょう。ありがとうございました。ポイントの1つは、データベース間の一貫した状態を持つことです。ユーザー連盟などのカスタムプロバイダーに進むべきかどうかわからない – x4k3p

答えて

3

私は、各ユーザーのログイン時にオンザフライKeycloakのデータベースにカスタムデータベースからユーザデータをインポートするカスタムユーザーストレージSPIhttp://www.keycloak.org/docs/latest/server_development/topics/user-storage.html)を実装することをお勧めします。 アプリケーションのフロントでは、独自のユーザーモデルに(org.keycloak.KeycloakPrincipalを参照)、適切なKeycloakアダプタとKeycloak特定のユーザモデルを変換し、カスタムフィルタ/インターセプタを使用することができます。

私はいくつかの顧客のためにこれをしなかったし、それは非常によく動作します。このアプローチでは、保護されたアプリケーションのコードは通常変更する必要はありません。ユーザ登録プロセスの場合

は、単にあなたの現在の登録実装にユーザーに指示keycloakログインページにリンクを置きます。そのためには、Keycloakにcutomログインテーマが必要です。しかし、Keycloakのログインページを独自の表情(&)にカスタマイズするには、カスタムスキームが必要になるでしょう。

+0

良い提案/例をありがとう。 keycloakでユーザーを登録し、カスタムSPIで独自のデータベースを更新することは可能ですか? – x4k3p

+1

ユーザストレージSPIでは、これは不可能です。外部ユーザーストレージからインポートしたユーザーアカウントのみを変更し、変更内容を同期バックすることができます。 内部UserProvider全体を置き換えることができる__User SPI__があります。しかし、それをカスタム実装に置き換えることはお勧めしません。それは文書化されておらず、プライベートであるようです(これはコンポーネントkeycloak-server-spi-privateにあります)。 – Boomer

+0

よろしくお願いいたします。もう1つの方法は、「成功したログイン後に」ユーザーを作成することです。すなわち、キークローキングでログインすることができるがローカルストレージ(アプリケーション)にない新しいユーザが存在する場合、ユーザは作成されるか? – x4k3p

関連する問題