В течение последних нескольких лет постепенно произошел заметный сдвиг в требованиях компаний к совместной работе. Поначалу реализация SharePoint была сугубо внутренним делом, но со временем начинал действовать веб-сайт, использовавшийся в закрытой корпоративной или общедоступной сети. В процессе работы, которую я выполнял последние 10 лет, решение двигаться в этом направлении связано с вертикальной организацией бизнеса. Например, финансовые компании приобретали SharePoint исключительно для внутреннего применения, а многие некоммерческие и общественные организации реализовывали полные веб-сайты, доступные в распределенной закрытой сети или общедоступной сети через внутреннюю сеть.
Но на сегодня это не имеет значения. Главное требование — обмен между внешними участниками, перекрестное взаимодействие между одной или несколькими компаниями.
Проблема в выполнении этих требований заключается в том, что не каждая компания может успешно справиться с такой задачей из-за стоимости инфраструктуры и развертывания. Расширение внутренней среды SharePoint за пределы корпоративного брандмауэра становится очень сложным решением, особенно когда речь идет о проверке подлинности учетных записей.
Компания Microsoft подготовила рекомендации по настройке внешнего доступа с использованием таких аппаратных средств, как обратные прокси-серверы, в сочетании с Active Directory или службами федерации Active Directory (ADFS) в качестве хранилища данных для проверки подлинности. Эти рекомендации доступны по адресам:
- https://technet.microsoft.com/en-us/library/dn607304.aspx
- https://blogs.msdn.microsoft.com/sambetts/2014/04/02/setting-up-a-reverse-proxy-for-sharepoint-with-tmg-server/
Я убежденный сторонник данного подхода, но от этого задача проверки подлинности тех внешних пользователей, которые не относятся к компании, не становится легкой. Учитывая, что SharePoint 2016 — стандартный по идее вариант локальной установки, более современный подход заключается в использовании каких-нибудь «облачных» служб, которые стали частью гибридной организации и могут быть задействованы, если у вас имеется клиент Office 365.
Чтобы этого добиться, необходимо выполнить следующие действия:
- Убедитесь, что пулы веб-приложений SharePoint работают с учетной записью службы.
- Настройте SharePoint для проверки подлинности Kerberos.
- Создайте имена субъекта-службы (SPN) и настройте ограниченное делегирование Kerberos.
- Опубликуйте SharePoint через прокси-сервер приложений Azure AD.
- Настройте сопоставления для альтернативного доступа в SharePoint для внешнего URL-адреса.
- Назначьте пользователей в прокси-сервере приложений Azure AD.
Вам не нужно беспокоиться о запуске пулов приложений с учетной записью службы. Если среда SharePoint не настроена должным образом, то перед вами могут возникнуть более серьезные проблемы.
Проверка подлинности Kerberos состоит из двух частей. Первая, более легкая, — обеспечить использование Kerberos веб-приложением в SharePoint.
- Откройте сайт центра администрирования SharePoint 2013 или 2016.
- В разделе Application Management («Управление приложениями») щелкните Manage web applications («Управление веб-приложениями») и выберите сайт SharePoint (экран 1).
- Затем щелкните Authentication Providers («Поставщики проверки подлинности») на панели инструментов сверху.
- В окне Authentication Providers щелкните Default zone («Зона по умолчанию») для просмотра настроек.
- В окне Edit Authentication («Изменение параметров проверки подлинности») прокрутите вниз, чтобы увидеть типы проверки подлинности на основе утверждений и убедиться, что установлены флажки Enable Windows Authentication («Включить проверку подлинности Windows») и Integrated Windows Authentication («Встроенная проверка подлинности Windows»), а в раскрывающемся списке выбрано Negotiate (Kerberos), как показано на экране 2.
- Прокрутите окно до самого низа и нажмите кнопку Save («Сохранить»).
Экран 1. Выбор сайта SharePoint для настройки |
Экран 2. Настройка аутентификации веб-приложения |
Для добавления имен субъекта-службы необходимо выполнить следующую команду:
setspn -S http/{SharePoint Site URL} DOMAIN\User
И конечно, следует изменить URL-адрес в соответствии с URL-адресом SharePoint и настроить учетную запись таким образом, чтобы она была учетной записью службы в вашем домене и на серверах SharePoint. Вы можете проверить, добавлено ли имя субъекта-службы, выполнив команду setspn с параметром -l
setspn -l DOMAIN\User
После того как имя субъекта-службы добавлено и проверка выполнена, необходимо настроить делегирование в Active Directory. Это делается следующим образом:
- Выполните регистрацию как администратор домена на контроллере домена и откройте средство Active Directory Users and Computers («Пользователи и компьютеры Active Directory»).
- Найдите компьютер, на котором выполняется соединитель. В данном случае это тот же сервер SharePoint.
- Дважды щелкните на имени компьютера и перейдите на вкладку Delegation («Делегирование»).
- Убедитесь, что в настройках делегирования задано Trust this computer for delegation to the specified services only («Доверять компьютеру делегирование только для указанных служб») и выбран параметр Use any authentication protocol («Использовать любой протокол проверки подлинности»), как показано на экране 3.
- Теперь нужно добавить созданное ранее имя субъекта-службы для учетной записи, нажав кнопку Add («Добавить»), а затем Users or Computers («Пользователи или компьютеры») и воспользовавшись учетной записью службы.
- В результате должен появиться список имен субъекта-службы. Остается добавить лишь имя, заданное ранее, а затем выбрать элемент и нажать кнопку OK.
- Нажмите OK повторно, чтобы сохранить изменения.
Экран 3. Проверка настроек делегирования |
Осталось лишь задать значения на экранах прокси-сервера Azure Active Directory. Для этого:
- Выполните регистрацию на портале управления Azure https://manage.windowsazure.com и найдите своего клиента Azure AD.
- Выберите Applications («Приложения») и нажмите кнопку Add («Добавить») внизу.
- Выберите Publish and application that will be accessible from outside your network («Публикация приложения, которое будет доступно за пределами вашей сети»).
- В открывшемся диалоговом окне введите три параметра, как показано ниже, и щелкните флажок:
- Name («Имя») — любое значение;
- Internal URL («Внутренний URL-адрес») — внутренний URL-адрес HTTPS сайта SharePoint;
- Pre-Authentication Method («Способ предварительной проверки подлинности») — выберите Azure Active Directory.
После того как приложение опубликовано, перейдите на вкладку Configure («Настройка»).
- Прокрутите вниз до элемента Translate URL in Headers («Перевод веб-страниц в заголовках») и установите значение No.
- Измените Internal Authentication Method («Метод внутренней проверки подлинности») на Windows Integrated («Встроенная проверка подлинности Windows»). Если ваш клиент Azure AD использует в «облаке» иное имя субъекта-службы, нежели локально, то обновите Delegated Login Identity («Делегированная идентификация для входа»).
- Присвойте Internal Application SPN («Внутреннее имя субъекта-службы приложения») установленное ранее значение.
- Опубликуйте сайт.
На данном этапе нужно установить сопоставления для альтернативного доступа, чтобы пакет мог быть загружен. Имейте в виду: то, что вы выполнили все эти операции, не означает, что сторонний адрес электронной почты, с которым вы хотите организовать взаимодействие, будет принят. Возникает проблема выбора решения, обеспечивающего настоящее внешнее взаимодействие. К счастью, с помощью Azure Active Directory можно предоставить возможность регистрации и доступ другим пользователям. Это объясняется тем, что Azure Active Directory поддерживает такой тип проверки подлинности.
В подобной ситуации, если бы у меня появилась насущная необходимость в совместной работе с внешними пользователями, я бы всерьез рассматривал возможность применения Office 365. Все готово к работе, и вы можете взаимодействовать с внешними пользователями, зная, что они смогут настроить свои учетные записи для регистрации в службе Office 365 и получить доступ только к тому контенту или сайтам, к которым вы разрешили обращение.
Дополнительные сведения об общем доступе для внешних пользователей можно найти здесь:
- https://support.office.com/en-us/article/Share-sites-or-documents-with-people-outside-your-organization-80e49744-e30f-44db-8d51-16661b1d4232;
- https://support.office.com/en-us/article/Manage-external-sharing-for-your-SharePoint-Online-environment-C8A462EB-0723-4B0B-8D0A-70FEAFE4BE85.
В целом идея совместной работы за брандмауэром существовала давно, но ее реализация всегда была затруднена из-за проверки подлинности. Благодаря Office 365 этот пробел восполнен, и отныне метод должен стать стандартом.