Как устранить неполадки проблем встроенной аутентификации для ядра 2.1 asp.net - PullRequest
0 голосов
/ 28 сентября 2018

Как устранить неполадки с интегрированной аутентификацией для ядра asp.net 2.1

Запросы страниц к моему приложению asp.net core 2.1.x, опубликованные в IIS с использованием публикации Visual Studio 2017, возвращают ошибку HTTP 401.2 - неавторизовано.Приложение IIS Server настроено на использование только встроенной аутентификации. Фрагмент окна диспетчера IIS

В этом фрагменте веб-сайт по умолчанию / OrderTrackingService - это приложение, созданное и настроенное с помощью отладки Visual Studio.Dev.Portal / ordertracking - это то же приложение, которое опубликовано в профиле публикации Visual Studio.

Насколько я могу судить, конфигурация веб-приложения в IIS идентична.Когда я запускаю приложение в отладчике, используя IIS или IIS Express, входящие запросы имеют заголовок авторизации

No Proxy-Authorization Header is present.
Authorization Header (Negotiate) appears to contain a Kerberos ticket:

    60 81 84 06 06 2B 06 01 05 05 02 A0 7A 30 78 A0  `..+..... z0x 
    30 30 2E 06 0A 2B 06 01 04 01 82 37 02 02 0A 06  00...+....7....
    09 2A 86 48 82 F7 12 01 02 02 06 09 2A 86 48 86  .*H÷......*H
    F7 12 01 02 02 06 0A 2B 06 01 04 01 82 37 02 02  ÷......+....7..

Когда я запускаю приложение из IIS Direct (как настроено при публикациии настройки IIS) входящие запросы не имеют заголовка авторизации

No Authorization Header is present.

Может кто-нибудь сказать мне, как я могу определить, почему заголовки присутствуют в одном случае и отсутствуют в другом случае?

ОБНОВЛЕНИЕ: у меня есть некоторая дополнительная информация, которая может помочь с поиском проблемы.Когда запросы к веб-приложению, настроенные с помощью визуальной отладки в студии, передаются в IIS, возникает серия HTTP-запросов / ответов, в которых предоставляется заголовок аутентификации и устанавливается идентификатор пользователя.

- REQUEST / RESPONSE

GET http://.../ordertrackingservice HTTP/1.1
Host: ...
Connection: keep-alive
Cache-Control: max-age=0
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8
Accept-Encoding: gzip, deflate
Accept-Language: en-US,en;q=0.9
Cookie: .AspNet.Consent=yes

HTTP/1.1 401 Unauthorized
Cache-Control: private
Content-Type: text/html; charset=utf-8
Server: Microsoft-IIS/10.0
WWW-Authenticate: Negotiate
WWW-Authenticate: NTLM
X-Powered-By: ASP.NET
Date: Tue, 02 Oct 2018 16:32:36 GMT
Content-Length: 6138
Proxy-Support: Session-Based-Authentication

** - ЗАПРОС / ОТВЕТ **

GET http://.../ordertrackingservice HTTP/1.1
Host: ...
Connection: keep-alive
Cache-Control: max-age=0

Авторизация: переговоры YIGEBgYrB ....

Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8
Accept-Encoding: gzip, deflate
Accept-Language: en-US,en;q=0.9
Cookie: .AspNet.Consent=yes

HTTP/1.1 401 Unauthorized
Content-Type: text/html; charset=us-ascii
Server: Microsoft-HTTPAPI/2.0    

WWW-аутентификация: согласование oYIBUTCCAU2gAwoBAaEMBgorBgE ...

Date: Tue, 02 Oct 2018 16:32:36 GMT
Content-Length: 341
Proxy-Support: Session-Based-Authentication

** - ЗАПРОС / ОТВЕТ **

GET http://.../ordertrackingservice HTTP/1.1
Host: ...
Connection: keep-alive
Cache-Control: max-age=0
Authorization: Negotiate oXcwdaADCgEBoloEWE5UTE1TU1...
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8
Accept-Encoding: gzip, deflate
Accept-Language: en-US,en;q=0.9
Cookie: .AspNet.Consent=yes

HTTP/1.1 200 OK
Content-Type: text/html; charset=utf-8
Vary: Accept-Encoding
Server: Kestrel
Persistent-Auth: true
X-Powered-By: ASP.NET
WWW-Authenticate: Negotiate oRswGaADCgEAoxIEEAEAAAAVmumr4Z49ZwAAAAA=
Date: Tue, 02 Oct 2018 16:32:36 GMT
Content-Length: 6884

Когда на веб-сайт, созданный средством публикации Visual Studio, поступают запросы, такое согласование не происходит.Существует один запрос / ответ

GET http://...:8081/ordertracking HTTP/1.1
Host: ...:8081
Connection: keep-alive
Cache-Control: max-age=0
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8
Accept-Encoding: gzip, deflate
Accept-Language: en-US,en;q=0.9
Cookie: .AspNet.Consent=yes

HTTP/1.1 401 Unauthorized
Cache-Control: private
Content-Type: text/html; charset=utf-8
Server: Microsoft-IIS/10.0
WWW-Authenticate: Negotiate
WWW-Authenticate: NTLM
X-Powered-By: ASP.NET
Date: Tue, 02 Oct 2018 17:00:10 GMT
Content-Length: 5955
Proxy-Support: Session-Based-Authentication

Единственное, что отличается от конфигурации, насколько я могу судить, это то, что опубликованный веб-сайт имеет привязки к порту 8081. В обоих случаях выполняется один и тот же код.случаев, так что это должно быть какой-то проблемой конфигурации.

Дано: В рабочем случае первоначальный ответ исходит от IIS, второй ответ приходит от Microsoft-HTTPAPI / 2.0, а третий ответ приходит отПустельга.

Дополнительные вопросы: Является ли средний сервер частью основного модуля ASP.Net?Возможно ли, что в нем отсутствует какая-либо конфигурация конфигурации, которая не позволяет ему получить передачу обслуживания?(например, прослушивание только через порт 80 или что-то в этом роде)

1 Ответ

0 голосов
/ 05 октября 2018

Проблема, с которой я столкнулся, была вызвана групповой политикой, которая блокировала клиентов от проверки подлинности NTLM для хостов, а не в белом списке групповой политики.Я не уверен, почему аутентификация Kerberos не использовалась, но добавление хоста в белый список позволило продолжить согласование аутентификации.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...