Данный компонент предназначен для аутентификации пользователей в web-приложениях системы (ManagementConsole, SelfService и WebApi) по протоколу OpenID Connect. Он является обязательным для инсталляций системы под управлением ОС Linux и опциональным для инсталляций под управлением ОС Windows.

OpenID Connect (OIDC) - это протокол аутентификации и авторизации, разработанный на основе OAuth 2.0, который добавляет слой идентификации к протоколу OAuth. Он позволяет приложениям проверять идентичность пользователя и получать информацию о нем от провайдера идентификации (Identity Provider, IdP).

Установка сервера OIDC

После установки серверу OIDC потребуется сертификат подписи JWT-токенов, а также настройка конфигурационного файла appsettings.json, который находится по следующему пути:

Настройка сервера OIDC

В качестве сертификата подписи можно использовать SSL/TLS-сертификат, например, используемый для работы веб-сервера RutokenKeyBox. 

Сертификат подписи JWT-токенов в ОС Windows

В ОС Windows сертификат подписи должен находиться в хранилище Локальный компьютер - Личное, и IIS должен иметь полный доступ к закрытому ключу этого сертификата, для этого:

Сертификат подписи JWT-токенов в ОС Linux

В ОС Linux сертификат использует пользователь, от имени которого запускается сервер OIDC (по умолчанию www-data).

Сертификат вместе с закрытым ключом должен находиться в файле формата .pfx в поддиректории домашнего каталога данного пользователя ~/.dotnet/corefx/cryptography/x509stores/my/ и должен быть освобожден от пароля на файл.

Для создания такого файла используйте сертификат и закрытый ключ, созданные на этапе настройки веб-сервера NGINX или Apache, или создайте их заново с помощью следующих команд (необходимо подставить имя импортированного pfx файла вместо PFXFILE.pfx):

mkdir -p ~/.dotnet/corefx/cryptography/x509stores/my/
openssl pkcs12 -in PFXFILE.pfx -chain -nokeys | sed -ne '/-BEGIN CERTIFICATE/,/END CERTIFICATE/p' > SSL.crt
openssl pkcs12 -in PFXFILE.pfx -nocerts -out SSLencrypted.key
openssl rsa -in SSLencrypted.key -out SSL.key
rm -f SSLencrypted.key
openssl pkcs12 -export -out ~/.dotnet/corefx/cryptography/x509stores/my/SSL.pfx -inkey SSL.key -in SSL.crt

Настройка конфигурационного файла appsettings.json

Настройка конфигурационного файла OIDC сервера производится через Мастер настройки Rutoken KeyBox в разделах Контроль доступа (ОС Linux), Контроль доступа - OpenID Connect (ОС Windows). 

После прохождения Мастера настройки создается файл настроек OIDC сервера appsettings.json с заполненными необходимыми для работы системы секциями и параметрами:

Windows - используется, если сервер системы развернут на доменной рабочей станции под управлением ОС Windows. 
WindowsCustom - используется, если сервер развернут вне домена или если пользователи домена Active Directory располагаются за пределами того домена, в котором развернут сервер системы, и с которым нет трастовых отношений. 

По умолчанию сервер OIDC для своей работы использует локальную базу данных SQLite. В этом случае данные сервера OIDC будут храниться в каталоге /opt/rutoken/cm/oidc/dataЕсли требуется использовать базу данных Microsoft SQL или PostgreSQL, измените секции "defaultConnection" и "provider".

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