Apache настройка аутентификации в windows

Apache : setup basic auth with apache in windows





Authentication is any process by which you verify that someone is who they claim they are. Authorization is any process by which someone is allowed to be where they want to go or to have information that they want to have.


I will show here how to set up basic auth on the apache with windows.

Pre-requests 

Windows VPS


Apache server ( That’s it )
( In windows it might be difficult to setup the Apache alone. So instead use something ling xampp, wamp or laragon.)

RestClient

(  I personally use the postman, but you can use your preferable client) 

Windows VPS provider

Steps 

  • Enable the necessary modules in the Apache
  • Create the password file
  • Set the auth directives in the virtual host file.
  • Verify basic auth.

Enable the necessary modules in the Apache

Open the httpd.conf file in the apache’s conf folder.

httpd.conf file

httpd.conf file


Enable the necessary modules to make the basic auth working.

Necessary modules 

  • mod_auth_basic
  • mod_authn_file

Enable the necessary modules

Enable the necessary modules


Restart the apache to make the modules active.

Create Password File

You need to create a password file before you can use it for the basic auth. To create a password file you have to use the htpasswd.exe( it comes with the apache itself. You can find it inside the bin folder of the Apache server )

htpasswd.exe to create password file

Create a password using the htpasswd.exe

create basic auth passwrod file

create basic auth password file

verify that file has actually created.

the password file

the password file


Set the auth directives in the virtual host file

<VirtualHost *:80>
 ServerName xx.xx.xxx.xxx 
        ServerAlias alias 
        <location / >
  AuthType Basic
  AuthName "Restricted Routes"
  # (Following line optional)
  AuthBasicProvider file
  AuthUserFile "C:\auth\passwords"
  Require user mansih
 </location>
</VirtualHost>

Set the location to the URL you want to enable the basic auth on.

For example, if you want to secure the /login with basic auth then replace <location /> to <location /login>

After updating the virtual host file reload the apache to make the basic auth working.

Verify basic auth.

I am using the postman to verify the basic auth.

In case of valid username and password, you will get the 200 HTTP response.

postman 200 HTTP response

postman 200 HTTP response

In case of invalid username and/or password, you will get the 200 HTTP response.

postman 401 HTTP response

postman 401 HTTP response

Hope you find it useful. 
Have a nice Day !

Popular posts from this blog

GUI library for golang sciter This is the words from Sciter’s Web site, Sciter brings a stack of web technologies to desktop UI development. Web designers and developers can reuse their experience and expertise in creating modern looking desktop applications. Various GUI frameworks offer different UI declaration and styling languages, such as QML and  XAML (Microsoft WPF) . On the contrary, Sciter allows using time proven, robust, and flexible HTML and CSS for GUI definition and GPU accelerated rendering.   Before using sciter I already tried other alternatives but none of them was satisfactory as an example first i tried andlabs / ui  library   i already have written a post on it. You can read it on post gui programming with golang .  But this library is still under construction and has no support for production apps. Secondly, I go for electron but the problem was my simple calc like the app was of size 150mb….

Google blogger Ideas  I opened by blogger today, and..   I got this.  Google blogger Ideas  A panel suggesting a topic on which I can write my next blog. It’s fetching unanswered question from web according to your previous post and topics. It was something, I was really looking for, after all it takes time to finding subject on which to write next and still being in the same niche.  Awesome feature Blogger! 

Apache — это свободный веб-сервер. Основными достоинствами Apache считаются надёжность и гибкость конфигурации.

Для настройки аутентификации по паролю в Apache имеем веб-публикацию. В данной инструкции рассмотрим настройку на примере публикации 1С на Windows Server 2019.

Создание базы пользователей для аутентификации

    1. Заводим первого пользователя.
      C:\Apache24\bin\htpasswd.exe -c -B C:\Apache24\conf\.htpasswd user1

      Примечание: для последующих пользователей создаем без ключа -с. Ключ -с создает новый файл или перезаписывает его:

      C:\Apache24\bin\htpasswd.exe -B C:\Apache24\conf\.htpasswd user2

                       

      Создание файла .htaccess в папке с веб-публикацией

      Рисунок 1 – Создание пользователя.

    2. Создание файла .htaccess в папке с веб-публикацией.

Создаем файл .htaccess в папке C:\Apache24\htdocs\BASE со следующим содержимым:

AuthName "For registered members only"
AuthType Basic
Require valid-user
AuthUserFile C:\Apache24\conf\.htpasswd

Первая строка – наименование области безопасности, можно указать все что угодно.
Вторая строка – Включает базовую аутентификацию.
Третья строка – Указывает политику аутентификации, valid-user означает что доступ получит любой пользователь по созданному ранее логину и паролю.
Четверная строка – Указывает путь к файлу с логинами и паролями.

                                     

Файл .htaccess для веб-публикации 1С

Рисунок 2 – Файл .htaccess для веб-публикации 1С.

  1. Перезапускаем службу Apache2.4.

                             

    Перезапуск службы

    Рисунок 3 – Перезапуск службы.

    Проверка аутентификации в веб-публикации:

  2. Переходим через браузер в свою веб-публикацию, после чего видим запрос для ввода логина и пароля.

                               

    Проверка веб-публикации 1С через браузер

    Рисунок 4 – Проверка веб-публикации 1С через браузер.

Примечание

