- Created by Нестеров Михаил, last modified on Jul 08, 2026
You are viewing an old version of this page. View the current version.
Compare with Current View Page History
« Previous Version 2 Current »
Сервер OpenID Connect предназначен для аутентификации пользователей в веб-приложениях Rutoken KeyBox по протоколу OpenID Connect.
Является обязательным для инсталляций системы под управлением ОС Linux и дополнительным для инсталляций под управлением ОС Windows.
OpenID Connect (OIDC) – это протокол аутентификации и авторизации, разработанный на основе OAuth 2.0, который добавляет слой идентификации к протоколу OAuth. Он позволяет приложениям проверять идентичность пользователя и получать информацию о нем от провайдера идентификации (Identity Provider, IdP).
Выберите инструкцию в зависимости от ОС, где установлен сервер Rutoken KeyBox.
- Установите сервер OIDC из дополнительного пакета RutokenKeyBox.Oidc.Server-<номер версии>.x64.ru-ru.msi.
- Установите сервер Rutoken KeyBox и в Мастере установки сервера выберите способ контроля доступа Аутентификация OpenID Connect.
- Подготовьте сертификат подписи JWT-токенов по инструкции ниже.
- Настройте параметры взаимодействия Rutoken KeyBox с сервером OIDC в Мастере настройки в разделе Контроль доступа → OpenID Connect.
- Примените настройки на сервере Rutoken KeyBox.
Подготовка сертификата подписи 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 используется для инсталляций с одним сервером Rutoken KeyBox. Данные сервера OIDC хранятся в каталоге C:\inetpub\wwwroot\keybox\oidc\data.
Помимо SQLite, вы можете использовать базу данных Microsoft SQL или PostgreSQL. Чтобы настроить подключение к Microsoft SQL или PostgreSQL, внесите изменения в конфигурационный файл сервера OIDC appsettings.json вручную. Файл appsettings.json находится в каталоге C:\inetpub\wwwroot\keybox\oidc.
- Создайте базу данных в Microsoft SQL.
Откройте конфигурационный файл сервера OIDC appsettings.json и измените секции
defaultConnectionиprovider. В примере для подключения к базе данных используется SQL аутентификация.Пример подключения к 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" },Перезапустите пул приложения RutokenKeyBox OIDC, чтобы сохранить изменения.
- Откройте Диспетчер служб IIS (Internet Information Services Manager) и в левом меню выберите Пул приложений IIS (Application pools).
- Выберите приложение RutokenKeyBox OIDC и в правом меню нажмите Перезапуск (Recycle).
- Создайте базу данных в PostgreSQL.
Откройте конфигурационный файл сервера OIDC appsettings.json и измените секции
defaultConnectionиprovider. Если вы используете файл PGPASS, не включайте директивуPasswordв строку подключения.Пример подключения к PostgreSQL"connectionStrings": { "defaultConnection": "Host=172.17.0.11;Port=5432;Database=oidcdb;Username=servicepg;Password=p@ssw0rd" }, "database": { "provider": "pgsql" },Перезапустите пул приложения RutokenKeyBox OIDC, чтобы сохранить изменения.
- Откройте Диспетчер служб IIS (Internet Information Services Manager) и в левом меню выберите Пул приложений IIS (Application pools).
- Выберите приложение RutokenKeyBox OIDC и в правом меню нажмите Перезапуск (Recycle).
- Установите сервер Rutoken KeyBox. Сервер OIDC является частью дистрибутива Rutoken KeyBox и устанавливается вместе с сервером Rutoken KeyBox.
- Подготовьте сертификат подписи JWT-токенов по инструкции ниже.
- Настройте параметры взаимодействия Rutoken KeyBox с сервером OIDC в Мастере настройки в разделе Контроль доступа.
- Примените настройки на сервере Rutoken KeyBox.
Подготовка сертификата подписи JWT-токенов
В качестве сертификата подписи используйте сертификат и закрытый ключ, созданные для веб-сервера. Сертификат и закрытый ключ необходимо объединить в файл PFX, и поместить файл PFX в поддиректорию домашнего каталога пользователя, от имени которого запускается сервер OIDC.
По умолчанию сервер OIDC запускается от имени пользователя www-data. Поддиректория домашнего каталога пользователя www-data находится по пути /var/www/.dotnet/corefx/cryptography/x509stores/my/.
Чтобы подготовить сертификат подписи:
Создайте поддиректорию домашнего каталога пользователя, от имени которого запускается сервер 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 не существует, вы можете его создать или сменить пользователя, от имени которого запускаются сервисы Rutoken KeyBox.
sudo useradd -m -d /var/www -s /usr/sbin/nologin www-data sudo su -s /bin/sh www-data
Чтобы сменить пользователя, выполните следующую команду и укажите имя пользователя в директивеUser./etc/systemd/system/keybox-<имя сервиса>.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 используется для инсталляций с одним сервером Rutoken KeyBox. В этом случае данные сервера OIDC будут храниться в каталоге /opt/aktivco/keybox/oidc/data.
Помимо SQLite, вы можете использовать базу данных Microsoft SQL или PostgreSQL. Чтобы настроить подключение к Microsoft SQL или PostgreSQL, внесите изменения в конфигурационный файл сервера OIDC appsettings.json вручную. Файл appsettings.json находится в каталоге /opt/aktivco/keybox/oidc.
- Создайте базу данных в Microsoft SQL.
Откройте конфигурационный файл сервера OIDC appsettings.json и измените секции
defaultConnectionиprovider. В примере для подключения к базе данных используется SQL аутентификация.Пример подключения к 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" },Перезагрузите сервис OIDC, чтобы применить изменения.
sudo systemctl restart keybox-oidc.service
- Создайте базу данных в PostgreSQL.
Откройте конфигурационный файл сервера OIDC appsettings.json и измените секции
defaultConnectionиprovider. Если вы используете файл PGPASS, не включайте директивуPasswordв строку подключения.Пример подключения к PostgreSQL"connectionStrings": { "defaultConnection": "Host=172.17.0.11;Port=5432;Database=oidcdb;Username=servicepsql;Password=p@ssw0rd" }, "database": { "provider": "pgsql" },Перезагрузите сервис OIDC, чтобы применить изменения.
sudo systemctl restart keybox-oidc.service
- No labels