Как отладить проблему JWT в .Net Framework AuthorizeAttribute - PullRequest
0 голосов
/ 21 апреля 2019

У меня есть приложение Asp.Net 4.6 webAPI, работающее с JWT. Я использую поток кода авторизации Okta / token exchange для получения токена. Затем я использую токен во всех моих запросах. Все работает нормально при использовании моей конечной точки разработки Okta, но когда я использую нашу производственную конечную точку Okta, аутентифицированные запросы не выполняются. Авторизация и обмен кодами / токенами работает нормально, но когда я запрашиваю данные на свой контроллер WebApi с атрибутом [Authorize], запрос, похоже, ничего не возвращает, даже ошибку. Фактически запрос в chrome показывает, что запрос никогда не заканчивается. (Хотя предварительный запрос OPTIONS действительно получает 200). Я также вижу запрос в Wireshark, и ответ никогда не отправляется.

Наиболее очевидный ответ: у меня есть проблема с конфигурацией в моем коде или в рабочей точке Okta, из-за которой для атрибута Authorize молча происходит сбой. Но моя главная проблема в том, что я не могу найти способ отладить его. Я попытался унаследовать от атрибута Authorize и переопределить все методы, чтобы посмотреть, смогу ли я что-либо определить, поместив точки останова в эти методы, но методы OnAuthorization, IsAuthorized, HandleUnauthorizedRequest и т. Д., Кажется, никогда не вызывают.

  1. Какой там лучший способ отладки? Можно ли подключиться к событию Asp.Net, чтобы увидеть, что отправляется / возвращается в Okta для проверки входящего токена?
  2. Почему он молча терпит неудачу? Это похоже на ошибку, которая по замыслу должна пузыриться.

1 Ответ

0 голосов
/ 21 апреля 2019

Скорее всего, это потому, что ваша продукция не имеет управления доступом API. В вашем превью орг. у вас есть API AM бесплатно, поэтому он работает. В вашем производстве орг. ты должен купить эту функцию. Чтобы проверить на каждой организации. зайдите в панель управления Okta> безопасность> API. Вы можете увидеть вкладку «Серверы авторизации» для одного, но не для другого.

Другая проблема может быть, если ваша проблема связана с вашей организацией. URL, то Okta не выдает ключ для токена, не может быть проверен локально.

Трудно сказать, не глядя на вашу конфигурацию, но два приведенных выше сценария очень распространены

...