Вариант с аутентификацией через Apache может быть использован, если в вашей инфраструктуре используются рабочие станции на MacOS, т.к. тонкий клиент 1С:Предприятие не будет авторизовываться в веб-публикации через IIS с аутентификацией Windows.

On this page we will show you how to configure your Windows and Apache 2.4 environment in order to use NADI SSO.

Download mod_authn_ntlm

Please download latest module binary (.so file) from https://github.com/TQsoft-GmbH/mod_authn_ntlm/tree/master/bin and copy it to your Apache modules directory.

Load the module in Apache

Edit your httpd.conf to load the mod_auth_ntlm module during startup:

LoadModule auth_ntlm_module modules/mod_authn_ntlm.so

Configure NTLM (SSPI) authentication for your WordPress installation

Depending upon your Apache and WordPress environment you can enable this in your httpd.conf or .htaccess configuration file.

<Location /authenticate >
	AuthName "WordPress"
	AuthType SSPI
	NTLMAuth On
	NTLMAuthoritative On
	<RequireAll>
		<RequireAny>
			Require valid-user
			# ensure a non-existing user can't login
			# Require sspi-user domain\invalid
		</RequireAny>
	</RequireAll>
</Location>
					

After you have made the changes to the httpd.conf restart the Apache webserver.

Для публикации информационных баз 1С:Предприятие на платформе Windows часто используют альтернативу штатному IIS — веб сервер Apache, который, несмотря на ряд ограничений, тоже неплохо подходит для небольших и средних установок. Одним из очевидных преимуществ Apache является его кроссплатформенность, т.е. если вы умеете настраивать данный веб-сервер на одной платформе, то без особого труда сделаете это и на другой. В данной публикации мы расскажем вам как установить и настроить Apache для публикации баз с SSL-защитой на базе сертификатов Let’s Encrypt и дополнительной аутентификацией по паролю.

Онлайн-курс по устройству компьютерных сетей
На углубленном курсе «Архитектура современных компьютерных сетей» вы с нуля научитесь работать с Wireshark и «под микроскопом» изучите работу сетевых протоколов. На протяжении курса надо будет выполнить более пятидесяти лабораторных работ в Wireshark.

Установка сервера Apache для работы с платформой 1С:Предприятие в Windows

В настоящее время официальной бинарной сборки Apache для Windows не существует, взамен предлагается скачать одну из популярных сборок. В нашем случае мы будем использовать сборку от Apache Haus, вы можете использовать и другие сборки, но некоторые настройки в них могут оказаться отличными от приведенных в статье.

При скачивании будьте внимательны, вам необходимо скачать сборку той же разрядности, что и разрядность используемой вами платформы 1С:Предприятие, на сегодня особых причин использовать 32-разрядные системы нет, поэтому отдаем предпочтение 64-разрядной платформы.

Сборка распространяется в виде архива, поэтому просто распакуйте ее в корень диска C:, чтобы пусть к папке с веб-сервером получился C:\Apache24. Для установки сервера используйте команду (требуются права администратора):

C:\Apache24\bin\httpd.exe -k install

После чего вам потребуется разрешить доступ к веб-серверу по портам 80 и 443 в брандмауэре Windows, это можно сделать как в графической оснастке:

1cv8-Apache-SSL-Basic-001.png

Так и при помощи PowerShell:

New-NetFirewallRule -DisplayName "Apache 2.4" -Direction Inbound -Action Allow -EdgeTraversalPolicy Allow -Protocol TCP -LocalPort 80,443

После чего следует с другого узла сети набрать в адресной строке браузера IP-адрес или доменное имя вашего сервера и убедиться, что порты открыты и вы видите стандартную заглушку Apache.

Следующим шагом установим платформу 1С:Предприятие, вам потребуются только компоненты 1С:Предприятие 8 и Модули расширения веб-сервера:

1cv8-Apache-SSL-Basic-002.png

Отдельного лицензирования, за исключением некоторых случаев, данная установка не требует.

Публикация информационной базы 1С:Предприятие

Существует два способа публикации информационных баз, первый — более простой, при помощи Конфигуратора, но для его запуска вам потребуется клиентская лицензия 1С:Предпритяие. Какой-либо разницы между публикацией серверной или файловой базы на сервере Apache нет.

Для публикации загрузите нужную информационную базу в режиме Конфигуратора и перейдите в Администрирование — Публикация на веб-сервере. В поле Сервер — укажите Apache 2.4, поле Имя — это виртуальная директория публикации, которая потом станет частью URL, Каталог — физическое расположение публикации, которое должно находится внутри папки C:\Apache24\htdocs:

1cv8-Apache-SSL-Basic-003.png

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

После публикации будет предложено перезапустить веб-сервер, соглашаемся с этим предложением.

Альтернативой конфигуратору служит утилита webinst, которая располагается в директории bin установленной версии платформы, ее использование не требует наличия клиентской лицензии, для клиент-серверной базы команда публикации будет выглядеть так:

webinst -publish -apache24 -wsdir hrm-1 -dir "C:\Apache24\htdocs\hrm-1" -connstr "Srvr=SRV-1C;Ref=HRM-1;" -confpath "C:\Apache24\conf\httpd.conf"

