Versions Compared
Key
- This line was added.
- This line was removed.
- Formatting was changed.
Данный компонент предназначен для аутентификации пользователей в web-приложениях системы по протоколу OpenID Connect и является обязательным для инсталляций системы под управлением ОС Linux и дополнительным для инсталляций под управлением ОС Windows.
Info |
---|
OpenID Connect (OIDC) - это протокол аутентификации и авторизации, разработанный на основе OAuth 2.0, который добавляет слой идентификации к протоколу OAuth. Он позволяет приложениям проверять идентичность пользователя и получать информацию о нем от провайдера идентификации (Identity Provider, IdP). |
Установка сервера OIDC
- На ОС Windows сервер OIDC устанавливается из дополнительного пакета IndeedCM.Oidc.Server-<номер версии>.x64.ru-ru.msi.
- На ОС Linux сервер OIDC устанавливается вместе с сервером системы, являясь частью дистрибутива.
Настройка сервера OIDC
Отредактируйте файл appsettings.json, который находится по следующему пути:
- Для ОС Windows: C:\inetpub\wwwroot\cm\oidc\appsettings.json
- Для ОС Linux: /opt/indeed/cm/oidc/appsettings.json
Откройте файл appsettings.json в текстовом редакторе, запущенном от имени Администратора:
- По умолчанию, после установки, подключение к базе данных сервера OIDC настроено на использование SQLite. В этом случае данные сервера OIDC будут храниться локально, в каталоге /opt/indeed/cm/oidc/data. Если требуется использовать базу данных Microsoft SQL или PostgreSQL, заполните секции "defaultConnection" и "provider".
- SQLite. Внесение изменений не требуется. Секции имеют следующие значения:
- "defaultConnection": "Filename=./data/oidc-server.sqlite3"
- "provider": "sqlite"
- Microsoft SQL. Для использования Microsoft SQL, создайте базу данных и настройте подключение к ней (в примере, для подключения к базе данных используется SQL аутентификация):
- "defaultConnection": "Data Source=172.17.0.10;Initial Catalog=oidcdb;Persist Security Info=True;User ID=servicesql;Password=p@ssw0rd"
- "provider": "mssql"
- PostgreSQL. Для использования PostgreSQL, создайте базу данных и настройте подключение к ней:
- "defaultConnection": "Host=172.17.0.11;Port=5432;Database=oidcdb;Username=servicepg;Password=p@ssw0rd"
- "provider": "pgsql"
- SQLite. Внесение изменений не требуется. Секции имеют следующие значения:
- Заполните секции "clientSecret", "redirectUris" и "postLogoutRedirectUris" в "clients". В качестве клиентов выступают приложения Indeed CM: ManagementConsole, Self-Service и WebApi:
"clientSecret" - генерируется Мастером настройки Indeed CM для каждого приложения. Значения доступны в файле oidc_secrets.json, который будет создан в директории конфигурационных файлов Мастера настройки.
Code Block language xml title Пример файла oidc_secrets.json { "managementConsoleClientSecret": "9d5d705e1cf5c12b2a5432c5a40c711e6505e939ca2d7cf0df48fc505c022329", "selfServiceClientSecret": "319e8b577563b7c6f27653d72b49659d16f06e0a150fd3a224002c778432319d", "webApiClientSecret": "9a9c56e5e8090c7fbcdffcc13537fc60d7a2f8547cc92131893e88cf08a7d5f9" }
- "redirectUris". Вместо REDIRECT_URL укажите FQDN сервера Indeed CM: "https://REDIRECT_URL/cm/mc/signin-oidc".
- "postLogoutRedirectUris". Вместо POST_LOGOUT_URL укажите FQDN сервера Indeed CM: "https://POST_LOGOUT_URL/cm/mc/signout-callback-oidc".
Заполните секцию "signingCertificateThumbprint", указав Отпечаток сертификата подписи (Thumbprint). В качестве сертификата подписи можно использовать SSL/TLS-сертификат, используемый для работы веб-сервера Indeed CM.
Warning В ОС Linux для работы .Net Core необходимо предоставить файл .pfx без пароля, содержащий сертификат, Отпечаток (Thumbprint), которого указан в поле "signingCertificateThumbprint" и закрытый ключ.
Для создания такого файла потребуются сертификат и закрытый ключ, которые были созданы на этапе настройки веб-сервера NGINX или Apache, или создайте их заново с помощью следующих команд (необходимо подставить имя импортированного pfx файла вместо PFXFILE) :
Code Block language bash 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
Затем создайте директорию в домашнем каталоге пользователя, от имени которого будет запускаться сервер из под которого происходит настройка сервера Indeed CM, и и создайте в этом каталоге файл .pfx без пароля с помощью утилиты openssl:
Code Block language bash mkdir -p ~/.dotnet/corefx/cryptography/x509stores/my/ openssl pkcs12 -export -out ~/.dotnet/corefx/cryptography/x509stores/my/SSL.pfx -inkey SSL.key -in SSL.crt
Заполните секцию "authentication", указав метод аутентификации пользователей, который будет использовать сервер OIDC. В зависимости от расположения сервера системы и ОС, может быть указан следующий метод: Windows или WindowsCustom.
Для инсталляций системы под управлением ОС Windows доступны два метода: Windows или WindowsCustom.
Для инсталляций системы под управлением ОС Linux доступен только метод WindowsCustom.
Tip Windows - используется, если сервер системы развернут на доменной рабочей станции под управлением ОС Windows. Для данного метода не требуется заполнение раздела "ldap".
WindowsCustom - используется, если сервер развернут вне домена или если требуется аутентификация пользователей в Web-приложения системы из каталога пользователей домена Active Directory, расположенного за пределами того домена в котором развернут сервер системы или с которым нет трастовых отношений. Для данного метода необходимо заполнить секцию "ldap".
- Заполните секцию "ldap", если в качестве метода аутентификации пользователей выбран WindowsCustom:
- server - имя хоста или IP-адрес LDAP-сервера.
- port - обычно LDAP-сервер принимает входящие соединения на порт 389 по протоколам TCP или UDP. Для LDAP-сеансов, инкапсулированных в SSL, обычно используется порт 636.
- secureSocketLayer - опция для включения или отключения SSL (Secure Sockets Layer) для защищенного соединения.
- verifyServerCertificate - опция для включения или отключения проверки сертификата сервера при использовании SSL.
- authType - тип аутентификации, который будет использоваться при подключении к LDAP-серверу.
- userName - имя сервисной учетной записи для работы с каталогов пользователем в формате: "Имя домена(NetBIOS)\имя учетной записи".
- password - пароль от сервисной учетной записи.
- domainDnsName - DNS-имя домена.
domainNetbiosName - NetBIOS-имя домена.
Tip Чтобы узнать DNS-имя домена и NetBIOS-имя домена, выполните в командной строке:
set USERDNSDOMAIN - выводит DNS-имя домена
set USERDOMAIN - выводит NetBIOS-имя доменаCode Block language java title Пример заполненной секции, с подключением к серверу dc.demo.local по LDAP (389 порт): "ldap": { "directories": [ { "server": "dc.demo.local", "port": 389, "secureSocketLayer": false, "verifyServerCertificate": false, "authType": "Basic", "userName": "DEMO\\servicecm", "password": "Q1w2e3r4", "domainDnsName": "demo.local", "domainNetbiosName": "DEMO" } ] },
Сохраните внесенные изменения в файл конфигурации сервера OpenID Connect в файле appsettings.json.
Expand | ||
---|---|---|
| ||
{ |
Expand | ||
---|---|---|
| ||
{ |