0

Symfony のドキュメントから、ユーザー プロバイダーと認証プロバイダーがどのように機能するかを理解しました。独自のユーザーおよび/または認証プロバイダーを実装しようとしています。私がまだ完全に得ていないのは、このシステム内でパスワードを比較する方法/どこで確認するかです。

ドキュメント[1]では、ユーザーが存在する場合でも、ユーザープロバイダーはユーザーオブジェクトを返す必要があることがわかります。しかし、ユーザーが見つかった場合、この例ではユーザーが次のように返されることがわかります

 return new WebserviceUser($username, $password, $salt, $roles);
  1. 問題は、ここでパスワードとともにユーザーオブジェクトが返されるのはなぜですか。
  2. 質問: このクラスでパスワードを取得するにはどうすればよいですか? これは認証プロバイダーの仕事ではありませんか? もしそうなら、そこでパスワードを確認する方法は?

このモデルが理にかなっているユースケースは確かにありますが、当分の間、私はそれを見ていません。たぶん、ここの誰かが私にこれを説明する背景を持っています。

背景: 認証に LDAP を使用したいと考えています。したがって、私の最初のアプローチは、LDAP 検索を通じてユーザーが存在するかどうかを匿名でチェックし、存在する場合は彼を認証しようとするユーザー プロバイダーを作成することです。問題は、パスワード付きのユーザー オブジェクトを返すことができないことです (ただし、ユーザーが既に認証されている場合にのみ取得する他の属性も返されます)。ユーザーは、ユーザー固有の設定と属性も保存されるローカル DB に保存/キャッシュされます。

[1] http://symfony.com/doc/current/cookbook/security/custom_provider.html#create-a-user-provider

4

1 に答える 1