Разберем ключи:

  • publish — публикация базы
  • apache24 — использование веб-сервера Apache 2.4
  • wsdir — виртуальный каталог, аналог поля Имя в конфигураторе, по сути, представляет имя публикации
  • dir — каталог с физическим расположением публикации, должен находится в C:\Apache24\htdocs
  • connstr — строка подключения к базе, в нашем случае это сервер SRV-1C и база HRM-1
  • confpath — путь к конфигурационному файлу Apache

Для файловой базы изменится только строка подключения к базе:

webinst -publish -apache24 -wsdir hrm-2 -dir "C:\Apache24\htdocs\hrm-2" -connstr "File=""C:\1C_Bases\HRM-2"";" -confpath "C:\Apache24\conf\httpd.conf"

После публикации перезапускаем веб-сервер командой:

C:\Apache24\bin\httpd.exe -k restart

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

Получение сертификата Let’s Encrypt и настройка защищенного соединения

Пожалуй, самая сложная часть нашей настройки, потому что при получении сертификата вам нужно быть предельно внимательным и правильно указать все параметры, в противном случае сертификат получить не удастся и все придется начинать заново. Для получения и обновления сертификатов мы будем использовать Windows ACME Simple (WACS), откуда нам потребуется скачать архив win-acme.vX.X.X.XXXX.x64.trimmed.zip. Распакуем его в С:\Apache24\letsencrypt.

Но не будем спешить получать сертификат, а сначала выполним некоторые подготовительные действия. Для работы с Let’s Encrypt нам понадобится доменное имя, которое должно указывать на внешний IP-адрес вашего веб-сервера. В нашем примере мы будем использовать служебный поддомен tech.host31.ru. Также помните, что изменения в системе DNS распространяются не мгновенно, а в течении некоторого времени, которое зависит от значения TTL-записи, поэтому вносите изменения в DNS заранее.

Убедившись, что ваша DNS-запись работает можно переходить к получению сертификата. Перейдем в С:\Apache24\letsencrypt и запустим и запустим wasc.exe от имени администратора. Это консольная текстовая утилита, работающая в диалоговом режиме. На каждом из этапов вам нужно либо указать выбранный пункт меню, либо ввести свое значение. Действие по умолчанию подсвечено цветным выделением и можно просто нажать Enter. Работу с утилитой начнем с пункта M: Create certificate (full options).

1cv8-Apache-SSL-Basic-004.png

Далее нажимаем Enter (так как по умолчанию подсвечен нужный нам пункт 2) и вводим имя домена или список доменов, разделенных запятой.

1cv8-Apache-SSL-Basic-005.png

Затем еще раз нажимаем Enter, следующий пункт меню спрашивает, как вы хотите получить сертификаты если у вас указано несколько доменов. В подавляющем большинстве случаев можно выбрать пункт по умолчанию 4: Single certificate, либо получить отдельные сертификаты на каждый домен или поддомен.

Следующим шагом выбираем 1: [http] Save verification files on (network) path и указываем корневую директорию веб-сервера C:\Apache24\htdocs.

