Remote connector server is a standalone daemon used for interfacing some of the more difficult systems. You deploy connector bundles into the connector server. Then, you configure CzechIdM to use connectors from within the remote connector server. As far as IdM is concerned, there is no difference if actions on end system are performed by connector server or IdM itself. The only difference is in the point of origin of network communication.
CzechIdM comes bundled only with certain types of connectors. For some deployments, it is necessary to use Remote connector server ("connector server" from now on). There are generally four reasons for this:
The remote server connector configuration form behaves just like the local connector form - this means that definition is stored in the EAV attributes for system which it belongs to. System name, connector name and connector version are the key to EAV attributes in the CzechIdM. It is therefore possible to have multiple connectors with different versions in one remote connector server.
lib
directory of the connector server:classpath
inside ConnectorServer.sh
script (for Linux) or ConnectorServer.bat
script (for Windows).connector-server
with home under /opt
.useradd -b /opt -m -s /bin/bash connector-server chmod 750 /opt/connector-server/
cp connector-server-master.tar.gz /opt/connector-server/ chown connector-server:connector-server /opt/connector-server/connector-server-master.tar.gz su - connector-server cd /opt/connector-server tar xzf connector-server-master.tar.gz rm connector-server-master.tar.gz
cd /opt/connector-server/connid-connector-server chmod 750 bin/ bundles/ certs/ conf/ lib/ logs/ scripts/
ls -l /opt/connector-server/ total 4 drwxrwxr-x 9 connector-server connector-server 4096 Oct 10 16:45 connid-connector-server ls -l /opt/connector-server/connid-connector-server/ total 23448 drwxr-x--- 5 connector-server connector-server 4096 Mar 10 10:09 bin drwxr-x--- 2 connector-server connector-server 4096 Oct 18 09:08 bundles drwxr-x--- 2 connector-server connector-server 4096 Mar 10 10:14 certs drwxr-x--- 2 connector-server connector-server 4096 Mar 10 10:04 conf -rw-rw-r-- 1 connector-server connector-server 11976830 Oct 10 16:45 datetime drwxr-x--- 3 connector-server connector-server 4096 Oct 10 16:45 lib -rw-rw-r-- 1 connector-server connector-server 19982 Oct 10 16:45 LICENSE drwxr-x--- 2 connector-server connector-server 4096 Mar 10 11:02 logs drwxr-x--- 3 connector-server connector-server 4096 Mar 10 09:50 scripts -rw-rw-r-- 1 connector-server connector-server 11976825 Oct 10 16:45 sys
cd connid-connector-server chmod +x bin/ConnectorServer.sh
pwgen -1 16
or something similar)../bin/ConnectorServer.sh -setKey -key PASSWORD_HERE -properties conf/connectorserver.properties
localhost
), edit the conf/connectorserver.properties
and set/comment out the connectorserver.ifaddress
./etc/systemd/system/connector-server.service
:[Unit] Description=Java Connector Server Service After=network-online.target [Service] User=connector-server WorkingDirectory=/opt/connector-server/connid-connector-server ExecStart=/bin/bash /opt/connector-server/connid-connector-server/bin/ConnectorServer.sh -run -properties /opt/connector-server/connid-connector-server/conf/connectorserver.properties SuccessExitStatus=143 [Install] WantedBy=multi-user.target
systemctl daemon-reload systemctl start connector-server systemctl enable connector-server
conf/connectorserver.properties
and conf/logging.properties
files..jar
s) into the bundles
directory.scripts
directory.cert
directory. CzechIdM scripts by default look there.
The principle of rotating logs on Linux is the same as for the CzechIdM. Just create a proper logrotate file /etc/logrotate.d/connector-server
:
/opt/connector-server/connid-connector-server/logs/connectorserver*.log { rotate 90 daily dateext copytruncate missingok notifempty compress }
When you interface end systems remotely, you have to secure the communication with TLS. For this to work, you need a Java truststore. This short howto will show you how to create one.
su - connector-server cd /opt/connector-server/connid-connector-server/conf openssl genrsa -out fakecert.key openssl req -new -key fakecert.key -out fakecert.csr -subj "/C=CZ/ST=Czech Republic/L=Prague/O=BCV/CN=Connector placeholder cert" openssl x509 -req -in fakecert.csr -signkey fakecert.key -days 1 -sha256 -out fakecert.crt
truststore.jks
does not exist, the keytool
will create it.keytool -importcert -file fakecert.crt -alias placeholder-cert -keystore truststore.jks Enter keystore password: ENTER SOME PASSWORD HERE AND REMEMBER IT FOR LATER Re-enter new password: ... Trust this certificate? [no]: yes Certificate was added to keystore
rm fakecert.key fakecert.csr fakecert.crt chmod 644 truststore.jks # the connector server user should not be able to write the truststore, only read it chown root:connector-server truststore.jks
ConnectorServer.sh
:cd /opt/connector-server/connid-connector-server vim bin/ConnectorServer.sh # add this snippet to the command line that executes the connector server -Djavax.net.ssl.trustStore=/opt/connector-server/connid-connector-server/conf/truststore.jks -Djavax.net.ssl.trustStorePassword=PUT_KEYSTORE_PASSWORD_HERE
1) Install Java 1.8 (OpenJDK headless is preferred).
2) Unpack connector server to his root directory "C:\connid-connector-server".
3) Create trustore for connector server. Use git bash in direcotory "C:\connid-connector-server\conf".
openssl genrsa -out fakecert.key openssl req -new -key fakecert.key -out fakecert.csr -subj "/C=CZ/ST=Czech Republic/L=Prague/O=BCV/CN=Connector placeholder cert" openssl x509 -req -in fakecert.csr -signkey fakecert.key -days 1 -sha256 -out fakecert.crt
/c/Program\ Files/Java/jdk-1.9.8/bin/keytool -importcert -file fakecert.crt -alias placeholder-cert -keystore truststore.jks Enter keystore password: ENTER SOME PASSWORD HERE AND REMEMBER IT FOR LATER Re-enter new password: ... Trust this certificate? [no]: yes Certificate was added to keystore
rm fakecert.key fakecert.csr fakecert.crt
4) Add trustore location and password to service installation in „bin\ConnectorServer.bat“(windows). These parameters are in script already, so just trustore path and password.
"-Djavax.net.ssl.trustStore=C:\connid-connector-server\conf\truststore.jks";"-Djavax.net.ssl.trustStorePassword=TODO_PASSWORD"
5) Start CMD under system admin. Then go to connector-server root directory.
cd C:\connid-connector-server bin\ConnectorServer.bat /setkey
6) Add connectors to "C:\connid-connector-server\bundles" and scripts to "C:\connid-connector-server\scripts".
7) Then setup connector-server key and install windows service(connector_server).
bin\ConnectorServer.bat /install connector_server
8) Then start service in "services.msc". If connector_server service started correctly set this service to automatic start.
@since 10.8.0
Standalone connector server agenda is available from main menu System
→ Connector servers
:
Systems
→ Connector servers
from menu and add new remote connector server.save
the form.Use remote connector server
field.save
the form.Configurations
tab. There, only connectors that are deployed inside remote connector server, will be available.org.identityconnectors.framework.common.exceptions.InvalidCredentialException: Remote framework key is invalid