Устранение неполадок клиентов Identity Server Angular - PullRequest
0 голосов
/ 16 июня 2020

У меня есть реализация IdentityServer4 с клиентскими приложениями MVC и Angular. Оба работают нормально большую часть времени. Однако иногда клиентские приложения Angular застревают в каком-то виде перенаправления l oop, как я подозреваю, на основании отчетов. Подобно этому

https://www.scottbrady91.com/OpenID-Connect/Help-Im-Stuck-in-a-Redirect-Loop

Клиентские приложения используют неявный поток. Я не присутствую во время ошибок и не могу быть, так как это глобальная круглосуточная операция. Как лучше всего реализовать ведение журнала на уровне приложения Angular или устранить эту неполадку в целом?

1 Ответ

1 голос
/ 17 июня 2020

Хороший вопрос, поскольку решения OAuth включают несколько конечных точек, а надежность часто недооценивается. Это сложная задача - предоставить устойчивое решение, которое поддерживает быстрое разрешение проблем.

  • Сервер авторизации возвращает ответ об ошибке на перенаправление входа в полях error / error_description - в этом случае правильным поведением является то, что веб-интерфейс четко сообщает об ошибке и прекращает обработку

  • Обработка ответа на вход в систему через веб-интерфейс завершается ошибкой, например, при проверке подписи JWKS токена идентификатора - снова веб-интерфейс должен прекратить обработку и четко сообщить об ошибке

  • API возвращает постоянное сообщение 401 в веб-интерфейс, когда был предоставлен действительный токен - в этом случае API может быть настроен неправильно - сведения об ошибке 401 необходимо регистрировать - был ли токен не найден / истек срок действия / подпись ошибка проверки?

  • API возвращает неверный код состояния - например, доступ к reso urce denied должен быть возвращен в веб-интерфейс как 403, а техническая проблема должна быть возвращена как 500

  • Ошибка дешифрования cook ie - часто встречается в кластерных средах - звучит это не имеет отношения к вашему случаю, поскольку вы используете неявный поток, а ваш Angular клиент не использует cookie

ДЕЙСТВИЯ НАДЕЖНОСТИ ВО ВРЕМЯ РАЗРАБОТКИ

Я всегда рекомендую своим командам работать вот так, как только основы будут завершены (хотя успех у меня ограничен - смеется):

  • Протестируйте хотя бы пару сценариев сбоев ios
  • Просмотрите пути кода на предмет важного поведения - например, коды состояния API
  • Обеспечьте правильное отображение ошибок в пользовательских интерфейсах, чтобы ускорить решение проблем
  • Доставить solid ответы об ошибках API на веб-интерфейс, и записывать причины сбоев

РЕШЕНИЕ ДЛЯ СРАВНЕНИЯ ПРОТИВ

Эта моя запись может дать вам некоторые идеи относительно подхода. Шаги 10 и 17 касаются моделирования сбоев веб-интерфейса и API во время разработки и обеспечения желаемого поведения. Пример кода ниже:

...