SSO с аутентификацией Windows через несколько REST-API?(Керберос, двойной прыжок) - PullRequest
0 голосов
/ 18 сентября 2019

У меня следующий сценарий: (клиент / браузер) => (веб-служба / веб-API) => (SharePoint REST-Api).По сути, я хочу добиться того, чтобы промежуточное приложение (WebService / Web API) выступало в качестве фасада перед SharePoint-REST-API, чтобы упростить разработку для любого, кому необходимо взаимодействовать с нашим SharePoint-приложением.(По сути, мы заключаем несколько вызовов SharePoint-запросов в один вызов в Web API / Facade).

Теперь проблема в том, что я также хочу иметь возможность отправлять зарегистрированного пользователя Windows (AD-пользователя) от клиента к веб-службе, а затем веб-служба должна действовать от имени этого пользователя Windows и выполнять любые действия, необходимые в SharePoint REST-API (это должно гарантировать, что на самом деле установлены разрешения для файлов и т. д.).на основе аутентифицированного пользователя).

Мы до сих пор пытались настроить веб-службу на одном сервере и SharePoint на другом сервере ... а затем мы попытались настроить аутентификацию с использованием Kerberos и делегирования,но мы не могли заставить это работать.Основываясь на информации, которую я предоставил, вы, ребята, думаете, что такой «двойной прыжок» сработает, если нам удастся правильно настроить Kerberos?

Еще одна мысль, которая меня поразила, - возможно, нам не нужен хоствеб-сервис и приложения SharePoint на двух разных серверах, но мы могли бы разместить их на одном сервере в пределах одного IIS-сервера с двумя сайтами.Требуется ли для этого Kerberos быть настроенным с двойным прыжком?Или же «прыжок» считается только после того, как билет действительно покидает один сервер другому… потому что в случае, описанном здесь, запрос от веб-службы к SharePoint-REST-API никогда не покинет реальный сервер, но он может пересечьдомены (как в веб-доменах .. не AD-домены).Может ли это сработать, вместо того чтобы хлопотать с двойным прыжком Kerberos, именами SPN, а что нет ..?

1 Ответ

0 голосов
/ 19 сентября 2019

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

При аутентификации на сервере IIS с помощьюИнтегрированная аутентификация, которая использует ваш первый «прыжок».Когда IIS пытается получить доступ к сетевому устройству, это будет двойной или второй переход, который не разрешен.iis не передаст эти учетные данные следующему сетевому устройству.

, если вы используете анонимное включение и олицетворение, эта проблема не возникнет.

для настройки аутентификации Kerberos в iis вы можете выполнить следующие шаги:

1) открыть диспетчер iis и выбрать сайт.

2) выбрать функцию аутентификации на средней панели.

3) включить аутентификацию Windows и отключить анонимность.

4) При проверке подлинности Windows нажмите «Поставщики» на панели действий.

5) установите поставщика следующим образом:

Переговоры

NTLM

enter image description here

сохранить изменения.

6) вернуться и выбрать редактор конфигурации.

из выпадающего спискавыберите system.webServer / security / authentication / windowsAuthentication.

«useAppPoolCredentials», установленный в true.

, «useKernelMode» в «True» и сохраните настройки.

7)перезапустите iis.

8) Настройте имена участников-служб

, откройте командную строку как администратор и выполните команду ниже, чтобы проверить имя машины:

hostname

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

setspn -a HOST/${FQDN_HOST} ${MACHINE_NAME}
setspn -a http/${FQDN_HOST} ${MACHINE_NAME}

9) после этого установите идентификатор пула приложений для пользовательской учетной записи и задайте имя пользователя и пароль.

Вы можете обратиться к этой статье ниже для более подробной информации.Информация d:

https://weblogs.asp.net/owscott/iis-windows-authentication-and-the-double-hop-issue

https://active -directory-wp.com / docs / Networking / Single_Sign_On / SSO_with_IIS_on_Windows.html

https://techcommunity.microsoft.com/t5/IIS-Support-Blog/Setting-up-Kerberos-Authentication-for-a-Website-in-IIS/ba-p/324644

...