Я работаю над проектом с несколькими приложениями уже несколько месяцев, используя службу приложений Azure для моей базы данных и ADD B2C для аутентификации. В этом проекте есть три приложения: приложение администратора WPF, клиентское веб-приложение и приложение WPF для сотрудников. Все три приложения используют управляемую клиентом проверку подлинности с моим клиентом B2C, получая токен от B2C и используя этот токен для входа в базу данных службы приложений. Все работало нормально, пока, казалось, в одночасье я больше не мог аутентифицироваться с помощью службы приложений. У меня нет проблем с отображением экрана входа в систему B2C и получением токена доступа в результате аутентификации, но когда я упаковываю токен в JObject и вызываю функцию 'mobileServiceClient.LoginAsync ()', все, что я получаю, - это 403 " запрещенная "ошибка.
Сначала я попытался проверить, пострадали ли все три проекта, и это так. Затем я попытался вернуться к своей последней фиксации. По-прежнему то же самое. Затем я попытался повторно клонировать, чтобы увидеть, есть ли какая-нибудь небольшая причуда с теми же результатами. Поскольку я знаю, что мои ресурсы Azure не достигли своих пределов, я затем попытался создать полностью отдельный проект WPF и сделал таблицу в службе приложений, которая разрешает анонимный доступ. После установки для параметра «Действия при отсутствии аутентификации» значения «Разрешить анонимный доступ» в службе приложений я смог без проблем читать и записывать в анонимную таблицу. Затем я попытался аутентифицировать этот новый проект так же, как и другие, только чтобы получить ту же ошибку 403. Проверив все это, я могу сказать, что почти полностью уверен, что с клиентскими приложениями проблем нет, и проблема должна быть на стороне сервера.
Больше всего меня сбивает с толку то, что кроме добавления новой таблицы в базу данных, я ничего не изменил на стороне сервера. Я проверил как клиент B2C, так и настройки аутентификации в службе приложений, но, похоже, ничто не отличается от того, что было до того, как я столкнулся с этой проблемой. Изучив немного больше службы приложений, я попытался найти некоторый JS-код, который обрабатывает аутентификацию, чтобы увидеть, могу ли я найти какую-либо полезную информацию, используя вывод консоли. Я не нашел никакого кода, но обнаружил, что консоль выводит PID[31680] Information Sending response: 403.76 Forbidden
всякий раз, когда клиент пытается аутентифицироваться.
Дополнительная информация, которая может помочь, заключается в том, что моя временная метка заголовка запроса верна. Из исследований я знаю, что Azure допускает отклонение входящих запросов от своего времени только на 15 минут.
Мы будем благодарны за любую помощь или предложения по решению этой проблемы! Спасибо!
client_id
на B2C, а для приложений WPF я даже не используюclient_secret
. - person Joshua Stevens   schedule 25.06.2019