На вопрос Copy default web.config before validation? (y/n*) отвечаем нет, это также действие по умолчанию (обозначено звездочкой, поэтому можно просто нажать Enter.

Потом выбираем 2: RSA key и 2: PEM encoded files (Apache, nginx, etc.), после чего указываем директорию для хранения сертификатов C:\Apache24\conf\ssl.

1cv8-Apache-SSL-Basic-006.png

Будет предложено установить пароль на закрытый ключ, выбираем 1: None. Затем вы повторно вернетесь в вышестоящее меню, но на этот раз действие по умолчанию 5: No (additional) store steps, поэтому просто нажимаем Enter.

Следующий пункт спрашивает, какие действия нужно выполнить по получению сертификата. Нам нужно обязательно перезапустить веб-сервер, поэтому указываем 2: Start external script or program. После чего у нас есть два пути: сразу указать команду на перезапуск в настройках или запускать пакетный файл с той же самой командой.

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

Выбрав вариант с пакетным файлом, создадим текстовый файл со следующим содержимым:

 C:\Apache24\bin\httpd.exe -k restart

И сохраним его под именем: C:\Apache24\letsencrypt\Scripts\ApacheRestart.bat и укажем это значение в поле File:, если вы решили обойтись тут без скрипта, то укажите путь к исполняемому файлу Apache: C:\Apache24\bin\httpd.exe, а затем в поле Parameters: укажите -k restart.

1cv8-Apache-SSL-Basic-007.png

Потом вы снова попадете в меню вышестоящего уровня, выходим из него через Enter и приступаем непосредственно к получению сертификата, после чего все нужные ключи и сертификаты окажутся в C:\Apache24\conf\ssl. Задание на продление будет добавлено в планировщик автоматически. В этом процессе не забываем указать действительный адрес почты, куда будут приходить сообщения при возникновении проблем.

Теперь перейдем к настройкам HTTPS на веб-сервере Apache, сборка от Apache Haus имеет собственные настройки, которые подключены из файла C:\Apache24\conf\extra\httpd-ahssl.conf, откроем его на редактирование.

Прежде всего обратим внимание на секцию <IfDefine ENABLE_TLS13>, так как в основном конфиге переменная установлена как Истина, то применяться будет именно этот блок настроек. Здесь указаны разрешенные протоколы и используемые шифры, настройки по умолчанию достаточно актуальны и можно использовать их без изменений. Либо установить собственные настройки, для их генерации можете использовать сайт moz://a SSL.

Затем спускаемся к секции <VirtualHost _default_:443> и меняем в ней следующие параметры:

ServerName tech.host31.ru
SSLCertificateFile "${SRVROOT}/conf/ssl/tech.host31.ru-crt.pem"
SSLCertificateKeyFile "${SRVROOT}/conf/ssl/tech.host31.ru-key.pem"

В опции ServerName указываете полное доменное имя сервера, ниже пути к файлам сертификата и закрытого ключа, обратите внимание, что они указываются от корневой папки веб-сервера, т.е. относительно C:\Apache24.

Сохраняем содержимое файла и выходим из него, после чего в основном конфигурационном файле C:\Apache24\conf\httpd.conf находим секцию с подключенными модулями и убеждаемся, что все указанные ниже строки раскомментированы:

LoadModule headers_module modules/mod_headers.so
LoadModule rewrite_module modules/mod_rewrite.so
LoadModule socache_shmcb_module modules/mod_socache_shmcb.so
LoadModule ssl_module modules/mod_ssl.so

Затем сразу после строки:

Listen 80

Добавим:

RewriteEngine On
RewriteCond %{REQUEST_URI} !^/\.well\-known/acme\-challenge/
RewriteRule ^(.*)$ https://%{HTTP_HOST}$1 [R=301,L]

Что обеспечит перенаправление всех HTTP запросов, кроме запросов на продление сертификата, на HTTPS порт.

Проверяем конфигурацию и, при отсутствии ошибок, перезапускаем веб-сервер:

C:\Apache24\bin\httpd.exe -t
C:\Apache24\bin\httpd.exe -k restart

Открываем нашу публикацию и убеждаемся, что она автоматически перенаправляется на защищенную версию. Как видим, в нашем случае используется протокол TLS v1.3, совершенная прямая секретность на базе эллиптической кривой Curve25519 и шифр ChaCha20-Poly1305.

1cv8-Apache-SSL-Basic-008.png

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

Настройка дополнительной аутентификации по паролю

У нас нет основания сомневаться во встроенном механизме аутентификации 1С:Предприятия, во всяком случае в онлайн-сервисах дополнительной аутентификации не предусмотрено, но есть слабое место — пользователи. Во многих базах могут использоваться простые пароли или не использоваться вообще, часть таких паролей могут использоваться скриптами и средствами автоматизации, поэтому взять и установить сразу всем сложные пароли будет не так-то просто.

Ситуация усугубляется, если администрирование 1С выполняют другие сотрудники, они вполне могут, пойдя на поводу пользователей снова установить им слабые пароли, что сильно снижает безопасность собственного механизма аутентификации. Поэтому мы пойдем другим путем и установим дополнительную аутентификацию на уровне веб-сервера, тут уже точно без нас никто пароль не изменит. Основная его цель — оградить собственный механизм аутентификации 1С от доступа всех желающих, которым достаточно будет просто узнать ссылку.

Веб-сервер Apache использует собственную базу пользователей, поэтому займемся ее созданием. Первого пользователя заводим командой:

htpasswd.exe -c -B C:\Apache24\conf\.htpasswd user_1c

Последующих:

htpasswd.exe -B C:\Apache24\conf\.htpasswd glbuch

Ключ предписывает создать указанный файл или перезаписать, если он существует, ключ -B указывает использовать для шифрования пароля более надежный, чем MD5 алгоритм bcrypt. После выполнения команды будет интерактивно запрошен пароль, он должен соответствовать всем требованиям сложности, в противном случае теряется весь смысл всей этой затеи.

Теперь создадим в директории с публикацией, в нашем случае C:\Apache24\htdocs\hrm-1 файл .htaccess со следующим содержимым:

AuthName "1C user only"
AuthType Basic
Require valid-user
AuthUserFile C:\Apache24\conf\.htpasswd

Первая строка задает наименование области безопасности, можете вписать туда все что угодно, вторая включает Basic-аутентификацию. Затем указывается политика аутентификации и путь к файлу паролей, valid-user обозначает что доступ получит любой аутентифицированный пользователь. Если нужно указать конкретные учетные записи, то строку нужно изменить следующим образом:

Require user user_1c glbuch

Сохраняем файл, перезапуск веб-сервера при этом не требуется.

Проверяем, если все сделано правильно — будет запрошен логин и пароль.

1cv8-Apache-SSL-Basic-009.png

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

1cv8-Apache-SSL-Basic-010.png

Запомнить пароль там не представляется возможным, и это может вызывать недовольство пользователей, поэтому укажем в свойствах базы дополнительные параметры запуска:

/WSN user_1c /WSP Pa$$w0rd_1

Где ключ /WSN определяет пользователя веб-сервера, а ключ /WSP — пароль.

1cv8-IIS-SSL-Basic-011.png

Теперь платформа будет проходить первый этап аутентификации автоматически.

Как видим, настроить безопасную публикацию информационных баз 1С:Предприятие на веб-сервере Apache в Windows достаточно не сложно. А какой именно из веб-серверов выбрать уже решать вам.

Онлайн-курс по устройству компьютерных сетей
На углубленном курсе «Архитектура современных компьютерных сетей» вы с нуля научитесь работать с Wireshark и «под микроскопом» изучите работу сетевых протоколов. На протяжении курса надо будет выполнить более пятидесяти лабораторных работ в Wireshark.

Для настройки доменной или
интегрированной доменной
аутентификации на веб-сервере Apache2 с использованием СУБД PostgreSQL
выполните шаги, указанные ниже.

Шаг 1. Установка и настройка Kerberos на
сервере СУБД

Для установки и настройки Kerberos на сервере СУБД PostgreSQL:

  1. Убедитесь, что установлены пакеты для протокола Kerberos:

    • krb5-user, krb5-config в Debian-подобных дистрибутивах;

    • krb5-workstation в RedHat-подобных дистрибутивах;

    • krb5-kinit, libkrb5 в ALT Linux.

Если пакеты не установлены, то установите
их:

    • Debian-подобные дистрибутивы:

sudo apt-get install krb5-user krb5-config

    • RedHat-подобные дистрибутивы:

sudo dnf install krb5-workstation

    • ALT Linux:

sudo apt-get install krb5-kinit libkrb5

  1. Добавьте типы шифрования в файле /etc/krb5.conf.d/crypto-policies
    в разделе [libdefaults]:

preferred_enctypes = RC4-HMAC DES-CBC-CRC DES3-CBC-SHA1 DES-CBC-MD5

  1. Убедитесь, что добавлена информация о домене в файле /etc/krb5.conf.
    Если информация не добавлена, то добавьте её, например:

[libdefaults]
  default_realm = DOMAIN.RU
[realms]
  DOMAIN.RU = {
    kdc = domain.server.name
    admin_server = domain.server.name
  }
[domain_realm]
  .domain.ru = DOMAIN.RU
  domain.ru = DOMAIN.RU

Для получения подробной информации обратитесь
к документации Kerberos.

  1. Убедитесь, что доменный пользователь доступен:

kinit <имя доменного пользователя>
***Введите пароль пользователя***
klist

При возникновении ошибки «kinit: Generic
preauthentication failure while getting initial credentials» откройте
файл /etc/krb5.conf и добавьте в разделе [libdefaults] следующие строки:

default_tkt_enctypes = rc4-hmac des-cbc-crc des-cbc-md5
default_tgs_enctypes = rc4-hmac des-cbc-crc des-cbc-md5

После выполнения действий будет установлен и настроен клиент Kerberos
на сервере СУБД PostgreSQL.

Шаг 2. Создание keytab-файлов и настройка служб HTTP, postgres

Keytab-файлы используются для аутентификации пользователей без ввода
пароля в Astra Linux Directory (ALD) в ОС Linux
или Active Directory (AD) в ОС Windows. В keytab-файле
хранятся имена принципалов Kerberos и соответствующие им зашифрованные
ключи, полученные на основе паролей Kerberos.

Astra Linux Directory

Для создания keytab-файлов и настройки служб HTTP, postgres при
использовании ALD в ОС Linux:

  1. Подготовьте отдельные серверы с доменом ALD:

    • на контроллере домена ALD;

    • на клиентах ALD — локальных компьютерах с BI-сервером, веб-сервером,
      СУБД PostgreSQL.

  1. Откройте и заполните файл /etc/hosts, расположенный на контроллере
    домена ALD и его клиентах. Например:

# IP-address          FQDN                      hostname
111.111.111.111       ald-server.domain.ald     ald-server
111.111.111.112       bi-server.domain.ald      bi-server
111.111.111.113       web-server.domain.ald     web-server
111.111.111.114       pgsql-server.domain.ald   pgsql-server

  1. Установите пакеты ald-client-common, fly-admin-ald-client,
    ald-admin на каждом клиенте ALD:

sudo apt install ald-client-common fly-admin-ald-client ald-admin

  1. Включите клиентов ALD в домен. Для этого выполните команды
    на каждом клиенте с указанием пароля доменного администратора:

    • BI-сервер:

sudo ald-client join ald-server.domain.ald --hostname bi-server.domain.ald

    • веб-сервер:

sudo ald-client join ald-server.domain.ald --hostname web-server.domain.ald

    • СУБД PostgreSQL:

sudo ald-client join ald-server.domain.ald --hostname pgsql-server.domain.ald

  1. Перезагрузите операционную систему на каждом клиенте ALD.

  2. Создайте службу HTTP для BI-сервера и postgres для СУБД
    на контроллере домена ALD:

ald-admin service-add HTTP/bi-server.domain.ald
ald-admin sgroup-svc-add HTTP/bi-server.domain.ald --sgroup=mac
ald-admin service-add postgres/pgsql-server.domain.ald
ald-admin sgroup-svc-add postgres/pgsql-server.domain.ald --sgroup=mac

  1. Создайте и заполните keytab-файлы на BI-сервере (HTTP) и
    СУБД PostgreSQL (postgres):

    • для службы HTTP:

keytab="/<путь до папки, в которой будет создан keytab-файл на BI-сервере>/keytab"
ald-client update-svc-keytab HTTP/bi-server.domain.ald --ktfile="$keytab"
chown apache $keytab
chmod 644 $keytab

    • для службы postgres:

keytab="/<путь до папки, в которой будет создан keytab-файл в СУБД>/keytab"
ald-client update-svc-keytab postgres/pgsql-server.domain.ald --ktfile="$keytab"
chown postgres "$keytab"
chmod 644 "$keytab"

  1. Укажите полный путь до keytab-файлов:

    • в конфигурационном файле
      BI-сервера fp10.x-biserver.conf
      в разделе <Location>:

GssapiCredStore keytab:<путь до keytab-файла для службы HTTP>

Расположение конфигурационного файла
BI-сервера в экземпляре Apache2 зависит от версии ОС Linux:

      • /etc/apache2-fp10.x/mods-available/fp10.x-biserver.conf
        в Debian-подобных дистрибутивах;

      • /etc/httpd-fp10.x/conf.d/fp10.x-biserver.conf в
        RedHat-подобных дистрибутивах;

      • /etc/httpd2-fp10.x/conf/mods-avaible/fp10.x-biserver.conf
        в ALT Linux.

    • в конфигурационном файле
      СУБД PostgreSQL /var/lib/pgpro/ent-13/data/postgresql.conf:

# GSSAPI using Kerberos
krb_server_keyfile = '<путь до keytab-файла для службы postgres>'
krb_caseins_users = on

  1. Перезапустите BI-сервер.

  2. Перезапустите сервер СУБД PostgreSQL.

После выполнения действий будут созданы keytab-файлы для работы
с Kerberos и настроены службы HTTP, postgres.

В ALD используется неограниченное делегирование.

Active Directory

Для создания keytab-файлов и настройки служб HTTP, postgres при
использовании AD в ОС Windows:

  1. Подготовьте отдельные серверы с доменом AD:

    • на контроллере домена AD;

    • на клиентах AD — локальных компьютерах с BI-сервером, веб-сервером, СУБД PostgreSQL.

  1. Создайте пользователей для служб
    HTTP и postgres с помощью утилиты Active Directory Users and Computers,
    расположенной на сервере с доменом AD. Пример созданного пользователя
    для службы HTTP:

Убедитесь, что для пользователя установлены
флажки «User cannot change password»,
«Password never expires».

  1. Создайте keytab-файлы и привяжите их к соответствующим созданным
    пользователям на BI-сервере (HTTP) и СУБД PostgreSQL (postgres)
    с помощью PowerShell:
    • для службы HTTP:

ktpass -princ HTTP/<имя принципиала> -mapuser <имя пользователя с указанием домена> -crypto ALL -ptype KRB5_NT_PRINCIPAL -pass <пароль пользователя> -out C:\<путь до папки, в которой будет создан keytab-файл на BI-сервере>\keytab.keytab

    • для службы postgres:

ktpass -princ postgres/<имя принципиала> -mapuser <имя пользователя с указанием домена> -crypto ALL -ptype KRB5_NT_PRINCIPAL -pass <пароль пользователя> -out C:\<путь до папки, в которой будет создан keytab-файл в СУБД>\keytab.keytab

Пример команды для службы HTTP:

ktpass -princ HTTP/sng-sso-bi.nvg.team@NVG.TEAM -mapuser sng-sso-bi_http@NVG.TEAM -crypto ALL -ptype KRB5_NT_PRINCIPAL -pass Qwerty1 -out C:\KeyTab\sng-sso-bi_http.keytab

  1. Проверьте связь пользователей со службами HTTP и postgres:

setspn -L <имя пользователя без указания домена>

Если связь установлена, то будет выдано
сообщение с указанием принципиала. Например:

Registered ServicePrincipalNames for CN=sng-sso-bi_http,OU=Kerberos,OU=NVG,DC=nvg,DC=team:
    HTTP/sng-sso-bi.nvg.team

  1. Укажите полный путь до keytab-файлов:

    • в конфигурационном файле
      BI-сервера fp10.x-biserver.conf
      в разделе <Location>:

GssapiCredStore keytab:<путь до keytab-файла для службы HTTP>

Расположение конфигурационного файла
BI-сервера в экземпляре Apache2 зависит от версии ОС Linux:

      • /etc/apache2-fp10.x/mods-available/fp10.x-biserver.conf
        в Debian-подобных дистрибутивах;

      • /etc/httpd-fp10.x/conf.d/fp10.x-biserver.conf в
        RedHat-подобных дистрибутивах;

      • /etc/httpd2-fp10.x/conf/mods-avaible/fp10.x-biserver.conf
        в ALT Linux.

    • в конфигурационном файле
      СУБД PostgreSQL /var/lib/pgpro/ent-13/data/postgresql.conf:

# GSSAPI using Kerberos	
krb_server_keyfile = '<путь до keytab-файла для службы postgres>'
krb_caseins_users = on

  1. Перезапустите
    BI-сервер.

  1. Перезапустите сервер СУБД PostgreSQL.

После выполнения действий будут созданы
keytab-файлы для работы с Kerberos и настроены службы HTTP, postgres.

В AD может использоваться неограниченное
и ограниченное делегирование:

  • для использования неограниченного
    делегирования установите переключатель «Trust
    this user for delegation to any service (Kerberos only)
    »
    на вкладке «Delegation»
    в свойствах пользователя;

  • для использования ограниченного
    делегирования:

    1. Установите переключатель «Trust this user for delegation
      to specified services only > Use any authentication protocol
      »
      на вкладке «Delegation»
      в свойствах пользователя.

    2. Включите опцию GssapiUseS4U2Proxy
      в конфигурационном файле BI-сервера fp10.x-biserver.conf
      в разделе <Location>:

Расположение конфигурационного файла
BI-сервера в экземпляре Apache2 зависит от версии ОС Linux:

      • /etc/apache2-fp10.x/mods-available/fp10.x-biserver.conf
        в Debian-подобных дистрибутивах;

      • /etc/httpd-fp10.x/conf.d/fp10.x-biserver.conf в
        RedHat-подобных дистрибутивах;

      • /etc/httpd2-fp10.x/conf/mods-avaible/fp10.x-biserver.conf
        в ALT Linux.

Шаг 3. Настройка BI-сервера

По умолчанию при установке BI-сервера
конфигурационные файлы экземпляра Apache2 располагаются в папке:

  • /etc/apache2-fp10.x в Debian-подобных
    дистрибутивах;

  • /etc/httpd-fp10.x в RedHat-подобных
    дистрибутивах;

  • /etc/httpd2-fp10.x в ALT Linux.

Для настройки BI-сервера:

  1. Установите Apache2 с учётом указанных модулей:

    • Debian-подобные дистрибутивы:

sudo apt install apache2 libsasl2-modules-gssapi-mit libapache2-mod-auth-gssapi

    • RedHat-подобные дистрибутивы:

sudo yum install httpd cyrus-sasl-gssapi mod_session mod_auth_gssapi

    • ALT Linux:

sudo apt-get install apache2-base apache2-httpd-worker apache2-mod_auth_gssapi libsasl2-plugin-gssapi

После выполнения действий экземпляр Apache2
будет установлен в папке:

    • /etc/apache2 в Debian-подобных дистрибутивах;

    • /etc/httpd в RedHat-подобных дистрибутивах;

    • /etc/httpd2 в ALT Linux.

  1. Скопируйте новые конфигурационные файлы экземпляра Apache2
    в экземпляры, созданные при установке BI-сервера:

    • Debian-подобные дистрибутивы:

cp /etc/apache2/mods-available/auth_gssapi.load /etc/apache2-fp10.x/mods-available/
cp /etc/apache2/mods-available/session.load /etc/apache2-fp10.x/mods-available/
cp /etc/apache2/mods-available/session_cookie.load /etc/apache2-fp10.x/mods-available/

    • RedHat-подобные дистрибутивы:

cp /etc/httpd/conf.modules.d/01-session.conf /etc/httpd-fp10.x/conf.modules.d/
cp /etc/httpd/conf.modules.d/10-auth_gssapi.conf /etc/httpd-fp10.x/conf.modules.d/

    • ALT Linux:

cp /etc/httpd2/conf/mods-available/auth_gssapi.load /etc/httpd2-fp10.x/conf/mods-available/
cp /etc/httpd2/conf/mods-available/session.load /etc/httpd2-fp10.x/conf/mods-available/
cp /etc/httpd2/conf/mods-available/session_cookie.load /etc/httpd2-fp10.x/conf/mods-available/

  1. Включите недостающие модули Apache2 в Debian-подобных дистрибутивах
    и ALT Linux.

a2enmod-fp10.x auth_gssapi
a2enmod-fp10.x authz_user
a2enmod-fp10.x authn_core
a2enmod-fp10.x headers
a2enmod-fp10.x session
a2enmod-fp10.x session_cookie
a2enmod-fp10.x rewrite
a2enmod-fp10.x setenvif

  1. Включите модуль mod_request.so в RedHat-подобных дистрибутивах.
    Раскомментируйте строку в файле /etc/httpd-fp10.x/conf.modules.d/00-base.conf:

LoadModule request_module modules/mod_request.so

  1. Измените конфигурационные файлы BI-сервера в экземпляре
    Apache2:

fp10.x-biserver.conf

envvars

  1. Настройте механизм CORS для повышения
    безопасности системы при обмене данными между разными доменами.
    Для этого задайте заголовки Origin, Access-Control-Allow-Origin, Access-Control-Allow-Methods,
    Access-Control-Allow-Headers в конце файла:

    • /etc/apache2-fp10.x/sites-available/webserver.conf
      в Debian-подобных дистрибутивах;

    • /etc/httpd-fp10.x/conf.d/webserver.conf
      в RedHat-подобных дистрибутивах;

    • /etc/httpd2-fp10.x/conf/sites-available/webserver.conf
      в ATL Linux.

<IfModule mod_headers.c>
    SetEnvIf Origin ^(<разрешённый домен>)$ CORS_ALLOW_ORIGIN=$1
    Header always set Access-Control-Allow-Origin %{CORS_ALLOW_ORIGIN}e env=CORS_ALLOW_ORIGIN
    Header merge Vary "Origin"
    Header always set Access-Control-Allow-Methods "POST, OPTIONS, <методы HTTP-запросов>"
    Header always set Access-Control-Allow-Headers "get-ppbi-time, content-type, soapaction, accept-language, cache-control, Authorization, <заголовки HTTP-запросов>"</IfModule>

RewriteEngine On
RewriteCond %{REQUEST_METHOD} OPTIONS
RewriteRule ^(.*)$ $1 [R=200,L]

В подстановках:

    • <разрешённый домен>.
      Укажите домен, для которого будет разрешено получение запросов,
      в виде регулярного выражения. Например, регулярное выражение
      для домена example.com:

https?://(?:.+\.)?example\.com(?::\d{1,5})?

Данная настройка включает использование
механизма CORS на родительском и дочерних ему доменах, а также динамически
устанавливается на текущий протокол, домен, порт без использования
правил перезаписи;

    • <методы HTTP-запросов>.
      Укажите дополнительные методы для доступа к ресурсу. Методы
      POST, OPTIONS являются обязательными;

    • <заголовки HTTP-запросов>.
      Укажите заголовки, которые используются ресурсом. Заголовки
      get-ppbi-time,content-type, soapaction, accept-language, cache-control,
      Authorization являются обязательными.

  1. Откройте на редактирование файл Metabases.xml,
    расположенный в папке /opt/foresight/fp10.x-biserver/etc,
    и выполните следующие действия:

    1. Задайте атрибут Authentication
      со значением:

      • 2. Интегрированная
        доменная аутентификация;

      • 4. Доменная
        аутентификация.

    1. Убедитесь, что в качестве значения параметра SERVER
      задано полное доменное DNS-имя сервера. Если задан IP-адрес,
      то замените его.

После выполнения действий BI-сервер будет
настроен.

Пример файла Metabases.xml:

<PP>
  <Metabases>
    <REPOSITORY_ID Name="REPOSITORY_ID" Authentication="4" Driver="DRIVER_ID" Package="STANDARDSECURITYPACKAGE" DebugMode="1">
      <LogonData DATABASE="DATABASE_NAME" SERVER="SERVER_DATABASE"/>
      <Credentials Authentication="4"/>
    </REPOSITORY_ID>
  </Metabases>
</PP>

Где:

    • REPOSITORY_ID.
      Уникальный идентификатор репозитория;

    • DRIVER_ID. Идентификатор
      драйвера СУБД у репозитория – POSTGRES;

    • DATABASE_NAME.
      Идентификатор базы данных, созданной при подготовке
      серверной части СУБД. Если репозиторий метаданных был
      создан на пользовательской
      схеме, то укажите идентификатор пользовательской схемы
      через точку после идентификатора базы данных. Например: DATABASE_NAME.SCHEMA_NAME;

    • SERVER_DATABASE.
      Полное доменное DNS-имя, под которым зарегистрирован сервер
      базы данных.

  1. Проверьте указание полного доменного DNS-имени сервера в
    файлах:

    • /opt/foresight/fp10.x-webserver/config/PP.xml;

    • /opt/foresight/fp10.x-webserver/r/config/config.json;

    • /etc/opt/foresight/fp10.x-webserver/envvars.

  1. Настройте механизм
    работы со службами каталогов.

  2. Перезапустите BI-сервер.

После выполнения действий BI-сервер будет настроен на работу с веб-сервером
Apache2.

Шаг 4. Настройка серверной части веб-приложения

Для настройки серверной
части веб-приложения:

  1. Откройте на редактирование файл PP.xml,
    расположенный в папке /opt/foresight/fp10.x-webserver/config,
    и укажите пустую строку в качестве значения атрибута url
    в разделе <proxy>.
    Например:

<?xml version="1.0" encoding="utf-8" ?>
<pp>
  <proxy url=""/> <!-- url задается в переменной окружения PP_SOM -->
  <metabase id="REPOSITORY_ID" />
  <ServiceCM ParamsUrl="http://web-server.domain.ald:8110/fp10.x/r/#/settings" />
  <modules commonModulesUrl="http://web-server.domain.ald:8110/fp10.x/r/#" />
</pp>

  1. Укажите полное доменное DNS-имя сервера, на котором расположен
    веб-сервер Apache2:

    1. Откройте на редактирование файл:

      • /etc/apache2-fp10.x-web/sites-available/webserver.conf
        в Debian-подобных дистрибутивах;

      • /etc/httpd-fp10.x-web/conf.d/00-virtualhost.conf
        в RedHat-подобных дистрибутивах;

      • /etc/httpd2-fp10.x-web/conf/sites-available/000-default.conf
        в ALT Linux.

    2. Укажите параметр ServerName
      в разделе <VirtualHost>. Например:

ServerName web-server.domain.ald

После выполнения действий серверная часть веб-приложения будет настроена.

Шаг 5. Подготовка сервера СУБД

Для подготовки сервера СУБД PostgreSQL:

  1. Убедитесь, что включена поддержка
    доменных групп. При поддержке доменных групп права доступа
    распространяются на входящих в неё пользователей СУБД без явного
    добавления каждой учётной записи в менеджере безопасности.

  1. Настройте аутентификацию по методу GSSAPI в соответствии
    с документацией PostgreSQL.

  2. Настройте использование полного доменного имени пользователя
    при необходимости. По умолчанию при добавлении доменного пользователя
    в СУБД PostgreSQL используется короткое имя пользователя без учёта
    домена. Для использования полного доменного имени задайте параметр
    USEUPN со значением true в файле /opt/foresight/fp10.x-biserver/etc/Metabases.xml:

<LogonData ... USEUPN="true"/>

Шаг 6. Авторизация доменного пользователя в системе

Для авторизации доменного пользователя в системе:

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

  2. Войдите
    в систему под доменным пользователем. В окне
    регистрации выберите репозиторий, введите доменное имя пользователя
    в формате «домен\имя»
    и пароль:

После выполнения действий будет выполнена доменная аутентификация
пользователя. При успешной авторизации откроется навигатор
объектов.

Понравилась статья? Поделить с друзьями:
0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
  • Сборка windows 10 для старого ноутбука
  • Github add ssh key windows
  • Windows themes installer на русском
  • Windows server 2012 r2 core rdp
  • Как удалить звук из видео на windows 10