Настройка модуля osmax-core для интеграции с Microsoft Active Directory
Интеграция модуля osmax-core с Microsoft Active Directory выполняется в два этапа:
Настройка Kerberos-аутентификации
Предварительное условие:
На контроллере домена должна быть создана и настроена сервисная учетная запись.
Выполните следующие шаги:
-
Установите пакет с Kerberos-клиентом. Для Debian-like ОС используйте команды:
sudo apt update sudo apt install krb5-user
-
Создайте или отредактируйте файл
/etc/krb5.confи укажите в нем следующие параметры:[libdefaults] dns_lookup_realm = false dns_lookup_kdc = false ticket_lifetime = 24h renew_lifetime = 7d forwardable = true rdns = false default_realm = <AD_DOMAIN_NAME> udp_preference_limit = 1 [realms] <AD_DOMAIN_NAME> = { kdc = <AD_DOMAIN_CONTROLLER_ADDRESS> admin_server = <AD_DOMAIN_CONTROLLER_ADDRESS> }Пример:
[libdefaults] dns_lookup_realm = false dns_lookup_kdc = false ticket_lifetime = 24h renew_lifetime = 7d forwardable = true rdns = false default_realm = DEMO.OSMAKS.INNO.TECH udp_preference_limit = 1 [realms] DEMO.OSMAKS.INNO.TECH = { kdc = 192.168.0.1 admin_server = 192.168.0.1 }
Интеграцию можно настроить одним из перечисленных способов:
Настройка с использованием прямого указания сервисной учетной записи
В файле конфигурации модуля osmax-core application.properties
задайте следующие параметры конфигурации:
quarkus.kerberos.service-principal-name=<service-account-name>
quarkus.kerberos.service-principal-realm=<domain-name>
quarkus.kerberos.service-principal-password=<service-account-password>
Пример:
quarkus.kerberos.service-principal-name=osmax_core_svc
quarkus.kerberos.service-principal-realm=OSMAKS-CORE.INNO.TECH
quarkus.kerberos.service-principal-password=Qwerty123
Настройка с использованием keytab-файла
В файле конфигурации модуля osmax-core application.properties
задайте следующие параметры конфигурации:
quarkus.kerberos.service-principal-name=<keytab-full-spn-with-domain>
quarkus.kerberos.keytab-path=<path-to-keytab-file>
Пример:
quarkus.kerberos.service-principal-name=HTTP/admin-console.osmaks.mycompany.com@DEMO.OSMAKS.INNO.TECH
quarkus.kerberos.keytab-path=/opt/osmaks-core/osmaks_ad.keytab
Настройка источника данных LDAP(S) из домена Active Directory
Предварительное условие:
Сервер, используемый для подключения по протоколу LDAP, должен являться одним из контроллеров домена Active Directory.
Интеграцию можно настроить одним из перечисленных способов:
Настройка интеграции по протоколу LDAP
В файле конфигурации модуля osmax-core application.properties
задайте следующие параметры конфигурации:
osmax.inventory.ldap.datasource[i].name=<datasource-alias>
osmax.inventory.ldap.datasource[i].host=<ldap-server-address>
osmax.inventory.ldap.datasource[i].port=<ldap-port>
osmax.inventory.ldap.datasource[i].username=<service-account-name>
osmax.inventory.ldap.datasource[i].password=<service-account-password>
osmax.inventory.ldap.datasource[i].ssl=false
osmax.inventory.ldap.datasource[i].base-dn=<base-DN>
Пример:
osmax.inventory.ldap.datasource[0].name=DEMO.OSMAKS.INNO.TECH
osmax.inventory.ldap.datasource[0].host=192.168.0.1
osmax.inventory.ldap.datasource[0].port=389
osmax.inventory.ldap.datasource[0].username=administrator@DEMO.OSMAKS.INNO.TECH
osmax.inventory.ldap.datasource[0].password=Qwerty123
osmax.inventory.ldap.datasource[0].ssl=false
osmax.inventory.ldap.datasource[0].base-dn="DC=demo,DC=osmaks,DC=inno,DC=tech"
Настройка интеграции по протоколу LDAP over SSL (LDAPS)
Для настройки интеграции по протоколу LDAP over SSL (LDAPS) выполните предварительную настройку контроллера Active Directory согласно инструкции.
Получение файла с сертификатом SSL
-
Перед настройкой интеграции получите сертификат SSL и сохраните его в файл, выполнив команду (для Unix-like ОС):
openssl s_client -connect <ldap-server-address>:<ldap-over-ssl-port>
Пример:
openssl s_client -connect 192.168.0.1:636
Пример ответа
Connecting to 10.31.0.29 CONNECTED(00000003) Can't use SSL_get_servername depth=0 CN=lcm-dc-winsrv.lcmtest.lan verify error:num=20:unable to get local issuer certificate verify return:1 depth=0 CN=lcm-dc-winsrv.lcmtest.lan verify error:num=21:unable to verify the first certificate verify return:1 depth=0 CN=lcm-dc-winsrv.lcmtest.lan verify return:1 --- Certificate chain 0 s:CN=lcm-dc-winsrv.lcmtest.lan i:DC=lan, DC=lcmtest, CN=lcmtest-LCM-DC-WINSRV-CA a:PKEY: rsaEncryption, 2048 (bit); sigalg: RSA-SHA256 v:NotBefore: May 23 10:49:18 2024 GMT; NotAfter: May 23 10:49:18 2025 GMT --- Server certificate -----BEGIN CERTIFICATE----- MIIGZjCCBU6gAwIBAgITTwAAAAMHAuwjdKO36wAAAAAAAzANBgkqhkiG9w0BAQsF ADBRMRMwEQYKCZImiZPyLGQBGRYDbGFuMRcwFQYKCZImiZPyLGQBGRYHbGNtdGVz dDEhMB8GA1UEAxMYbGNtdGVzdC1MQ00tREMtV0lOU1JWLUNBMB4XDTI0MDUyMzEw NDkxOFoXDTI1MDUyMzEwNDkxOFowJDEiMCAGA1UEAxMZbGNtLWRjLXdpbnNydi5s Y210ZXN0LmxhbjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALkozhSH q+Ze/NhW4VmerUI/i81P5YH1TlnaYZ5LtmePwvBoJ4805s/OlAiNDbs1vdStQ1UG wWF8fjItPrbb9OHGzUglPWq8EB7aBvTWXVJf5gMMKyCaBXB8aFO21OgtZdjGhuxp AvGV/hr3UrsdF2gHSPN9PZ27VQ1W85mOWgqZ9Qjsyu23AAhMxUBrSA8G6TvuHksH GbZ8n/FXhF4XkKbMKxyfh44CMmGk4KKJQrw7ljrN1qEZ8Mkv1qREXWdYBTbaNmvR +sDwyGU+ZRJ/V0UFKA7CIDMjfPq5zdjl+V6usj/8ZIZTE+daX34jcgs+xD7l99nq RXogiXzOKA+pT9kCAwEAAaOCA2IwggNeMC8GCSsGAQQBgjcUAgQiHiAARABvAG0A YQBpAG4AQwBvAG4AdAByAG8AbABsAGUAcjAdBgNVHSUEFjAUBggrBgEFBQcDAgYI KwYBBQUHAwEwDgYDVR0PAQH/BAQDAgWgMHgGCSqGSIb3DQEJDwRrMGkwDgYIKoZI hvcNAwICAgCAMA4GCCqGSIb3DQMEAgIAgDALBglghkgBZQMEASowCwYJYIZIAWUD BAEtMAsGCWCGSAFlAwQBAjALBglghkgBZQMEAQUwBwYFKw4DAgcwCgYIKoZIhvcN AwcwHQYDVR0OBBYEFDxkdF2yDXR+bnfqKAND0TkLO14cMB8GA1UdIwQYMBaAFACG /uVsAvxdtKvqz1B3yIHKd6qWMIHcBgNVHR8EgdQwgdEwgc6ggcuggciGgcVsZGFw Oi8vL0NOPWxjbXRlc3QtTENNLURDLVdJTlNSVi1DQSxDTj1sY20tZGMtd2luc3J2 LENOPUNEUCxDTj1QdWJsaWMlMjBLZXklMjBTZXJ2aWNlcyxDTj1TZXJ2aWNlcyxD Tj1Db25maWd1cmF0aW9uLERDPWxjbXRlc3QsREM9bGFuP2NlcnRpZmljYXRlUmV2 b2NhdGlvbkxpc3Q/YmFzZT9vYmplY3RDbGFzcz1jUkxEaXN0cmlidXRpb25Qb2lu dDCBygYIKwYBBQUHAQEEgb0wgbowgbcGCCsGAQUFBzAChoGqbGRhcDovLy9DTj1s Y210ZXN0LUxDTS1EQy1XSU5TUlYtQ0EsQ049QUlBLENOPVB1YmxpYyUyMEtleSUy MFNlcnZpY2VzLENOPVNlcnZpY2VzLENOPUNvbmZpZ3VyYXRpb24sREM9bGNtdGVz dCxEQz1sYW4/Y0FDZXJ0aWZpY2F0ZT9iYXNlP29iamVjdENsYXNzPWNlcnRpZmlj YXRpb25BdXRob3JpdHkwRQYDVR0RBD4wPKAfBgkrBgEEAYI3GQGgEgQQT/a0Jjho UEuS4nyMtGIpx4IZbGNtLWRjLXdpbnNydi5sY210ZXN0LmxhbjBPBgkrBgEEAYI3 GQIEQjBAoD4GCisGAQQBgjcZAgGgMAQuUy0xLTUtMjEtMTcwMDY2MDMwMS0yODM3 MzkzNDYwLTE1MTc1MjQ2MjktMTAwMTANBgkqhkiG9w0BAQsFAAOCAQEAc5Hd2UM1 Xd7A1SNpI9i9oFGeQrtvz80KbKdKBadMPtlfAMQviZecCxTF9BcWbBa/gMljK2Ol MZ/9RfTYBTESmMJMwjM8nGPp9W0570cFp+pzNJ3V4Wj1U/yi8AMIegg7E8t0+u9g o+RSGTud3+UOiFyVrIdrSYo3Bz2wq9axAkDEwN5JpmWmnxC8OqXqmeeWSG7AzJwu B5bGy+GaTj+ytSR8g6+TgZDOaOeEYm7XAVSMxVPL0HD7xozgNBfSbUuheV5oryY9 x2tN3YE1IbA1U9rqRNAegqVaG60swzWltQbO0PRWuw8rBa8Ir+lpZOn4qlmJ94CS WxTZ8YUs0ioM/w== -----END CERTIFICATE----- subject=CN=lcm-dc-winsrv.lcmtest.lan issuer=DC=lan, DC=lcmtest, CN=lcmtest-LCM-DC-WINSRV-CA --- No client certificate CA names sent Client Certificate Types: RSA sign, DSA sign, ECDSA sign Requested Signature Algorithms: RSA+SHA256:RSA+SHA384:RSA+SHA1:ECDSA+SHA256:ECDSA+SHA384:ECDSA+SHA1:DSA+SHA1:RSA+SHA512:ECDSA+SHA512 Shared Requested Signature Algorithms: RSA+SHA256:RSA+SHA384:ECDSA+SHA256:ECDSA+SHA384:RSA+SHA512:ECDSA+SHA512 Peer signing digest: SHA256 Peer signature type: RSA Server Temp Key: ECDH, secp384r1, 384 bits --- SSL handshake has read 2192 bytes and written 469 bytes Verification error: unable to verify the first certificate --- New, TLSv1.2, Cipher is ECDHE-RSA-AES256-GCM-SHA384 Server public key is 2048 bit Secure Renegotiation IS supported Compression: NONE Expansion: NONE No ALPN negotiated SSL-Session: Protocol : TLSv1.2 Cipher : ECDHE-RSA-AES256-GCM-SHA384 Session-ID: 061B0000E89AB417962FAA9D8EEBCE1538C4E1DC7FBA0C7C0911FC37C85AFD28 Session-ID-ctx: Master-Key: 44B14CA5480206686700EFFBCDE315444F16A9DDF22DFD722AB7F1CC2917D6B38DC2A06E6678041AE50C70952E1E53D3 PSK identity: None PSK identity hint: None SRP username: None Start Time: 1717056217 Timeout : 7200 (sec) Verify return code: 21 (unable to verify the first certificate) Extended master secret: yes ---
-
Поместите содержимое ответа между строками
-----BEGIN CERTIFICATE-----и-----END CERTIFICATE-----включительно в отдельный файл на сервере с бэкендом с расширением *.crt и выдайте права на чтение всем пользователям (chmod 644).Пример содержимого файла с сертифкатом SSL
-----BEGIN CERTIFICATE----- MIIGZjCCBU6gAwIBAgITTwAAAAMHAuwjdKO36wAAAAAAAzANBgkqhkiG9w0BAQsF ADBRMRMwEQYKCZImiZPyLGQBGRYDbGFuMRcwFQYKCZImiZPyLGQBGRYHbGNtdGVz dDEhMB8GA1UEAxMYbGNtdGVzdC1MQ00tREMtV0lOU1JWLUNBMB4XDTI0MDUyMzEw NDkxOFoXDTI1MDUyMzEwNDkxOFowJDEiMCAGA1UEAxMZbGNtLWRjLXdpbnNydi5s Y210ZXN0LmxhbjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALkozhSH q+Ze/NhW4VmerUI/i81P5YH1TlnaYZ5LtmePwvBoJ4805s/OlAiNDbs1vdStQ1UG wWF8fjItPrbb9OHGzUglPWq8EB7aBvTWXVJf5gMMKyCaBXB8aFO21OgtZdjGhuxp AvGV/hr3UrsdF2gHSPN9PZ27VQ1W85mOWgqZ9Qjsyu23AAhMxUBrSA8G6TvuHksH GbZ8n/FXhF4XkKbMKxyfh44CMmGk4KKJQrw7ljrN1qEZ8Mkv1qREXWdYBTbaNmvR +sDwyGU+ZRJ/V0UFKA7CIDMjfPq5zdjl+V6usj/8ZIZTE+daX34jcgs+xD7l99nq RXogiXzOKA+pT9kCAwEAAaOCA2IwggNeMC8GCSsGAQQBgjcUAgQiHiAARABvAG0A YQBpAG4AQwBvAG4AdAByAG8AbABsAGUAcjAdBgNVHSUEFjAUBggrBgEFBQcDAgYI KwYBBQUHAwEwDgYDVR0PAQH/BAQDAgWgMHgGCSqGSIb3DQEJDwRrMGkwDgYIKoZI hvcNAwICAgCAMA4GCCqGSIb3DQMEAgIAgDALBglghkgBZQMEASowCwYJYIZIAWUD BAEtMAsGCWCGSAFlAwQBAjALBglghkgBZQMEAQUwBwYFKw4DAgcwCgYIKoZIhvcN AwcwHQYDVR0OBBYEFDxkdF2yDXR+bnfqKAND0TkLO14cMB8GA1UdIwQYMBaAFACG /uVsAvxdtKvqz1B3yIHKd6qWMIHcBgNVHR8EgdQwgdEwgc6ggcuggciGgcVsZGFw Oi8vL0NOPWxjbXRlc3QtTENNLURDLVdJTlNSVi1DQSxDTj1sY20tZGMtd2luc3J2 LENOPUNEUCxDTj1QdWJsaWMlMjBLZXklMjBTZXJ2aWNlcyxDTj1TZXJ2aWNlcyxD Tj1Db25maWd1cmF0aW9uLERDPWxjbXRlc3QsREM9bGFuP2NlcnRpZmljYXRlUmV2 b2NhdGlvbkxpc3Q/YmFzZT9vYmplY3RDbGFzcz1jUkxEaXN0cmlidXRpb25Qb2lu dDCBygYIKwYBBQUHAQEEgb0wgbowgbcGCCsGAQUFBzAChoGqbGRhcDovLy9DTj1s Y210ZXN0LUxDTS1EQy1XSU5TUlYtQ0EsQ049QUlBLENOPVB1YmxpYyUyMEtleSUy MFNlcnZpY2VzLENOPVNlcnZpY2VzLENOPUNvbmZpZ3VyYXRpb24sREM9bGNtdGVz dCxEQz1sYW4/Y0FDZXJ0aWZpY2F0ZT9iYXNlP29iamVjdENsYXNzPWNlcnRpZmlj YXRpb25BdXRob3JpdHkwRQYDVR0RBD4wPKAfBgkrBgEEAYI3GQGgEgQQT/a0Jjho UEuS4nyMtGIpx4IZbGNtLWRjLXdpbnNydi5sY210ZXN0LmxhbjBPBgkrBgEEAYI3 GQIEQjBAoD4GCisGAQQBgjcZAgGgMAQuUy0xLTUtMjEtMTcwMDY2MDMwMS0yODM3 MzkzNDYwLTE1MTc1MjQ2MjktMTAwMTANBgkqhkiG9w0BAQsFAAOCAQEAc5Hd2UM1 Xd7A1SNpI9i9oFGeQrtvz80KbKdKBadMPtlfAMQviZecCxTF9BcWbBa/gMljK2Ol MZ/9RfTYBTESmMJMwjM8nGPp9W0570cFp+pzNJ3V4Wj1U/yi8AMIegg7E8t0+u9g o+RSGTud3+UOiFyVrIdrSYo3Bz2wq9axAkDEwN5JpmWmnxC8OqXqmeeWSG7AzJwu B5bGy+GaTj+ytSR8g6+TgZDOaOeEYm7XAVSMxVPL0HD7xozgNBfSbUuheV5oryY9 x2tN3YE1IbA1U9rqRNAegqVaG60swzWltQbO0PRWuw8rBa8Ir+lpZOn4qlmJ94CS WxTZ8YUs0ioM/w== -----END CERTIFICATE-----
Внесение параметров конфигурации в настройки бэкенда
В файле конфигурации модуля osmax-core application.properties
задайте следующие параметры конфигурации:
osmax.inventory.ldap.datasource[i].name=<datasource-alias>
osmax.inventory.ldap.datasource[i].host=<ldap-server-address>
osmax.inventory.ldap.datasource[i].port=<ldap-port>
osmax.inventory.ldap.datasource[i].username=<service-account-name>
osmax.inventory.ldap.datasource[i].password=<service-account-password>
osmax.inventory.ldap.datasource[i].ssl=true
osmax.inventory.ldap.datasource[i].ssl-certificate=<path-to-certificate-file>
osmax.inventory.ldap.datasource[i].base-dn=<base-DN>
Пример:
osmax.inventory.ldap.datasource[0].name=osmaxtest.lan
osmax.inventory.ldap.datasource[0].host=10.31.0.29
osmax.inventory.ldap.datasource[0].port=636
osmax.inventory.ldap.datasource[0].username=vlev@osmaxtest
osmax.inventory.ldap.datasource[0].password=Qwerty123
osmax.inventory.ldap.datasource[0].ssl=true
osmax.inventory.ldap.datasource[0].ssl-certificate=/opt/inno-osmaks-core/ad_ldap_cert.crt
osmax.inventory.ldap.datasource[0].base-dn="DC=osmaxtest,DC=lan"