2

バックグラウンド

特注アプリのユーザー データベースを Keycloak に移行する必要があります。keycloak-add-user.jsonユーザーを正常にインポートするファイルを作成しました。移行されたユーザーのパスワードは元のシステムでハッシュされますが、既存のアルゴリズムを使用して移行されたユーザーのハッシュ値とソルト値を検証する Keycloak Password Hash SPI サービス クラスを実装しました。Hash SPI クラスは Keycloak SPI から実装されPasswordHashProviderFactoryPasswordHashProvider「Pbkdf2PasswordHashProvider」に基づいています。

public class MyPasswordHashProvider implements PasswordHashProviderFactory, PasswordHashProvider {
public static final String ID = "XXXX";

問題

移行されたユーザーがキークロークで認証しようとすると、エラーがログに記録されますorg.keycloak.hash.PasswordHashManager

Could not find hash provider XXXX for password

META-INF/services/org.keycloak.models.PasswordHashProviderFactory私のjarには、HashProvider実装の完全なクラス名を含む1行 の初期化ファイルが含まれています。

my.folder.MyPasswordHashProvider

これはフェデレーション SPI doco に基づいていましたが、Keycloak パスワード ハッシュ SPI のドキュメントは存在しないようです。キークロークにハッシュ・プロバイダーを登録して使用するには、何が欠けていますか? または何をする必要がありますか?

4

2 に答える 2

0

これは、コピー/貼り付けエラーであることが判明しました。初期化ファイルのパッケージ名が「ハッシュ」ではなく「モデル」であったため、PasswordHashProviderFactory.

プロバイダー jar では、初期化ファイルに次の名前を付ける必要があります。

META-INF/services/org.keycloak.credential.hash.PasswordHashProviderFactory

実装ファクトリ クラスの完全な名前を含む 1 行が含まれます。この場合は次のようになります。

my.folder.MyPasswordHashProvider
于 2016-08-02T00:20:04.840 に答える