Niestandardowe uwierzytelnianie, które nie wymaga UserProvider

Szukałem rozwiązania w sieci dla mojej konfiguracji, ale nie mogę znaleźć czegoś, co spełniałoby moje potrzeby. Do tej pory pracowałem nad tym przez 3 pełne dni i nie mogę sprawić, by działał poprawnie, jestem pewien, że jest kilka rzeczy, których nie rozumiałem.

Tworzę aplikację symfony na gałęzi 2.1.

Aby to skrócić. Mam usługę internetową, której chcę używać do uwierzytelniania.

To jest przepływ, który chcę wdrożyć:

Użytkownik przesyła poświadczeniaTe poświadczenia (nazwa użytkownika i hasło) są wysyłane do mojej usługi internetowejJeśli nazwa użytkownika / hasło są poprawne, usługa sieciowa podaje tablicę zawierającą nazwę użytkownika, role i inne rzeczy, ale hasło. (jeśli poświadczenia nie są poprawne, tablica z jednym polem zostanie zwrócona)Gdy tylko usługa sieciowa daje „dużą” tablicę, chcę, aby użytkownik został uznany za uwierzytelnionego.W zależności od zwróconych ról chcę, aby komponent bezpieczeństwa Symfony przekazał użytkownikowi odpowiednią autoryzację.Chciałbym uniknąć nawiązania połączenia z usługą internetową dla każdej przeglądanej strony.

Nie wiem, czy można to zrobić za pomocą Symfony, na pewno ten przepływ pracy nie wydaje się być bardziej bezpieczny, ale nie widzę innego sposobu korzystania z tej usługi.

Aby zakończyć, nie muszę mieć użytkownika UserProvider, ponieważ moje uwierzytelnianie odbywa się na zdalnej usłudze. Ale najwyraźniej komponenty Symfony wymagają dostawcy użytkownika (nie ma znaczenia, jaki ma typ).

Z góry dziękuję

Edycja: Aby było prostsze, czy możliwe jest przekazanie czegoś więcej niż tylko zmiennej $ username w funkcji loadUserByUsername () w klasie UserProvider (która implementuje UserProviderInterface)? Aby pobrać obiekt użytkownika, muszę przekazać użytkownikowi dodatkowo swoją nazwę użytkownika.

questionAnswers(1)

yourAnswerToTheQuestion