Выполнение REACT -> Asp Net Проверка подлинности ядра с использованием Windows AD в интрасети - PullRequest
0 голосов
/ 08 февраля 2020

Обычно, когда я не могу найти ответ на свой вопрос в Интернете, я задаю неправильный вопрос. Пожалуйста, дайте мне знать, если я задаю неправильный вопрос.

У меня есть 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 автоматически аутентифицировалось с использованием учетных данных моего домена. Как в моем местном, так и в производственном окружении?

...