Аутентификация не удалась из-за: Отсутствует файл cookie с пользовательским запросом - PullRequest
0 голосов
/ 27 сентября 2019

Мы используем сервер hapi JS, который использует @hapi/bell со стратегией провайдера Azure для аутентификации пользователей на внутреннем сервере

По сути, скажем, что наш сервер работает на port225.5874.com, и тамэто маршрут входа в систему https://port225.5874.com/api/v2/user/sso.Вот наши настройки сервера маршрутов.

routes: {
            security: true,
            cors: {
                origin: [
                    `${configConst.client.host}:${configConst.client.hostport}`
                ],
                headers: ['Access-Control-Allow-Headers', 'Access-Control-Allow-Origin', 'Accept', 'Authorization', 'Content-Type', 'If-None-Match', 'Accept-language'],
                additionalHeaders: ['Access-Control-Allow-Headers: Origin, Content-Type, x-ms-request-id , Authorization'],
                credentials: true
            }
        }

Переход к этому маршруту непосредственно в браузере возвращает нам информацию от провайдера Azure.Однако, если мы пытаемся перейти к этому внутреннему маршруту от внешнего клиента (то есть, локального хоста), мы получим следующую ошибку CORS

Доступ к XMLHttpRequest в 'https://login.microsoftonline.com/... (перенаправлено из 'https://port225.5874.com/api/v2/user/sso') из источника' null 'было заблокировано политикой CORS: в запрошенном ресурсе отсутствует заголовок' Access-Control-Allow-Origin '.

Для нас это звучит как (мы можем ошибаться) Access-Control-Allow-Origin отсутствует в 'https://login.microsoftonline.com/..., но мы, очевидно, не можем его контролировать.

Кажется, что мы пропускаемчто-то в интерфейсе, но не уверен, что это будет. Есть идеи?

1 Ответ

1 голос
/ 27 сентября 2019

Внешний интерфейс должен использовать, например, MSAL.js для аутентификации пользователя и использовать аутентификацию JWT в конце.

Или вы должны как-то указать внешнему запросу не выполнять перенаправления иобнаружить ситуацию.

...