2013-04-17 14 views
12

Ograniczono aplikację do logowania przy użyciu protokołu OAuth do jednej domeny (na przykład abc.com). Uzyskanie błędu z następującymi krokami:Błąd: parametry OAuth 2 mogą mieć tylko jedną wartość: hd

  1. Zalogowano się z wieloma kontami w przeglądarce w google.
  2. Podczas próby zalogowania się z użytkownikiem, którego domena nie jest wymieniona, nic się nie dzieje (brak komunikatu o błędzie). Spróbuj zalogować się z nieważnym użytkownikiem dwa razy.
  3. Teraz spróbuj zalogować się z prawidłowym użytkownikiem.

On robi to występuje następujący błąd:

OAuth 2 parameters can only have a single value: hd

W id klienta ślad błąd stosu jest widoczny. Czy to jest zagrożenie dla bezpieczeństwa?

Jak ten błąd można usunąć?

+0

Właśnie zaimplementowałem tę funkcję i widzę tę samą wiadomość, gdy wykonuję te same czynności. Nie bardzo przyjazny dla użytkownika przepływ pracy –

+0

http://stackoverflow.com/questions/29694840/googles-openid-connect-says-oauth-2-parameters-can-only-have-a-single-value-c –

Odpowiedz

0

Zgodnie z documentation the hd parameter dotyczy G Suite, więc prawdopodobnie powtarzasz parametr hd, jeden z hd=*, a drugi z hostowanymi domenami. Stwierdza także, że nie powinieneś polegać na tej optymalizacji interfejsu, aby kontrolować dostęp do aplikacji.

In the error stack trace client id is visible. Is that a security risk?

Brak. It is not a secret. Jest używany do celów debugowania.

How can this error be fixed?

Spróbuj zastąpić param hd zamiast po prostu dodać nowe. Zasadniczo powinno to zostać wykonane przy każdym paramencie twojej prośby. Również OAuth2 documentation stwierdza błąd invalid_request podczas powtarzania parametru.

Powiązane problemy