Обычно, когда я не могу найти ответ на свой вопрос в Интернете, я задаю неправильный вопрос. Пожалуйста, дайте мне знать, если я задаю неправильный вопрос.
У меня есть React Web UI, который делает запросы к ASP Net Core Web Restful Api. Я реализовал Auth в ASP Net Core, как упоминалось в одном из моих предыдущих постов: Asp Net Core 3.1 Авторизация по пользовательским ролям
В пользовательском интерфейсе У меня есть простой javascript для получения данных:
import { handleResponse, handleError } from "./apiUtils";
const baseUrl = process.env.API_URL + "/interestingData";
export function getInterestingData() {
return fetch(baseUrl)
.then(handleResponse)
.catch(handleError);
}
Я получаю 401 с заголовками: WWW-Authenticate: Negotiate
и WWW-Authenticate: NTLM
, как и ожидалось. Но я действительно ожидал, что браузер автоматически обработает аутентификацию и предоставит свои учетные данные домена для API.
Когда я использую Почтальон для получения данных от API, мне нужно выбрать NTLM Authentication
и указать мое имя пользователя и пароль, прежде чем я могу получить данные. Когда я открываю Chrome и ввожу тот же URL, он просто работает без имени пользователя и пароля. Полагаю, я ожидал, что мое приложение реакции будет вести себя так же, поскольку я получаю доступ к своему интерфейсу через тот же браузер.
Еще более неожиданным является то, что, когда у меня открыт Fiddler, аутентификация происходит автоматически -magically. Я вижу заголовок 401 WWW-Authenticate
, но похоже, что переговоры увенчались успехом.
Мой вопрос: если это возможно, как я могу сделать так, чтобы приложение React автоматически аутентифицировалось с использованием учетных данных моего домена. Как в моем местном, так и в производственном окружении?