Сервер OpenID Connect
Сервер OpenID Connect предназначен для аутентификации пользователей в веб-приложениях Indeed CM по протоколу OpenID Connect.
Является обязательным для инсталляций системы под управлением ОС Linux и дополнительным для инсталляций под управлением ОС Windows. Установите сервер OpenID Connect до установки сервера Indeed CM.
OpenID Connect (OIDC) – это протокол аутентификации и авторизации, разработанный на основе OAuth 2.0, который добавляет слой идентификации к протоколу OAuth. Он позволяет приложениям проверять идентичность пользователя и получать информацию о нем от провайдера идентификации (Identity Provider, IdP).
Выберите инструкцию в зависимости от ОС рабочей станции, где вы планируете установить сервер Indeed CM.
- ОС Windows
- ОС Linux
- Установите сервер OIDC из дополнительного пакета IndeedCM.Oidc.Server-<номер версии>.x64.ru-ru.msi.
- Установите сервер Indeed CM и в Мастере установки сервера выберите способ контроля доступа Аутентификация OpenID Connect.
- Подготовьте сертификат подписи JWT-токенов по инструкции ниже.
- Настройте параметры взаимодействия Indeed CM с сервером OIDC в Мастере настройки в разделе Контроль доступа → OpenID Connect.
- Примените настройки на сервере Indeed CM.
Подготовка сертификата подписи JWT-токенов
В качестве сертификата подписи используйте сертификат и закрытый ключ, созданные для веб-сервера.
Чтобы подготовить сертификат подписи:
- Поместите сертификат подписи в хранилище Локальный компьютер – Личное.
- Предоставьте IIS полный доступ к закрытому ключу сертификата подписи.
- Перейдите в оснастку Сертификаты (Certificates) компьютера, на котором установлен сервер OIDC.
- Нажмите правой кнопкой мыши на сертификат, выберите Все задачи (All tasks) → Управление закрытыми ключами... (Manage Private Keys...) и нажмите Добавить (Add).
- В меню Размещение (Location) укажите сервер.
- В поле Введите имена выбранных объектов (Enter the object names to select) укажите локальную группу IIS_IUSRS, нажмите Проверить имена (Check Names) и ОК.
- Выставите права Полный доступ (Full Control) и Чтение (Read).
- Нажмите Применить (Apply).
Изменение настроек базы данных
По умолчанию сервер OIDC использует локальную базу данных SQLite. База данных SQLite используется для инсталляций с одним сервером Indeed CM. Данные сервера OIDC хранятся в каталоге C:\inetpub\wwwroot\cm\oidc\data.
Помимо SQLite, вы можете использовать базу данных Microsoft SQL или PostgreSQL. Чтобы настроить подключение к Microsoft SQL или PostgreSQL, внесите изменения в конфигурационный файл сервера OIDC appsettings.json вручную. Файл appsettings.json находится по пути C:\inetpub\wwwroot\cm\oidc.
- Microsoft SQL
- PostgreSQL
Создайте базу данных в Microsoft SQL.
Откройте конфигурационный файл сервера OIDC appsettings.json и измените секции
defaultConnectionиprovider. В примере для подключения к базе данных используется SQL аутентификация."defaultConnection": "Data Source=MSSQL\SQLEXPRESS;Initial Catalog=oidcdb;Persist Security Info=True;User ID=servicesql;Password=p@ssw0rd;TrustServerCertificate=True""provider": "mssql"
Перезапустите пул приложения IndeedCM OIDC, чтобы сохранить изменения.
- Откройте Диспетчер служб IIS (Internet Information Services Manager) и в левом меню выберите Пул приложений IIS (Application pools).
- Выберите приложение IndeedCM OIDC и в правом меню нажмите Перезапуск (Recycle).
Пример параметров подключения к Microsoft SQL
"connectionStrings": {
"defaultConnection": "Data Source=MSSQL\SQLEXPRESS;Initial Catalog=oidcdb;Persist Security Info=True;User ID=servicesql;Password=p@ssw0rd;TrustServerCertificate=True"
},
"database": {
"provider": "mssql"
},
Создайте базу данных в PostgreSQL.
Откройте конфигурационный файл сервера OIDC appsettings.json и измените секции
defaultConnectionиprovider. Если вы используете файл PGPASS, не включайте директивуPasswordв строку подключения."defaultConnection": "Host=172.17.0.11;Port=5432;Database=oidcdb;Username=servicepg;Password=p@ssw0rd""provider": "pgsql"
Перезапустите пул приложения IndeedCM OIDC, чтобы сохранить изменения.
- Откройте Диспетчер служб IIS (Internet Information Services Manager) и в левом меню выберите Пул приложений IIS (Application pools).
- Выберите приложение IndeedCM OIDC и в правом меню нажмите Перезапуск (Recycle).
Пример параметров подключения к PostgreSQL
"connectionStrings": {
"defaultConnection": "Host=172.17.0.11;Port=5432;Database=oidcdb;Username=servicepg;Password=p@ssw0rd"
},
"database": {
"provider": "pgsql"
},
- Установите сервер Indeed CM. Сервер OIDC является частью дистрибутива Indeed CM и устанавливается вместе с сервером Indeed CM.
- Подготовьте сертификат подписи JWT-токенов по инструкции ниже.
- Настройте параметры взаимодействия Indeed CM с сервером OIDC в Мастере настройки в разделе Контроль доступа.
- Примените настройки на сервере Indeed CM.
Подготовка сертификата подписи JWT-токенов
В качестве сертификата подписи используйте сертификат и закрытый ключ, созданные для веб-сервера.
Чтобы подготовить сертификат подписи:
Создайте поддиректорию в домашнем каталоге пользователя, от имени которого запускается сервер OIDC (по умолчанию – www-data).
sudo mkdir -p /var/www/.dotnet/corefx/cryptography/x509stores/my/Как проверить наличие пользователя www-data
Чтобы проверить наличие пользователя www-data, выполните:
/etc/passwd | grep www-dataПример вывода, если пользователь www-data существуетwww-data:x:33:33:www-data:/var/www:/usr/sbin/nologinЕсли пользователя www-data не существует, вы можете его создать или сменить пользователя, от имени которого запускаются сервисы Indeed CM.
Чтобы создать пользователя www-data и войти от его имени, выполните:
sudo useradd -m -d /var/www -s /usr/sbin/nologin www-data
sudo su -s /bin/sh www-dataЧтобы сменить пользователя, выполните следующую команду и укажите имя пользователя в директиве
User./etc/systemd/system/cm-<имя сервиса>.service
Объедините файл сертификата и файл ключа в файл PFX. Поместите файл PFX в поддиректорию домашнего каталога пользователя.
предупреждениеПри выполнении команды утилита openssl предлагает установить пароль для файла PFX. Оставьте файл PFX без пароля: два раза нажмите Enter.
sudo openssl pkcs12 -export -out /var/www/.dotnet/corefx/cryptography/x509stores/my/PFXFILE.pfx -inkey SSL.key -in SSL.crtНастройте право доступа 600 к файлу PFX.
sudo chmod 600 /var/www/.dotnet/corefx/cryptography/x509stores/my/PFXFILE.pfxПолучите отпечаток сертификата подписи.
sudo openssl x509 -fingerprint -in SSL.crt -noout | tr -d ':'Пример вывода отпечатка сертификатаSHA1 Fingerprint=ADB613EC1A1692310D83C81F269C098A3DBD4EE0
Изменение настроек базы данных
По умолчанию сервер OIDC использует локальную базу данных SQLite. База данных SQLite используется для инсталляций с одним сервером Indeed CM. В этом случае данные сервера OIDC сохраняются в каталоге /opt/indeed/cm/oidc/data.
Помимо SQLite, вы можете использовать базу данных Microsoft SQL или PostgreSQL. Чтобы настроить подключение к Microsoft SQL или PostgreSQL, внесите изменения в конфигурационный файл сервера OIDC appsettings.json вручную. Файл appsettings.json находится по пути */opt/indeed/cm/oidc.
- Microsoft SQL
- PostgreSQL
Создайте базу данных в Microsoft SQL.
Откройте конфигурационный файл сервера OIDC appsettings.json и измените секции
defaultConnectionиprovider. В примере для подключения к базе данных используется SQL аутентификация."defaultConnection": "Data Source=MSSQL\SQLEXPRESS;Initial Catalog=oidcdb;Persist Security Info=True;User ID=servicesql;Password=p@ssw0rd;TrustServerCertificate=True""provider": "mssql"
Перезагрузите сервис OIDC, чтобы применить изменения.
sudo systemctl restart cm-oidc.service
Пример параметров подключения к Microsoft SQL
"connectionStrings": {
"defaultConnection": "Data Source=MSSQL\SQLEXPRESS;Initial Catalog=oidcdb;Persist Security Info=True;User ID=servicesql;Password=p@ssw0rd;TrustServerCertificate=True"
},
"database": {
"provider": "mssql"
},
Создайте базу данных в PostgreSQL.
Откройте конфигурационный файл сервера OIDC appsettings.json и измените секции
defaultConnectionиprovider. Если вы используете файл PGPASS, не включайте директивуPasswordв строку подключения."defaultConnection": "Host=172.17.0.11;Port=5432;Database=oidcdb;Username=servicepg;Password=p@ssw0rd""provider": "pgsql"
Перезагрузите сервис OIDC, чтобы применить изменения.
sudo systemctl restart cm-oidc.service
Пример параметров подключения к PostgreSQL
"connectionStrings": {
"defaultConnection": "Host=172.17.0.11;Port=5432;Database=oidcdb;Username=servicepsql;Password=p@ssw0rd"
},
"database": {
"provider": "pgsql"
},