From 08ae634198348d2f48ff299bbe61799ceecb339b Mon Sep 17 00:00:00 2001 From: Larbi Gharib <larbi.gharib@savoirfairelinux.com> Date: Sat, 21 Nov 2020 20:45:21 -0500 Subject: [PATCH] Reorder admin guide Change-Id: I1781b9a8575f3a35d5bc38fba7bec16ad4062427 --- userguide/docs/admin.md | 56 ++++++++++++------------ userguide/site/admin/index.html | 55 ++++++++++++----------- userguide/site/index.html | 2 +- userguide/site/pdf/combined.pdf | Bin 2552037 -> 2574169 bytes userguide/site/search/search_index.json | 2 +- userguide/site/sitemap.xml.gz | Bin 193 -> 193 bytes 6 files changed, 56 insertions(+), 59 deletions(-) diff --git a/userguide/docs/admin.md b/userguide/docs/admin.md index 89f9ef34..875fb345 100644 --- a/userguide/docs/admin.md +++ b/userguide/docs/admin.md @@ -1,20 +1,6 @@ -## Troubleshooting and resetting - -If you ever need to restart from 0 (i.e. reset everything and drop existing data) you can do so by deleting the following files in the distribution folder (<your project root folder>/jams): <pre> -<b>The internal jams folder: <your project root folder>/jams/jams -derby.log -oauth.key -oauth.pub -config.json -</b></pre> - - -This will reset the server to its original state and you will be able to run the configuration wizard again. Before performing this operation, please make sure to shutdown the server. - # Admin Guide -By default JAMS runs an embedded tomcat server visible on port 8080, however this is not practical for many reasons. This guide is designed -to help you setup Jams to run in a production environment. +By default JAMS runs an embedded tomcat server visible on port 8080, however this is not practical for many reasons. This guide is designed to help you setup Jams to run in a production environment. ## JAMS & Nginx @@ -49,23 +35,18 @@ Typically you would add a new site called ``jams-site.conf`` to your nginx confi This is the preferred setup method by most admins, as local traffic is usually ran unencrypted since it is usually either inter-VM connection, a VLAN or another dedicated link. +## Troubleshooting and resetting -## Running JAMS as a Linux Service - -Running JAMS as a Linux Service is fairly straightforward with systemd - you simply created a service unit file with the following structure: <pre> -<b>[Unit] -Description=JAMS Server - -[Service] -Type=simple -WorkingDirectory=[DIRECTORY WHERE JAMS WAS UNZIPPED] -ExecStart=/usr/bin/java -jar [DIRECTORY WHERE JAMS WAS UNZIPPED]/jams-launcher.jar PORT SSL_CERTIFICATE SSL_CERTIFICATE_KEY - -[Install] -WantedBy=multi-user.target +If you ever need to restart from 0 (i.e. reset everything and drop existing data) you can do so by deleting the following files in the distribution folder (<your project root folder>/jams): <pre> +<b>The internal jams folder: <your project root folder>/jams/jams +derby.log +oauth.key +oauth.pub +config.json </b></pre> -The parameters PORT, SSL_CERTIFICATE and SSL_CERTIFICATE_KEY are optional (however, PORT can be used alone whereas the SSL_CERTIFICATE comes in pair with SSL_CERTIFICATE_KEY) + +This will reset the server to its original state and you will be able to run the configuration wizard again. Before performing this operation, please make sure to shutdown the server. ## Running JAMS as Windows Service @@ -263,3 +244,20 @@ where PORT_NUMBER is the port number you want to use to serve the application ex Now your JAMS application will start with the server. Source: [https://medium.com/@lk.snatch/jar-file-as-windows-service-bonus-jar-to-exe-1b7b179053e4](https://medium.com/@lk.snatch/jar-file-as-windows-service-bonus-jar-to-exe-1b7b179053e4) + +## Running JAMS as a Linux Service + +Running JAMS as a Linux Service is fairly straightforward with systemd - you simply created a service unit file with the following structure: +<b>[Unit] +Description=JAMS Server + +[Service] +Type=simple +WorkingDirectory=[DIRECTORY WHERE JAMS WAS UNZIPPED] +ExecStart=/usr/bin/java -jar [DIRECTORY WHERE JAMS WAS UNZIPPED]/jams-launcher.jar PORT SSL_CERTIFICATE SSL_CERTIFICATE_KEY + +[Install] +WantedBy=multi-user.target +</b> + +The parameters PORT, SSL_CERTIFICATE and SSL_CERTIFICATE_KEY are optional (however, PORT can be used alone whereas the SSL_CERTIFICATE comes in pair with SSL_CERTIFICATE_KEY) \ No newline at end of file diff --git a/userguide/site/admin/index.html b/userguide/site/admin/index.html index 8f21eb66..e6353f60 100644 --- a/userguide/site/admin/index.html +++ b/userguide/site/admin/index.html @@ -68,17 +68,13 @@ </div> <div class="navbar-collapse collapse card bg-secondary" id="toc-collapse"> <ul class="nav flex-column"> -<li class="nav-item" data-level="2"><a class="nav-link" href="#troubleshooting-and-resetting">Troubleshooting and resetting</a> -<ul class="nav flex-column"> -</ul> -</li> <li class="nav-item" data-level="1"><a class="nav-link" href="#admin-guide">Admin Guide</a> <ul class="nav flex-column"> <li class="nav-item" data-level="2"><a class="nav-link" href="#jams-nginx">JAMS & Nginx</a> <ul class="nav flex-column"> </ul> </li> -<li class="nav-item" data-level="2"><a class="nav-link" href="#running-jams-as-a-linux-service">Running JAMS as a Linux Service</a> +<li class="nav-item" data-level="2"><a class="nav-link" href="#troubleshooting-and-resetting">Troubleshooting and resetting</a> <ul class="nav flex-column"> </ul> </li> @@ -86,24 +82,18 @@ <ul class="nav flex-column"> </ul> </li> +<li class="nav-item" data-level="2"><a class="nav-link" href="#running-jams-as-a-linux-service">Running JAMS as a Linux Service</a> +<ul class="nav flex-column"> +</ul> +</li> </ul> </li> </ul> </div> </div></div> <div class="col-md-9" role="main"><a class="md-content__icon pdf-download-btn" download href="../pdf/combined.pdf" title="Download"><i class="fa fas fa-download"></i><small> PDF</small></a> -<h2 id="troubleshooting-and-resetting">Troubleshooting and resetting</h2> -<p>If you ever need to restart from 0 (i.e. reset everything and drop existing data) you can do so by deleting the following files in the distribution folder (<your folder="" project="" root="">/jams): <pre> -<b>The internal jams folder: <your folder="" project="" root="">/jams/jams -derby.log -oauth.key -oauth.pub -config.json -</your></b></pre></your></p> -<p>This will reset the server to its original state and you will be able to run the configuration wizard again. Before performing this operation, please make sure to shutdown the server.</p> <h1 id="admin-guide">Admin Guide</h1> -<p>By default JAMS runs an embedded tomcat server visible on port 8080, however this is not practical for many reasons. This guide is designed -to help you setup Jams to run in a production environment.</p> +<p>By default JAMS runs an embedded tomcat server visible on port 8080, however this is not practical for many reasons. This guide is designed to help you setup Jams to run in a production environment.</p> <h2 id="jams-nginx">JAMS & Nginx</h2> <p>It is generally not recommended to expose JAMS directly to the outside world and while it is required to run JAMS in SSL mode, we usually recommend users to place it behind Nginx or a similar web server which proxies requests between the outside world and Jams.</p> @@ -128,18 +118,15 @@ recommend users to place it behind Nginx or a similar web server which proxies r } }</b></pre></p> <p>This is the preferred setup method by most admins, as local traffic is usually ran unencrypted since it is usually either inter-VM connection, a VLAN or another dedicated link.</p> -<h2 id="running-jams-as-a-linux-service">Running JAMS as a Linux Service</h2> -<p>Running JAMS as a Linux Service is fairly straightforward with systemd - you simply created a service unit file with the following structure: <pre> -<b>[Unit] -Description=JAMS Server</b></pre></p> -<p>[Service] -Type=simple -WorkingDirectory=[DIRECTORY WHERE JAMS WAS UNZIPPED] -ExecStart=/usr/bin/java -jar [DIRECTORY WHERE JAMS WAS UNZIPPED]/jams-launcher.jar PORT SSL_CERTIFICATE SSL_CERTIFICATE_KEY</p> -<p>[Install] -WantedBy=multi-user.target -</p></div></div></div></body></html> -<p>The parameters PORT, SSL_CERTIFICATE and SSL_CERTIFICATE_KEY are optional (however, PORT can be used alone whereas the SSL_CERTIFICATE comes in pair with SSL_CERTIFICATE_KEY)</p> +<h2 id="troubleshooting-and-resetting">Troubleshooting and resetting</h2> +<p>If you ever need to restart from 0 (i.e. reset everything and drop existing data) you can do so by deleting the following files in the distribution folder (<your folder="" project="" root="">/jams): <pre> +<b>The internal jams folder: <your folder="" project="" root="">/jams/jams +derby.log +oauth.key +oauth.pub +config.json +</your></b></pre></your></p> +<p>This will reset the server to its original state and you will be able to run the configuration wizard again. Before performing this operation, please make sure to shutdown the server.</p> <h2 id="running-jams-as-windows-service">Running JAMS as Windows Service</h2> <h3 id="download-and-install-jams">Download and install JAMS</h3> <p>Visit https://jami.net/services/ and downalod JAMS.</p> @@ -290,6 +277,18 @@ nssm.exe install JAMS <p>where PORT_NUMBER is the port number you want to use to serve the application example 443 or 8443</p> <p>Now your JAMS application will start with the server.</p> <p>Source: <a href="https://medium.com/@lk.snatch/jar-file-as-windows-service-bonus-jar-to-exe-1b7b179053e4">https://medium.com/@lk.snatch/jar-file-as-windows-service-bonus-jar-to-exe-1b7b179053e4</a></p> +<h2 id="running-jams-as-a-linux-service">Running JAMS as a Linux Service</h2> +<p>Running JAMS as a Linux Service is fairly straightforward with systemd - you simply created a service unit file with the following structure: <br/> +<b>[Unit] +Description=JAMS Server</b></p> +<p>[Service] +Type=simple +WorkingDirectory=[DIRECTORY WHERE JAMS WAS UNZIPPED] +ExecStart=/usr/bin/java -jar [DIRECTORY WHERE JAMS WAS UNZIPPED]/jams-launcher.jar PORT SSL_CERTIFICATE SSL_CERTIFICATE_KEY</p> +<p>[Install] +WantedBy=multi-user.target +</p></div></div></div></body></html> +<p>The parameters PORT, SSL_CERTIFICATE and SSL_CERTIFICATE_KEY are optional (however, PORT can be used alone whereas the SSL_CERTIFICATE comes in pair with SSL_CERTIFICATE_KEY)</p> <footer class="col-md-12"> diff --git a/userguide/site/index.html b/userguide/site/index.html index d59fd801..88c17ade 100644 --- a/userguide/site/index.html +++ b/userguide/site/index.html @@ -404,5 +404,5 @@ You will be redirected to the JAMS interface.</p> </html> <!-- MkDocs version : 1.1.2 -Build Date UTC : 2020-11-22 01:04:58.475709+00:00 +Build Date UTC : 2020-11-22 01:43:55.216806+00:00 --> diff --git a/userguide/site/pdf/combined.pdf b/userguide/site/pdf/combined.pdf index c9dd4246df3b0ee9d8cef07df28dcea0933db20f..7a39d8235d850fbdd2c4b3a86c02a25eac0663a3 100644 GIT binary patch delta 68878 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 delta 52137 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�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 diff --git a/userguide/site/search/search_index.json b/userguide/site/search/search_index.json index 4a4f2b6c..d01032c8 100644 --- a/userguide/site/search/search_index.json +++ b/userguide/site/search/search_index.json @@ -1 +1 @@ -{"config":{"lang":["en"],"min_search_length":3,"prebuild_index":false,"separator":"[\\s\\-]+"},"docs":[{"location":"","text":"Getting Started JAMS is a server application used to enroll Jami clients into an Enterprise context. Currently, JAMS supports 3 sources for user authentication: LDAP, Active Directory and an embedded database. Obtaining JAMS The latest Beta build of JAMS can be downloaded at: https://git.jami.net/savoirfairelinux/jami-jams System Requirements Windows, Linux or Mac OS operating system Java 11 or higher 4 GB RAM 1 CPU JAMS Concepts JAMS was built with security in mind, therefore it is intimately related to the X509 certificate management workflows. The central concepts which are used in JAMS are the Certification Authority (CA) and the Certificate Signing Requests (CSR). In the JAMS paradigm, a device (Jami client) requests a certificate to the server then presents it to other devices to be recognized as a valid member of the organization. Therefore, JAMS must be provided with a certificate authority in order to work properly. In order to be completely secure, JAMS does not generate certificates for devices, but instead issues certificates based on a certificate signing request sent to it by the device, therefore removing the need to send a private key over the wire. The diagram below shows the entire process of how a device enrolls with JAMS: \u200b Getting Started Download the latest version of JAMS from: https://jami.net/services/ Unpack the .tar file to a directory of your choice. It is mandatory to run JAMS using a secure SSL connection. To request your SSL certificate files using OpenSSL and generate a pair of PEM and KEY, enter the following command: openssl req -newkey rsa:2048 -new -nodes -x509 -days 3650 -keyout server.key -out server.pem Current limitation: JAMS does not support reading encrypted private keys which require a password unlock. Navigate to the directory where you have extracted the JAMS package and execute the following command: java -jar jams-launcher.jar PORT SSL_CERTIFICATE SSL_CERTIFICATE_KEY Argument Details PORT The TCP port on which you want JAMS to listen for incoming connections SSL_CERTIFICATE The location of the PEM-formatted SSL Certificate file SSL_CERTIFICATE_KEY The location of the PEM-formatted key file which is used with the SSL Certificate file from above An example of the command would be: java -jar jams-launcher 443 server.pem server.key Please note that any port above 1024 can be safely used to run JAMS. Step 1: create your admininistrator account This account will have administrative control and the rights to manage your users and group of Jami users. Step 2: setup the Certification Authority The second step is to define your Certification Authority. Important: a CA is not a server-side ssl certificate, it is a certificate which has the power to issue other certificates. Do not use the import option unless your company's security officer has issued you a CA certificate. Most commercially available certificates (i.e. those issued by godaddy, letsencrypt, etc... ) are not CA certificates. If you are an end-user we highly recommend you use to create a self-signed CA option as providing an incorrect certificate type will lead to a non-functional server. This certificate will be used to sign the enrollement requests which come from Jami devices. If you are not familiar with the X509 standard, we highly recommend you read the following articles to get familiar with the processes and practices which surround it: https://www.securew2.com/blog/public-key-infrastructure-explained/ https://cheapsslsecurity.com/blog/understanding-the-role-of-certificate-authorities-in-pki/ Step 3: setup the user database JAMS supports 3 different sources for the authentication of users: LDAP-compatible directory (such as OpenLDAP) Microsoft Active Directory Local embedded database Option 1: LDAP authentication If your company provides you with LDAP directory for user management, you will need to know its access information and a automated account which has read-only rights to do use look-ups. Your admin should provide you most of this information but we do provide a detailed overview over each field in case you need some extra help: Field Details Use StartTLS Your LDAP server can be configured to use either TLS/STARTTLS or PLAIN sockets, if STARTTLS is used you should mark this as true Server Address The address of your server with respect to the JAMS server, your LDAP does not need to be publicly accessible but should be accessible to JAMS. You should have either ldap:// or ldaps:// preceding the address. Port The port on which the LDAP server is listening for requests (usually 389 for PLAIN/STARTTLS and 636 for SSL/TLS) Administrator Username This is NOT the LDAP's administration account credentials, but the credentials of the account which has Read permissions to the LDAP database in order to lookup users. The format is generally cn=bot,ou=robots,dc=domain,dc=org Password The password used by the account above. BaseDN The base realm where the users accounts are located, in most cases it is ou=users,dc=company,dc=org Option 2: Microsoft Active Directory If your company provides you with Active Directory for user management, you will need to know its access information and an automated account which has read-only rights to do use look-ups. Your admin should provide you most of this information but we do provide a detailed overview over each field in case you need some extra help: Field Details Port The port on which Active Directory is listening (generally it is either 389 or 636) Host The address of your server with respect to the JAMS server, your Active Directory does not need to be publicly accessible but should be accessible to JAMS. Administrator Username This is NOT the Active Directory's administration account credentials, but the credentials of the account which has Read permissions to the Active Directory database in order to lookup users. The format is generally cn=bot,ou=robots,dc=domain,dc=net Password The password used by the account above. Use SSL Whenever this server uses SSL for data transmission Domain Name This is the legacy-formatted Windows Domain Name (i.e. WINDOMAIN ) Option 3: local embedded database The local database does not require any additional configuration, everything in the process is automated. This option allows you to create Jami users on the fly directly from the JAMS interface. Advanced settings: by default, the option \"Use public nameserver\" is disabled. Usernames of your Jami users will not be stored on the public Jami nameserver and your users will only be able to communicate with users from your organization. If you want your users to be searchable by external users and allow them to communicate with any Jami users, and not only the one from your organization, enable this option, Step 4: setup the server parameters Parameter Details CORS Domain Name The domain on which the JAMS client and administration UI will be running. Certificate Revocation List Lifetime The frequency at which the CRL is updated in memory Device Lifetime How long a device's certificate is valid before being considered stale and requiring re-enrollement User Account Lifetime How long a user account is valid before being considered stale and requiring re-enrollement Important The CORS Domain Name corresponds to the web address used to access the Web UI. By default, it is set to the same URL as the one where you deploy JAMS. Only set a different URL if the Web UI has a different URL to the one where JAMS is deployed. Click on \"Set Server Parameters\" to finalize the configuration. You will be redirected to the JAMS interface. If you have configured JAMS with your LDAP or Active Directory, the list of users should of your organization shoud be visible in JAMS. If you have selected the local embedded database, you can now start creating new users by clicking on \"Create User\"","title":"Home"},{"location":"#getting-started","text":"JAMS is a server application used to enroll Jami clients into an Enterprise context. Currently, JAMS supports 3 sources for user authentication: LDAP, Active Directory and an embedded database.","title":"Getting Started"},{"location":"#obtaining-jams","text":"The latest Beta build of JAMS can be downloaded at: https://git.jami.net/savoirfairelinux/jami-jams","title":"Obtaining JAMS"},{"location":"#system-requirements","text":"Windows, Linux or Mac OS operating system Java 11 or higher 4 GB RAM 1 CPU","title":"System Requirements"},{"location":"#jams-concepts","text":"JAMS was built with security in mind, therefore it is intimately related to the X509 certificate management workflows. The central concepts which are used in JAMS are the Certification Authority (CA) and the Certificate Signing Requests (CSR). In the JAMS paradigm, a device (Jami client) requests a certificate to the server then presents it to other devices to be recognized as a valid member of the organization. Therefore, JAMS must be provided with a certificate authority in order to work properly. In order to be completely secure, JAMS does not generate certificates for devices, but instead issues certificates based on a certificate signing request sent to it by the device, therefore removing the need to send a private key over the wire. The diagram below shows the entire process of how a device enrolls with JAMS: \u200b","title":"JAMS Concepts"},{"location":"#getting-started_1","text":"Download the latest version of JAMS from: https://jami.net/services/ Unpack the .tar file to a directory of your choice. It is mandatory to run JAMS using a secure SSL connection. To request your SSL certificate files using OpenSSL and generate a pair of PEM and KEY, enter the following command: openssl req -newkey rsa:2048 -new -nodes -x509 -days 3650 -keyout server.key -out server.pem Current limitation: JAMS does not support reading encrypted private keys which require a password unlock. Navigate to the directory where you have extracted the JAMS package and execute the following command: java -jar jams-launcher.jar PORT SSL_CERTIFICATE SSL_CERTIFICATE_KEY Argument Details PORT The TCP port on which you want JAMS to listen for incoming connections SSL_CERTIFICATE The location of the PEM-formatted SSL Certificate file SSL_CERTIFICATE_KEY The location of the PEM-formatted key file which is used with the SSL Certificate file from above An example of the command would be: java -jar jams-launcher 443 server.pem server.key Please note that any port above 1024 can be safely used to run JAMS.","title":"Getting Started"},{"location":"#step-1-create-your-admininistrator-account","text":"This account will have administrative control and the rights to manage your users and group of Jami users.","title":"Step 1: create your admininistrator account"},{"location":"#step-2-setup-the-certification-authority","text":"The second step is to define your Certification Authority. Important: a CA is not a server-side ssl certificate, it is a certificate which has the power to issue other certificates. Do not use the import option unless your company's security officer has issued you a CA certificate. Most commercially available certificates (i.e. those issued by godaddy, letsencrypt, etc... ) are not CA certificates. If you are an end-user we highly recommend you use to create a self-signed CA option as providing an incorrect certificate type will lead to a non-functional server. This certificate will be used to sign the enrollement requests which come from Jami devices. If you are not familiar with the X509 standard, we highly recommend you read the following articles to get familiar with the processes and practices which surround it: https://www.securew2.com/blog/public-key-infrastructure-explained/ https://cheapsslsecurity.com/blog/understanding-the-role-of-certificate-authorities-in-pki/","title":"Step 2: setup the Certification Authority"},{"location":"#step-3-setup-the-user-database","text":"JAMS supports 3 different sources for the authentication of users: LDAP-compatible directory (such as OpenLDAP) Microsoft Active Directory Local embedded database","title":"Step 3: setup the user database"},{"location":"#option-1-ldap-authentication","text":"If your company provides you with LDAP directory for user management, you will need to know its access information and a automated account which has read-only rights to do use look-ups. Your admin should provide you most of this information but we do provide a detailed overview over each field in case you need some extra help: Field Details Use StartTLS Your LDAP server can be configured to use either TLS/STARTTLS or PLAIN sockets, if STARTTLS is used you should mark this as true Server Address The address of your server with respect to the JAMS server, your LDAP does not need to be publicly accessible but should be accessible to JAMS. You should have either ldap:// or ldaps:// preceding the address. Port The port on which the LDAP server is listening for requests (usually 389 for PLAIN/STARTTLS and 636 for SSL/TLS) Administrator Username This is NOT the LDAP's administration account credentials, but the credentials of the account which has Read permissions to the LDAP database in order to lookup users. The format is generally cn=bot,ou=robots,dc=domain,dc=org Password The password used by the account above. BaseDN The base realm where the users accounts are located, in most cases it is ou=users,dc=company,dc=org","title":"Option 1: LDAP authentication"},{"location":"#option-2-microsoft-active-directory","text":"If your company provides you with Active Directory for user management, you will need to know its access information and an automated account which has read-only rights to do use look-ups. Your admin should provide you most of this information but we do provide a detailed overview over each field in case you need some extra help: Field Details Port The port on which Active Directory is listening (generally it is either 389 or 636) Host The address of your server with respect to the JAMS server, your Active Directory does not need to be publicly accessible but should be accessible to JAMS. Administrator Username This is NOT the Active Directory's administration account credentials, but the credentials of the account which has Read permissions to the Active Directory database in order to lookup users. The format is generally cn=bot,ou=robots,dc=domain,dc=net Password The password used by the account above. Use SSL Whenever this server uses SSL for data transmission Domain Name This is the legacy-formatted Windows Domain Name (i.e. WINDOMAIN )","title":"Option 2: Microsoft Active Directory"},{"location":"#option-3-local-embedded-database","text":"The local database does not require any additional configuration, everything in the process is automated. This option allows you to create Jami users on the fly directly from the JAMS interface. Advanced settings: by default, the option \"Use public nameserver\" is disabled. Usernames of your Jami users will not be stored on the public Jami nameserver and your users will only be able to communicate with users from your organization. If you want your users to be searchable by external users and allow them to communicate with any Jami users, and not only the one from your organization, enable this option,","title":"Option 3: local embedded database"},{"location":"#step-4-setup-the-server-parameters","text":"Parameter Details CORS Domain Name The domain on which the JAMS client and administration UI will be running. Certificate Revocation List Lifetime The frequency at which the CRL is updated in memory Device Lifetime How long a device's certificate is valid before being considered stale and requiring re-enrollement User Account Lifetime How long a user account is valid before being considered stale and requiring re-enrollement Important The CORS Domain Name corresponds to the web address used to access the Web UI. By default, it is set to the same URL as the one where you deploy JAMS. Only set a different URL if the Web UI has a different URL to the one where JAMS is deployed. Click on \"Set Server Parameters\" to finalize the configuration. You will be redirected to the JAMS interface. If you have configured JAMS with your LDAP or Active Directory, the list of users should of your organization shoud be visible in JAMS. If you have selected the local embedded database, you can now start creating new users by clicking on \"Create User\"","title":"Step 4: setup the server parameters"},{"location":"admin/","text":"Troubleshooting and resetting If you ever need to restart from 0 (i.e. reset everything and drop existing data) you can do so by deleting the following files in the distribution folder ( /jams): The internal jams folder: /jams/jams derby.log oauth.key oauth.pub config.json This will reset the server to its original state and you will be able to run the configuration wizard again. Before performing this operation, please make sure to shutdown the server. Admin Guide By default JAMS runs an embedded tomcat server visible on port 8080, however this is not practical for many reasons. This guide is designed to help you setup Jams to run in a production environment. JAMS & Nginx It is generally not recommended to expose JAMS directly to the outside world and while it is required to run JAMS in SSL mode, we usually recommend users to place it behind Nginx or a similar web server which proxies requests between the outside world and Jams. The following is an example map of how you could configure JAMS behind Nginx (the process would be similar if you wanted to use any other type of proxying solution): The IP 10.10.0.1 is random, and should be seen as an example. Typically you would add a new site called jams-site.conf to your nginx configurations which would contain the following entries if you wanted to place an SSL certificate at the Nginx level: server { listen 443 ssl; listen [::]:443 ssl; ssl on; ssl_certificate /etc/certificates/mycertificate.pem ssl_certificate_key /etc/certificates/mycertificatekey.pem client_max_body_size 100M; server_name jams.mycompany.com; location / { proxy_pass http://10.10.0.1:8080/; proxy_set_header X-Real-IP $remote_addr; proxy_set_header Host $http_host; } } This is the preferred setup method by most admins, as local traffic is usually ran unencrypted since it is usually either inter-VM connection, a VLAN or another dedicated link. Running JAMS as a Linux Service Running JAMS as a Linux Service is fairly straightforward with systemd - you simply created a service unit file with the following structure: [Unit] Description=JAMS Server [Service] Type=simple WorkingDirectory=[DIRECTORY WHERE JAMS WAS UNZIPPED] ExecStart=/usr/bin/java -jar [DIRECTORY WHERE JAMS WAS UNZIPPED]/jams-launcher.jar PORT SSL_CERTIFICATE SSL_CERTIFICATE_KEY [Install] WantedBy=multi-user.target The parameters PORT, SSL_CERTIFICATE and SSL_CERTIFICATE_KEY are optional (however, PORT can be used alone whereas the SSL_CERTIFICATE comes in pair with SSL_CERTIFICATE_KEY) Running JAMS as Windows Service Download and install JAMS Visit https://jami.net/services/ and downalod JAMS. Extract JAMS to c:\\jams Download and install JDK 11 Download JDK 11 from https://www.oracle.com/java/technologies/javase-jdk11-downloads.html (choose the conresponding architecture of your VM) Install it using the install wizard. Download openssl to generate a key and a certificate Download OpenSSL from https://kb.firedaemon.com/support/solutions/articles/4000121705 (or choose another source https://wiki.openssl.org/index.php/Binaries) Once downloaded extract it to c:\\openssl then create a folder bin inside c:\\openssl\\bin Create a new file inside bin named openssl.cnf (make sure that the file extension is .cnd and not .cnd.txt) and copy past the following default configuration http://www.flatmtn.com/article/setting-openssl-create-certificates.html # # OpenSSL configuration file. # # Establish working directory. dir = . [ ca ] default_ca = CA_default [ CA_default ] serial = $dir/serial database = $dir/certindex.txt new_certs_dir = $dir/certs certificate = $dir/cacert.pem private_key = $dir/private/cakey.pem default_days = 365 default_md = md5 preserve = no email_in_dn = no nameopt = default_ca certopt = default_ca policy = policy_match [ policy_match ] countryName = match stateOrProvinceName = match organizationName = match organizationalUnitName = optional commonName = supplied emailAddress = optional [ req ] default_bits = 1024 # Size of keys default_keyfile = key.pem # name of generated keys default_md = md5 # message digest algorithm string_mask = nombstr # permitted characters distinguished_name = req_distinguished_name req_extensions = v3_req [ req_distinguished_name ] # Variable name Prompt string #------------------------- ---------------------------------- 0.organizationName = Organization Name (company) organizationalUnitName = Organizational Unit Name (department, division) emailAddress = Email Address emailAddress_max = 40 localityName = Locality Name (city, district) stateOrProvinceName = State or Province Name (full name) countryName = Country Name (2 letter code) countryName_min = 2 countryName_max = 2 commonName = Common Name (hostname, IP, or your name) commonName_max = 64 # Default values for the above, for consistency and less typing. # Variable name Value ------------------------ ------------------------------ 0.organizationName_default = My Company localityName_default = My Town stateOrProvinceName_default = State or Providence countryName_default = US [ v3_ca ] basicConstraints = CA:TRUE subjectKeyIdentifier = hash authorityKeyIdentifier = keyid:always,issuer:always [ v3_req ] basicConstraints = CA:FALSE subjectKeyIdentifier = hash Add OpenSSL to Sytem Environment variables Go to Edit the system environment variables -> Environment Variables, then in System variables edit Path and add c:\\openssl\\ Configure OpenSSL Execute the following command to set the path to OpenSSL configuration. set OPENSSL_CONF=c:\\openssl\\bin\\openssl.cnf Open the command prompt and cd c:\\jams ans generate the Key and Certificate: openssl req -newkey rsa:2048 -new -nodes -x509 -days 3650 -keyout server.key -out server.pem Follow the wizard. Once the key and certificate are generated execute the dir command you should see an output like this: c:\\jams>dir Volume in drive C has no label. Volume Serial Number is BC94-9EF2 Directory of c:\\jams 2020-11-10 12:38 PM . 2020-11-10 12:38 PM .. 2020-10-22 10:56 AM 5,186,016 jams-launcher.jar 2020-10-22 10:56 AM 33,413,882 jams-server.jar 2020-11-10 11:53 AM libs 2020-11-10 12:34 PM 1,732 server.key 2020-11-10 12:38 PM 1,336 server.pem 2020-10-22 04:05 PM 2,047,932 userguide.pdf 5 File(s) 40,650,898 bytes 3 Dir(s) 93,365,936,128 bytes free Now execute the following command tot start JAMS java -jar jams-launcher.jar PORT_NUMBER (eg. 8443 or 443) server.pem server.key Open a navigator on the server and visite https://localhost:443 or https://localhost:8443 to validate that it's working. Click CTRL + C to close the application Expose your localhost to the internet Click on Windows ans search for Windows Defender Firewall with Advanced Security. Right click on Inbound Rules and click on New Rule... Select Port click next and specify the port you want to use example 443 or 8443. Click next and select Allow the connection and click next. Leave all of Domain Private and Public select and click next. Name you Rule JAMS Inbound and click Finish Now right click on Outbound Rules and click on New Rule... Select Port click next and specify the port you want to use example 443 or 8443. Click next and select Allow the connection and click next. Leave all of Domain Private and Public select and click next. Name you Rule JAMS Outbound and click Finish. You are all set. You can now visit you application trought the server domain name or ip address on port 443 or 8443. Create a JAMS Windows Service (Embed Tomcat Server Windows Service) to start JAMS with the server In order to create a JAMS Windows Service you can use the tool NSSM provided on http://nssm.cc/download https://github.com/kirillkovalenko/nssm Once downloaded open a command prompt and change directory to nssm-2.24\\win64 then execute: nssm.exe install JAMS A GUI interface will open. In the Path field specify the path to the Java executable example: \"C:\\Program Files\\Common Files\\Oracle\\Java\\javapath\\java.exe\". In the Startup directory put the \"C:\\jams\" installation folder path. In the last field Arguments add the following arguments: -classpath \"c:\\jams\" -jar jams-launcher.jar PORT_NUMBER server.pem server.key where PORT_NUMBER is the port number you want to use to serve the application example 443 or 8443 Now your JAMS application will start with the server. Source: https://medium.com/@lk.snatch/jar-file-as-windows-service-bonus-jar-to-exe-1b7b179053e4","title":"Admin"},{"location":"admin/#troubleshooting-and-resetting","text":"If you ever need to restart from 0 (i.e. reset everything and drop existing data) you can do so by deleting the following files in the distribution folder ( /jams): The internal jams folder: /jams/jams derby.log oauth.key oauth.pub config.json This will reset the server to its original state and you will be able to run the configuration wizard again. Before performing this operation, please make sure to shutdown the server.","title":"Troubleshooting and resetting"},{"location":"admin/#admin-guide","text":"By default JAMS runs an embedded tomcat server visible on port 8080, however this is not practical for many reasons. This guide is designed to help you setup Jams to run in a production environment.","title":"Admin Guide"},{"location":"admin/#jams-nginx","text":"It is generally not recommended to expose JAMS directly to the outside world and while it is required to run JAMS in SSL mode, we usually recommend users to place it behind Nginx or a similar web server which proxies requests between the outside world and Jams. The following is an example map of how you could configure JAMS behind Nginx (the process would be similar if you wanted to use any other type of proxying solution): The IP 10.10.0.1 is random, and should be seen as an example. Typically you would add a new site called jams-site.conf to your nginx configurations which would contain the following entries if you wanted to place an SSL certificate at the Nginx level: server { listen 443 ssl; listen [::]:443 ssl; ssl on; ssl_certificate /etc/certificates/mycertificate.pem ssl_certificate_key /etc/certificates/mycertificatekey.pem client_max_body_size 100M; server_name jams.mycompany.com; location / { proxy_pass http://10.10.0.1:8080/; proxy_set_header X-Real-IP $remote_addr; proxy_set_header Host $http_host; } } This is the preferred setup method by most admins, as local traffic is usually ran unencrypted since it is usually either inter-VM connection, a VLAN or another dedicated link.","title":"JAMS & Nginx"},{"location":"admin/#running-jams-as-a-linux-service","text":"Running JAMS as a Linux Service is fairly straightforward with systemd - you simply created a service unit file with the following structure: [Unit] Description=JAMS Server [Service] Type=simple WorkingDirectory=[DIRECTORY WHERE JAMS WAS UNZIPPED] ExecStart=/usr/bin/java -jar [DIRECTORY WHERE JAMS WAS UNZIPPED]/jams-launcher.jar PORT SSL_CERTIFICATE SSL_CERTIFICATE_KEY [Install] WantedBy=multi-user.target The parameters PORT, SSL_CERTIFICATE and SSL_CERTIFICATE_KEY are optional (however, PORT can be used alone whereas the SSL_CERTIFICATE comes in pair with SSL_CERTIFICATE_KEY)","title":"Running JAMS as a Linux Service"},{"location":"admin/#running-jams-as-windows-service","text":"","title":"Running JAMS as Windows Service"},{"location":"admin/#download-and-install-jams","text":"Visit https://jami.net/services/ and downalod JAMS. Extract JAMS to c:\\jams","title":"Download and install JAMS"},{"location":"admin/#download-and-install-jdk-11","text":"Download JDK 11 from https://www.oracle.com/java/technologies/javase-jdk11-downloads.html (choose the conresponding architecture of your VM) Install it using the install wizard.","title":"Download and install JDK 11"},{"location":"admin/#download-openssl-to-generate-a-key-and-a-certificate","text":"Download OpenSSL from https://kb.firedaemon.com/support/solutions/articles/4000121705 (or choose another source https://wiki.openssl.org/index.php/Binaries) Once downloaded extract it to c:\\openssl then create a folder bin inside c:\\openssl\\bin Create a new file inside bin named openssl.cnf (make sure that the file extension is .cnd and not .cnd.txt) and copy past the following default configuration http://www.flatmtn.com/article/setting-openssl-create-certificates.html # # OpenSSL configuration file. # # Establish working directory. dir = . [ ca ] default_ca = CA_default [ CA_default ] serial = $dir/serial database = $dir/certindex.txt new_certs_dir = $dir/certs certificate = $dir/cacert.pem private_key = $dir/private/cakey.pem default_days = 365 default_md = md5 preserve = no email_in_dn = no nameopt = default_ca certopt = default_ca policy = policy_match [ policy_match ] countryName = match stateOrProvinceName = match organizationName = match organizationalUnitName = optional commonName = supplied emailAddress = optional [ req ] default_bits = 1024 # Size of keys default_keyfile = key.pem # name of generated keys default_md = md5 # message digest algorithm string_mask = nombstr # permitted characters distinguished_name = req_distinguished_name req_extensions = v3_req [ req_distinguished_name ] # Variable name Prompt string #------------------------- ---------------------------------- 0.organizationName = Organization Name (company) organizationalUnitName = Organizational Unit Name (department, division) emailAddress = Email Address emailAddress_max = 40 localityName = Locality Name (city, district) stateOrProvinceName = State or Province Name (full name) countryName = Country Name (2 letter code) countryName_min = 2 countryName_max = 2 commonName = Common Name (hostname, IP, or your name) commonName_max = 64 # Default values for the above, for consistency and less typing. # Variable name Value ------------------------ ------------------------------ 0.organizationName_default = My Company localityName_default = My Town stateOrProvinceName_default = State or Providence countryName_default = US [ v3_ca ] basicConstraints = CA:TRUE subjectKeyIdentifier = hash authorityKeyIdentifier = keyid:always,issuer:always [ v3_req ] basicConstraints = CA:FALSE subjectKeyIdentifier = hash","title":"Download openssl to generate a key and a certificate"},{"location":"admin/#add-openssl-to-sytem-environment-variables","text":"Go to Edit the system environment variables -> Environment Variables, then in System variables edit Path and add c:\\openssl\\","title":"Add OpenSSL to Sytem Environment variables"},{"location":"admin/#configure-openssl","text":"Execute the following command to set the path to OpenSSL configuration. set OPENSSL_CONF=c:\\openssl\\bin\\openssl.cnf Open the command prompt and cd c:\\jams ans generate the Key and Certificate: openssl req -newkey rsa:2048 -new -nodes -x509 -days 3650 -keyout server.key -out server.pem Follow the wizard. Once the key and certificate are generated execute the dir command you should see an output like this: c:\\jams>dir Volume in drive C has no label. Volume Serial Number is BC94-9EF2 Directory of c:\\jams 2020-11-10 12:38 PM . 2020-11-10 12:38 PM .. 2020-10-22 10:56 AM 5,186,016 jams-launcher.jar 2020-10-22 10:56 AM 33,413,882 jams-server.jar 2020-11-10 11:53 AM libs 2020-11-10 12:34 PM 1,732 server.key 2020-11-10 12:38 PM 1,336 server.pem 2020-10-22 04:05 PM 2,047,932 userguide.pdf 5 File(s) 40,650,898 bytes 3 Dir(s) 93,365,936,128 bytes free Now execute the following command tot start JAMS java -jar jams-launcher.jar PORT_NUMBER (eg. 8443 or 443) server.pem server.key Open a navigator on the server and visite https://localhost:443 or https://localhost:8443 to validate that it's working. Click CTRL + C to close the application","title":"Configure OpenSSL"},{"location":"admin/#expose-your-localhost-to-the-internet","text":"Click on Windows ans search for Windows Defender Firewall with Advanced Security. Right click on Inbound Rules and click on New Rule... Select Port click next and specify the port you want to use example 443 or 8443. Click next and select Allow the connection and click next. Leave all of Domain Private and Public select and click next. Name you Rule JAMS Inbound and click Finish Now right click on Outbound Rules and click on New Rule... Select Port click next and specify the port you want to use example 443 or 8443. Click next and select Allow the connection and click next. Leave all of Domain Private and Public select and click next. Name you Rule JAMS Outbound and click Finish. You are all set. You can now visit you application trought the server domain name or ip address on port 443 or 8443.","title":"Expose your localhost to the internet"},{"location":"admin/#create-a-jams-windows-service-embed-tomcat-server-windows-service-to-start-jams-with-the-server","text":"In order to create a JAMS Windows Service you can use the tool NSSM provided on http://nssm.cc/download https://github.com/kirillkovalenko/nssm Once downloaded open a command prompt and change directory to nssm-2.24\\win64 then execute: nssm.exe install JAMS A GUI interface will open. In the Path field specify the path to the Java executable example: \"C:\\Program Files\\Common Files\\Oracle\\Java\\javapath\\java.exe\". In the Startup directory put the \"C:\\jams\" installation folder path. In the last field Arguments add the following arguments: -classpath \"c:\\jams\" -jar jams-launcher.jar PORT_NUMBER server.pem server.key where PORT_NUMBER is the port number you want to use to serve the application example 443 or 8443 Now your JAMS application will start with the server. Source: https://medium.com/@lk.snatch/jar-file-as-windows-service-bonus-jar-to-exe-1b7b179053e4","title":"Create a JAMS Windows Service (Embed Tomcat Server Windows Service) to start JAMS with the server"},{"location":"clients/","text":"Client Guide Depending on your operating system, we have included the tutorial on how to connect to the management server from the Windows, MacOS, Android and iOS clients. For the purposes of this tutorial, we assume that The server and the device trying to connect are either On the same network The server is publicly accessible to the outside world You have a valid username/password pair to connect to the server Connect from a Linux device Open Jami, go to the login page. Click on \"Advanced\": Select the option \"Connect to a JAMS server\" which will lead you to the following screen: The Jami Account Management Server URL in this case would be the DNS address of your server and the username and password which correspond to your account. If you have configured the server with an LDAP/AD backend, it would be your LDAP/AD username and password. Connect from a Windows device Open Jami, go to the login page. Click on \"Advanced\": Select the option \"Connect to a JAMS server\" which will lead you to the following screen: The Jami Account Management Server URL in this case would be the DNS address of your server and the username and password which correspond to your account. If you have configured the server with an LDAP/AD backend, it would be your LDAP/AD username and password. Connect from a MacOS device Open Jami, go to the login page. Click on \"Advanced\": Select the option \"Connect to account manager\" which will lead you to the following screen: The Jami Account Management Server URL in this case would be the DNS address of your server and the username and password which correspond to your account. If you have configured the server with an LDAP/AD backend, it would be your LDAP/AD username and password. Connect from an Android device Open Jami, go to the login page. Select the option \"Connect to management server\" which will lead you to the following screen: The server in this case would be the DNS address of your server and the username and password which correspond to your account. If you have configured the server with an LDAP/AD backend, it would be your LDAP/AD username and password. Connect from an iOS device Open Jami, go to the login page. Select the option \"Connect to account manager\" which will lead you to the following screen: The server in this case would be the DNS address of your server and the username and password which correspond to your account. If you have configured the server with an LDAP/AD backend, it would be your LDAP/AD username and password.","title":"Clients"},{"location":"clients/#client-guide","text":"Depending on your operating system, we have included the tutorial on how to connect to the management server from the Windows, MacOS, Android and iOS clients. For the purposes of this tutorial, we assume that The server and the device trying to connect are either On the same network The server is publicly accessible to the outside world You have a valid username/password pair to connect to the server","title":"Client Guide"},{"location":"clients/#connect-from-a-linux-device","text":"Open Jami, go to the login page. Click on \"Advanced\": Select the option \"Connect to a JAMS server\" which will lead you to the following screen: The Jami Account Management Server URL in this case would be the DNS address of your server and the username and password which correspond to your account. If you have configured the server with an LDAP/AD backend, it would be your LDAP/AD username and password.","title":"Connect from a Linux device"},{"location":"clients/#connect-from-a-windows-device","text":"Open Jami, go to the login page. Click on \"Advanced\": Select the option \"Connect to a JAMS server\" which will lead you to the following screen: The Jami Account Management Server URL in this case would be the DNS address of your server and the username and password which correspond to your account. If you have configured the server with an LDAP/AD backend, it would be your LDAP/AD username and password.","title":"Connect from a Windows device"},{"location":"clients/#connect-from-a-macos-device","text":"Open Jami, go to the login page. Click on \"Advanced\": Select the option \"Connect to account manager\" which will lead you to the following screen: The Jami Account Management Server URL in this case would be the DNS address of your server and the username and password which correspond to your account. If you have configured the server with an LDAP/AD backend, it would be your LDAP/AD username and password.","title":"Connect from a MacOS device"},{"location":"clients/#connect-from-an-android-device","text":"Open Jami, go to the login page. Select the option \"Connect to management server\" which will lead you to the following screen: The server in this case would be the DNS address of your server and the username and password which correspond to your account. If you have configured the server with an LDAP/AD backend, it would be your LDAP/AD username and password.","title":"Connect from an Android device"},{"location":"clients/#connect-from-an-ios-device","text":"Open Jami, go to the login page. Select the option \"Connect to account manager\" which will lead you to the following screen: The server in this case would be the DNS address of your server and the username and password which correspond to your account. If you have configured the server with an LDAP/AD backend, it would be your LDAP/AD username and password.","title":"Connect from an iOS device"}]} \ No newline at end of file +{"config":{"lang":["en"],"min_search_length":3,"prebuild_index":false,"separator":"[\\s\\-]+"},"docs":[{"location":"","text":"Getting Started JAMS is a server application used to enroll Jami clients into an Enterprise context. Currently, JAMS supports 3 sources for user authentication: LDAP, Active Directory and an embedded database. Obtaining JAMS The latest Beta build of JAMS can be downloaded at: https://git.jami.net/savoirfairelinux/jami-jams System Requirements Windows, Linux or Mac OS operating system Java 11 or higher 4 GB RAM 1 CPU JAMS Concepts JAMS was built with security in mind, therefore it is intimately related to the X509 certificate management workflows. The central concepts which are used in JAMS are the Certification Authority (CA) and the Certificate Signing Requests (CSR). In the JAMS paradigm, a device (Jami client) requests a certificate to the server then presents it to other devices to be recognized as a valid member of the organization. Therefore, JAMS must be provided with a certificate authority in order to work properly. In order to be completely secure, JAMS does not generate certificates for devices, but instead issues certificates based on a certificate signing request sent to it by the device, therefore removing the need to send a private key over the wire. The diagram below shows the entire process of how a device enrolls with JAMS: \u200b Getting Started Download the latest version of JAMS from: https://jami.net/services/ Unpack the .tar file to a directory of your choice. It is mandatory to run JAMS using a secure SSL connection. To request your SSL certificate files using OpenSSL and generate a pair of PEM and KEY, enter the following command: openssl req -newkey rsa:2048 -new -nodes -x509 -days 3650 -keyout server.key -out server.pem Current limitation: JAMS does not support reading encrypted private keys which require a password unlock. Navigate to the directory where you have extracted the JAMS package and execute the following command: java -jar jams-launcher.jar PORT SSL_CERTIFICATE SSL_CERTIFICATE_KEY Argument Details PORT The TCP port on which you want JAMS to listen for incoming connections SSL_CERTIFICATE The location of the PEM-formatted SSL Certificate file SSL_CERTIFICATE_KEY The location of the PEM-formatted key file which is used with the SSL Certificate file from above An example of the command would be: java -jar jams-launcher 443 server.pem server.key Please note that any port above 1024 can be safely used to run JAMS. Step 1: create your admininistrator account This account will have administrative control and the rights to manage your users and group of Jami users. Step 2: setup the Certification Authority The second step is to define your Certification Authority. Important: a CA is not a server-side ssl certificate, it is a certificate which has the power to issue other certificates. Do not use the import option unless your company's security officer has issued you a CA certificate. Most commercially available certificates (i.e. those issued by godaddy, letsencrypt, etc... ) are not CA certificates. If you are an end-user we highly recommend you use to create a self-signed CA option as providing an incorrect certificate type will lead to a non-functional server. This certificate will be used to sign the enrollement requests which come from Jami devices. If you are not familiar with the X509 standard, we highly recommend you read the following articles to get familiar with the processes and practices which surround it: https://www.securew2.com/blog/public-key-infrastructure-explained/ https://cheapsslsecurity.com/blog/understanding-the-role-of-certificate-authorities-in-pki/ Step 3: setup the user database JAMS supports 3 different sources for the authentication of users: LDAP-compatible directory (such as OpenLDAP) Microsoft Active Directory Local embedded database Option 1: LDAP authentication If your company provides you with LDAP directory for user management, you will need to know its access information and a automated account which has read-only rights to do use look-ups. Your admin should provide you most of this information but we do provide a detailed overview over each field in case you need some extra help: Field Details Use StartTLS Your LDAP server can be configured to use either TLS/STARTTLS or PLAIN sockets, if STARTTLS is used you should mark this as true Server Address The address of your server with respect to the JAMS server, your LDAP does not need to be publicly accessible but should be accessible to JAMS. You should have either ldap:// or ldaps:// preceding the address. Port The port on which the LDAP server is listening for requests (usually 389 for PLAIN/STARTTLS and 636 for SSL/TLS) Administrator Username This is NOT the LDAP's administration account credentials, but the credentials of the account which has Read permissions to the LDAP database in order to lookup users. The format is generally cn=bot,ou=robots,dc=domain,dc=org Password The password used by the account above. BaseDN The base realm where the users accounts are located, in most cases it is ou=users,dc=company,dc=org Option 2: Microsoft Active Directory If your company provides you with Active Directory for user management, you will need to know its access information and an automated account which has read-only rights to do use look-ups. Your admin should provide you most of this information but we do provide a detailed overview over each field in case you need some extra help: Field Details Port The port on which Active Directory is listening (generally it is either 389 or 636) Host The address of your server with respect to the JAMS server, your Active Directory does not need to be publicly accessible but should be accessible to JAMS. Administrator Username This is NOT the Active Directory's administration account credentials, but the credentials of the account which has Read permissions to the Active Directory database in order to lookup users. The format is generally cn=bot,ou=robots,dc=domain,dc=net Password The password used by the account above. Use SSL Whenever this server uses SSL for data transmission Domain Name This is the legacy-formatted Windows Domain Name (i.e. WINDOMAIN ) Option 3: local embedded database The local database does not require any additional configuration, everything in the process is automated. This option allows you to create Jami users on the fly directly from the JAMS interface. Advanced settings: by default, the option \"Use public nameserver\" is disabled. Usernames of your Jami users will not be stored on the public Jami nameserver and your users will only be able to communicate with users from your organization. If you want your users to be searchable by external users and allow them to communicate with any Jami users, and not only the one from your organization, enable this option, Step 4: setup the server parameters Parameter Details CORS Domain Name The domain on which the JAMS client and administration UI will be running. Certificate Revocation List Lifetime The frequency at which the CRL is updated in memory Device Lifetime How long a device's certificate is valid before being considered stale and requiring re-enrollement User Account Lifetime How long a user account is valid before being considered stale and requiring re-enrollement Important The CORS Domain Name corresponds to the web address used to access the Web UI. By default, it is set to the same URL as the one where you deploy JAMS. Only set a different URL if the Web UI has a different URL to the one where JAMS is deployed. Click on \"Set Server Parameters\" to finalize the configuration. You will be redirected to the JAMS interface. If you have configured JAMS with your LDAP or Active Directory, the list of users should of your organization shoud be visible in JAMS. If you have selected the local embedded database, you can now start creating new users by clicking on \"Create User\"","title":"Home"},{"location":"#getting-started","text":"JAMS is a server application used to enroll Jami clients into an Enterprise context. Currently, JAMS supports 3 sources for user authentication: LDAP, Active Directory and an embedded database.","title":"Getting Started"},{"location":"#obtaining-jams","text":"The latest Beta build of JAMS can be downloaded at: https://git.jami.net/savoirfairelinux/jami-jams","title":"Obtaining JAMS"},{"location":"#system-requirements","text":"Windows, Linux or Mac OS operating system Java 11 or higher 4 GB RAM 1 CPU","title":"System Requirements"},{"location":"#jams-concepts","text":"JAMS was built with security in mind, therefore it is intimately related to the X509 certificate management workflows. The central concepts which are used in JAMS are the Certification Authority (CA) and the Certificate Signing Requests (CSR). In the JAMS paradigm, a device (Jami client) requests a certificate to the server then presents it to other devices to be recognized as a valid member of the organization. Therefore, JAMS must be provided with a certificate authority in order to work properly. In order to be completely secure, JAMS does not generate certificates for devices, but instead issues certificates based on a certificate signing request sent to it by the device, therefore removing the need to send a private key over the wire. The diagram below shows the entire process of how a device enrolls with JAMS: \u200b","title":"JAMS Concepts"},{"location":"#getting-started_1","text":"Download the latest version of JAMS from: https://jami.net/services/ Unpack the .tar file to a directory of your choice. It is mandatory to run JAMS using a secure SSL connection. To request your SSL certificate files using OpenSSL and generate a pair of PEM and KEY, enter the following command: openssl req -newkey rsa:2048 -new -nodes -x509 -days 3650 -keyout server.key -out server.pem Current limitation: JAMS does not support reading encrypted private keys which require a password unlock. Navigate to the directory where you have extracted the JAMS package and execute the following command: java -jar jams-launcher.jar PORT SSL_CERTIFICATE SSL_CERTIFICATE_KEY Argument Details PORT The TCP port on which you want JAMS to listen for incoming connections SSL_CERTIFICATE The location of the PEM-formatted SSL Certificate file SSL_CERTIFICATE_KEY The location of the PEM-formatted key file which is used with the SSL Certificate file from above An example of the command would be: java -jar jams-launcher 443 server.pem server.key Please note that any port above 1024 can be safely used to run JAMS.","title":"Getting Started"},{"location":"#step-1-create-your-admininistrator-account","text":"This account will have administrative control and the rights to manage your users and group of Jami users.","title":"Step 1: create your admininistrator account"},{"location":"#step-2-setup-the-certification-authority","text":"The second step is to define your Certification Authority. Important: a CA is not a server-side ssl certificate, it is a certificate which has the power to issue other certificates. Do not use the import option unless your company's security officer has issued you a CA certificate. Most commercially available certificates (i.e. those issued by godaddy, letsencrypt, etc... ) are not CA certificates. If you are an end-user we highly recommend you use to create a self-signed CA option as providing an incorrect certificate type will lead to a non-functional server. This certificate will be used to sign the enrollement requests which come from Jami devices. If you are not familiar with the X509 standard, we highly recommend you read the following articles to get familiar with the processes and practices which surround it: https://www.securew2.com/blog/public-key-infrastructure-explained/ https://cheapsslsecurity.com/blog/understanding-the-role-of-certificate-authorities-in-pki/","title":"Step 2: setup the Certification Authority"},{"location":"#step-3-setup-the-user-database","text":"JAMS supports 3 different sources for the authentication of users: LDAP-compatible directory (such as OpenLDAP) Microsoft Active Directory Local embedded database","title":"Step 3: setup the user database"},{"location":"#option-1-ldap-authentication","text":"If your company provides you with LDAP directory for user management, you will need to know its access information and a automated account which has read-only rights to do use look-ups. Your admin should provide you most of this information but we do provide a detailed overview over each field in case you need some extra help: Field Details Use StartTLS Your LDAP server can be configured to use either TLS/STARTTLS or PLAIN sockets, if STARTTLS is used you should mark this as true Server Address The address of your server with respect to the JAMS server, your LDAP does not need to be publicly accessible but should be accessible to JAMS. You should have either ldap:// or ldaps:// preceding the address. Port The port on which the LDAP server is listening for requests (usually 389 for PLAIN/STARTTLS and 636 for SSL/TLS) Administrator Username This is NOT the LDAP's administration account credentials, but the credentials of the account which has Read permissions to the LDAP database in order to lookup users. The format is generally cn=bot,ou=robots,dc=domain,dc=org Password The password used by the account above. BaseDN The base realm where the users accounts are located, in most cases it is ou=users,dc=company,dc=org","title":"Option 1: LDAP authentication"},{"location":"#option-2-microsoft-active-directory","text":"If your company provides you with Active Directory for user management, you will need to know its access information and an automated account which has read-only rights to do use look-ups. Your admin should provide you most of this information but we do provide a detailed overview over each field in case you need some extra help: Field Details Port The port on which Active Directory is listening (generally it is either 389 or 636) Host The address of your server with respect to the JAMS server, your Active Directory does not need to be publicly accessible but should be accessible to JAMS. Administrator Username This is NOT the Active Directory's administration account credentials, but the credentials of the account which has Read permissions to the Active Directory database in order to lookup users. The format is generally cn=bot,ou=robots,dc=domain,dc=net Password The password used by the account above. Use SSL Whenever this server uses SSL for data transmission Domain Name This is the legacy-formatted Windows Domain Name (i.e. WINDOMAIN )","title":"Option 2: Microsoft Active Directory"},{"location":"#option-3-local-embedded-database","text":"The local database does not require any additional configuration, everything in the process is automated. This option allows you to create Jami users on the fly directly from the JAMS interface. Advanced settings: by default, the option \"Use public nameserver\" is disabled. Usernames of your Jami users will not be stored on the public Jami nameserver and your users will only be able to communicate with users from your organization. If you want your users to be searchable by external users and allow them to communicate with any Jami users, and not only the one from your organization, enable this option,","title":"Option 3: local embedded database"},{"location":"#step-4-setup-the-server-parameters","text":"Parameter Details CORS Domain Name The domain on which the JAMS client and administration UI will be running. Certificate Revocation List Lifetime The frequency at which the CRL is updated in memory Device Lifetime How long a device's certificate is valid before being considered stale and requiring re-enrollement User Account Lifetime How long a user account is valid before being considered stale and requiring re-enrollement Important The CORS Domain Name corresponds to the web address used to access the Web UI. By default, it is set to the same URL as the one where you deploy JAMS. Only set a different URL if the Web UI has a different URL to the one where JAMS is deployed. Click on \"Set Server Parameters\" to finalize the configuration. You will be redirected to the JAMS interface. If you have configured JAMS with your LDAP or Active Directory, the list of users should of your organization shoud be visible in JAMS. If you have selected the local embedded database, you can now start creating new users by clicking on \"Create User\"","title":"Step 4: setup the server parameters"},{"location":"admin/","text":"Admin Guide By default JAMS runs an embedded tomcat server visible on port 8080, however this is not practical for many reasons. This guide is designed to help you setup Jams to run in a production environment. JAMS & Nginx It is generally not recommended to expose JAMS directly to the outside world and while it is required to run JAMS in SSL mode, we usually recommend users to place it behind Nginx or a similar web server which proxies requests between the outside world and Jams. The following is an example map of how you could configure JAMS behind Nginx (the process would be similar if you wanted to use any other type of proxying solution): The IP 10.10.0.1 is random, and should be seen as an example. Typically you would add a new site called jams-site.conf to your nginx configurations which would contain the following entries if you wanted to place an SSL certificate at the Nginx level: server { listen 443 ssl; listen [::]:443 ssl; ssl on; ssl_certificate /etc/certificates/mycertificate.pem ssl_certificate_key /etc/certificates/mycertificatekey.pem client_max_body_size 100M; server_name jams.mycompany.com; location / { proxy_pass http://10.10.0.1:8080/; proxy_set_header X-Real-IP $remote_addr; proxy_set_header Host $http_host; } } This is the preferred setup method by most admins, as local traffic is usually ran unencrypted since it is usually either inter-VM connection, a VLAN or another dedicated link. Troubleshooting and resetting If you ever need to restart from 0 (i.e. reset everything and drop existing data) you can do so by deleting the following files in the distribution folder ( /jams): The internal jams folder: /jams/jams derby.log oauth.key oauth.pub config.json This will reset the server to its original state and you will be able to run the configuration wizard again. Before performing this operation, please make sure to shutdown the server. Running JAMS as Windows Service Download and install JAMS Visit https://jami.net/services/ and downalod JAMS. Extract JAMS to c:\\jams Download and install JDK 11 Download JDK 11 from https://www.oracle.com/java/technologies/javase-jdk11-downloads.html (choose the conresponding architecture of your VM) Install it using the install wizard. Download openssl to generate a key and a certificate Download OpenSSL from https://kb.firedaemon.com/support/solutions/articles/4000121705 (or choose another source https://wiki.openssl.org/index.php/Binaries) Once downloaded extract it to c:\\openssl then create a folder bin inside c:\\openssl\\bin Create a new file inside bin named openssl.cnf (make sure that the file extension is .cnd and not .cnd.txt) and copy past the following default configuration http://www.flatmtn.com/article/setting-openssl-create-certificates.html # # OpenSSL configuration file. # # Establish working directory. dir = . [ ca ] default_ca = CA_default [ CA_default ] serial = $dir/serial database = $dir/certindex.txt new_certs_dir = $dir/certs certificate = $dir/cacert.pem private_key = $dir/private/cakey.pem default_days = 365 default_md = md5 preserve = no email_in_dn = no nameopt = default_ca certopt = default_ca policy = policy_match [ policy_match ] countryName = match stateOrProvinceName = match organizationName = match organizationalUnitName = optional commonName = supplied emailAddress = optional [ req ] default_bits = 1024 # Size of keys default_keyfile = key.pem # name of generated keys default_md = md5 # message digest algorithm string_mask = nombstr # permitted characters distinguished_name = req_distinguished_name req_extensions = v3_req [ req_distinguished_name ] # Variable name Prompt string #------------------------- ---------------------------------- 0.organizationName = Organization Name (company) organizationalUnitName = Organizational Unit Name (department, division) emailAddress = Email Address emailAddress_max = 40 localityName = Locality Name (city, district) stateOrProvinceName = State or Province Name (full name) countryName = Country Name (2 letter code) countryName_min = 2 countryName_max = 2 commonName = Common Name (hostname, IP, or your name) commonName_max = 64 # Default values for the above, for consistency and less typing. # Variable name Value ------------------------ ------------------------------ 0.organizationName_default = My Company localityName_default = My Town stateOrProvinceName_default = State or Providence countryName_default = US [ v3_ca ] basicConstraints = CA:TRUE subjectKeyIdentifier = hash authorityKeyIdentifier = keyid:always,issuer:always [ v3_req ] basicConstraints = CA:FALSE subjectKeyIdentifier = hash Add OpenSSL to Sytem Environment variables Go to Edit the system environment variables -> Environment Variables, then in System variables edit Path and add c:\\openssl\\ Configure OpenSSL Execute the following command to set the path to OpenSSL configuration. set OPENSSL_CONF=c:\\openssl\\bin\\openssl.cnf Open the command prompt and cd c:\\jams ans generate the Key and Certificate: openssl req -newkey rsa:2048 -new -nodes -x509 -days 3650 -keyout server.key -out server.pem Follow the wizard. Once the key and certificate are generated execute the dir command you should see an output like this: c:\\jams>dir Volume in drive C has no label. Volume Serial Number is BC94-9EF2 Directory of c:\\jams 2020-11-10 12:38 PM . 2020-11-10 12:38 PM .. 2020-10-22 10:56 AM 5,186,016 jams-launcher.jar 2020-10-22 10:56 AM 33,413,882 jams-server.jar 2020-11-10 11:53 AM libs 2020-11-10 12:34 PM 1,732 server.key 2020-11-10 12:38 PM 1,336 server.pem 2020-10-22 04:05 PM 2,047,932 userguide.pdf 5 File(s) 40,650,898 bytes 3 Dir(s) 93,365,936,128 bytes free Now execute the following command tot start JAMS java -jar jams-launcher.jar PORT_NUMBER (eg. 8443 or 443) server.pem server.key Open a navigator on the server and visite https://localhost:443 or https://localhost:8443 to validate that it's working. Click CTRL + C to close the application Expose your localhost to the internet Click on Windows ans search for Windows Defender Firewall with Advanced Security. Right click on Inbound Rules and click on New Rule... Select Port click next and specify the port you want to use example 443 or 8443. Click next and select Allow the connection and click next. Leave all of Domain Private and Public select and click next. Name you Rule JAMS Inbound and click Finish Now right click on Outbound Rules and click on New Rule... Select Port click next and specify the port you want to use example 443 or 8443. Click next and select Allow the connection and click next. Leave all of Domain Private and Public select and click next. Name you Rule JAMS Outbound and click Finish. You are all set. You can now visit you application trought the server domain name or ip address on port 443 or 8443. Create a JAMS Windows Service (Embed Tomcat Server Windows Service) to start JAMS with the server In order to create a JAMS Windows Service you can use the tool NSSM provided on http://nssm.cc/download https://github.com/kirillkovalenko/nssm Once downloaded open a command prompt and change directory to nssm-2.24\\win64 then execute: nssm.exe install JAMS A GUI interface will open. In the Path field specify the path to the Java executable example: \"C:\\Program Files\\Common Files\\Oracle\\Java\\javapath\\java.exe\". In the Startup directory put the \"C:\\jams\" installation folder path. In the last field Arguments add the following arguments: -classpath \"c:\\jams\" -jar jams-launcher.jar PORT_NUMBER server.pem server.key where PORT_NUMBER is the port number you want to use to serve the application example 443 or 8443 Now your JAMS application will start with the server. Source: https://medium.com/@lk.snatch/jar-file-as-windows-service-bonus-jar-to-exe-1b7b179053e4 Running JAMS as a Linux Service Running JAMS as a Linux Service is fairly straightforward with systemd - you simply created a service unit file with the following structure: [Unit] Description=JAMS Server [Service] Type=simple WorkingDirectory=[DIRECTORY WHERE JAMS WAS UNZIPPED] ExecStart=/usr/bin/java -jar [DIRECTORY WHERE JAMS WAS UNZIPPED]/jams-launcher.jar PORT SSL_CERTIFICATE SSL_CERTIFICATE_KEY [Install] WantedBy=multi-user.target The parameters PORT, SSL_CERTIFICATE and SSL_CERTIFICATE_KEY are optional (however, PORT can be used alone whereas the SSL_CERTIFICATE comes in pair with SSL_CERTIFICATE_KEY)","title":"Admin"},{"location":"admin/#admin-guide","text":"By default JAMS runs an embedded tomcat server visible on port 8080, however this is not practical for many reasons. This guide is designed to help you setup Jams to run in a production environment.","title":"Admin Guide"},{"location":"admin/#jams-nginx","text":"It is generally not recommended to expose JAMS directly to the outside world and while it is required to run JAMS in SSL mode, we usually recommend users to place it behind Nginx or a similar web server which proxies requests between the outside world and Jams. The following is an example map of how you could configure JAMS behind Nginx (the process would be similar if you wanted to use any other type of proxying solution): The IP 10.10.0.1 is random, and should be seen as an example. Typically you would add a new site called jams-site.conf to your nginx configurations which would contain the following entries if you wanted to place an SSL certificate at the Nginx level: server { listen 443 ssl; listen [::]:443 ssl; ssl on; ssl_certificate /etc/certificates/mycertificate.pem ssl_certificate_key /etc/certificates/mycertificatekey.pem client_max_body_size 100M; server_name jams.mycompany.com; location / { proxy_pass http://10.10.0.1:8080/; proxy_set_header X-Real-IP $remote_addr; proxy_set_header Host $http_host; } } This is the preferred setup method by most admins, as local traffic is usually ran unencrypted since it is usually either inter-VM connection, a VLAN or another dedicated link.","title":"JAMS & Nginx"},{"location":"admin/#troubleshooting-and-resetting","text":"If you ever need to restart from 0 (i.e. reset everything and drop existing data) you can do so by deleting the following files in the distribution folder ( /jams): The internal jams folder: /jams/jams derby.log oauth.key oauth.pub config.json This will reset the server to its original state and you will be able to run the configuration wizard again. Before performing this operation, please make sure to shutdown the server.","title":"Troubleshooting and resetting"},{"location":"admin/#running-jams-as-windows-service","text":"","title":"Running JAMS as Windows Service"},{"location":"admin/#download-and-install-jams","text":"Visit https://jami.net/services/ and downalod JAMS. Extract JAMS to c:\\jams","title":"Download and install JAMS"},{"location":"admin/#download-and-install-jdk-11","text":"Download JDK 11 from https://www.oracle.com/java/technologies/javase-jdk11-downloads.html (choose the conresponding architecture of your VM) Install it using the install wizard.","title":"Download and install JDK 11"},{"location":"admin/#download-openssl-to-generate-a-key-and-a-certificate","text":"Download OpenSSL from https://kb.firedaemon.com/support/solutions/articles/4000121705 (or choose another source https://wiki.openssl.org/index.php/Binaries) Once downloaded extract it to c:\\openssl then create a folder bin inside c:\\openssl\\bin Create a new file inside bin named openssl.cnf (make sure that the file extension is .cnd and not .cnd.txt) and copy past the following default configuration http://www.flatmtn.com/article/setting-openssl-create-certificates.html # # OpenSSL configuration file. # # Establish working directory. dir = . [ ca ] default_ca = CA_default [ CA_default ] serial = $dir/serial database = $dir/certindex.txt new_certs_dir = $dir/certs certificate = $dir/cacert.pem private_key = $dir/private/cakey.pem default_days = 365 default_md = md5 preserve = no email_in_dn = no nameopt = default_ca certopt = default_ca policy = policy_match [ policy_match ] countryName = match stateOrProvinceName = match organizationName = match organizationalUnitName = optional commonName = supplied emailAddress = optional [ req ] default_bits = 1024 # Size of keys default_keyfile = key.pem # name of generated keys default_md = md5 # message digest algorithm string_mask = nombstr # permitted characters distinguished_name = req_distinguished_name req_extensions = v3_req [ req_distinguished_name ] # Variable name Prompt string #------------------------- ---------------------------------- 0.organizationName = Organization Name (company) organizationalUnitName = Organizational Unit Name (department, division) emailAddress = Email Address emailAddress_max = 40 localityName = Locality Name (city, district) stateOrProvinceName = State or Province Name (full name) countryName = Country Name (2 letter code) countryName_min = 2 countryName_max = 2 commonName = Common Name (hostname, IP, or your name) commonName_max = 64 # Default values for the above, for consistency and less typing. # Variable name Value ------------------------ ------------------------------ 0.organizationName_default = My Company localityName_default = My Town stateOrProvinceName_default = State or Providence countryName_default = US [ v3_ca ] basicConstraints = CA:TRUE subjectKeyIdentifier = hash authorityKeyIdentifier = keyid:always,issuer:always [ v3_req ] basicConstraints = CA:FALSE subjectKeyIdentifier = hash","title":"Download openssl to generate a key and a certificate"},{"location":"admin/#add-openssl-to-sytem-environment-variables","text":"Go to Edit the system environment variables -> Environment Variables, then in System variables edit Path and add c:\\openssl\\","title":"Add OpenSSL to Sytem Environment variables"},{"location":"admin/#configure-openssl","text":"Execute the following command to set the path to OpenSSL configuration. set OPENSSL_CONF=c:\\openssl\\bin\\openssl.cnf Open the command prompt and cd c:\\jams ans generate the Key and Certificate: openssl req -newkey rsa:2048 -new -nodes -x509 -days 3650 -keyout server.key -out server.pem Follow the wizard. Once the key and certificate are generated execute the dir command you should see an output like this: c:\\jams>dir Volume in drive C has no label. Volume Serial Number is BC94-9EF2 Directory of c:\\jams 2020-11-10 12:38 PM . 2020-11-10 12:38 PM .. 2020-10-22 10:56 AM 5,186,016 jams-launcher.jar 2020-10-22 10:56 AM 33,413,882 jams-server.jar 2020-11-10 11:53 AM libs 2020-11-10 12:34 PM 1,732 server.key 2020-11-10 12:38 PM 1,336 server.pem 2020-10-22 04:05 PM 2,047,932 userguide.pdf 5 File(s) 40,650,898 bytes 3 Dir(s) 93,365,936,128 bytes free Now execute the following command tot start JAMS java -jar jams-launcher.jar PORT_NUMBER (eg. 8443 or 443) server.pem server.key Open a navigator on the server and visite https://localhost:443 or https://localhost:8443 to validate that it's working. Click CTRL + C to close the application","title":"Configure OpenSSL"},{"location":"admin/#expose-your-localhost-to-the-internet","text":"Click on Windows ans search for Windows Defender Firewall with Advanced Security. Right click on Inbound Rules and click on New Rule... Select Port click next and specify the port you want to use example 443 or 8443. Click next and select Allow the connection and click next. Leave all of Domain Private and Public select and click next. Name you Rule JAMS Inbound and click Finish Now right click on Outbound Rules and click on New Rule... Select Port click next and specify the port you want to use example 443 or 8443. Click next and select Allow the connection and click next. Leave all of Domain Private and Public select and click next. Name you Rule JAMS Outbound and click Finish. You are all set. You can now visit you application trought the server domain name or ip address on port 443 or 8443.","title":"Expose your localhost to the internet"},{"location":"admin/#create-a-jams-windows-service-embed-tomcat-server-windows-service-to-start-jams-with-the-server","text":"In order to create a JAMS Windows Service you can use the tool NSSM provided on http://nssm.cc/download https://github.com/kirillkovalenko/nssm Once downloaded open a command prompt and change directory to nssm-2.24\\win64 then execute: nssm.exe install JAMS A GUI interface will open. In the Path field specify the path to the Java executable example: \"C:\\Program Files\\Common Files\\Oracle\\Java\\javapath\\java.exe\". In the Startup directory put the \"C:\\jams\" installation folder path. In the last field Arguments add the following arguments: -classpath \"c:\\jams\" -jar jams-launcher.jar PORT_NUMBER server.pem server.key where PORT_NUMBER is the port number you want to use to serve the application example 443 or 8443 Now your JAMS application will start with the server. Source: https://medium.com/@lk.snatch/jar-file-as-windows-service-bonus-jar-to-exe-1b7b179053e4","title":"Create a JAMS Windows Service (Embed Tomcat Server Windows Service) to start JAMS with the server"},{"location":"admin/#running-jams-as-a-linux-service","text":"Running JAMS as a Linux Service is fairly straightforward with systemd - you simply created a service unit file with the following structure: [Unit] Description=JAMS Server [Service] Type=simple WorkingDirectory=[DIRECTORY WHERE JAMS WAS UNZIPPED] ExecStart=/usr/bin/java -jar [DIRECTORY WHERE JAMS WAS UNZIPPED]/jams-launcher.jar PORT SSL_CERTIFICATE SSL_CERTIFICATE_KEY [Install] WantedBy=multi-user.target The parameters PORT, SSL_CERTIFICATE and SSL_CERTIFICATE_KEY are optional (however, PORT can be used alone whereas the SSL_CERTIFICATE comes in pair with SSL_CERTIFICATE_KEY)","title":"Running JAMS as a Linux Service"},{"location":"clients/","text":"Client Guide Depending on your operating system, we have included the tutorial on how to connect to the management server from the Windows, MacOS, Android and iOS clients. For the purposes of this tutorial, we assume that The server and the device trying to connect are either On the same network The server is publicly accessible to the outside world You have a valid username/password pair to connect to the server Connect from a Linux device Open Jami, go to the login page. Click on \"Advanced\": Select the option \"Connect to a JAMS server\" which will lead you to the following screen: The Jami Account Management Server URL in this case would be the DNS address of your server and the username and password which correspond to your account. If you have configured the server with an LDAP/AD backend, it would be your LDAP/AD username and password. Connect from a Windows device Open Jami, go to the login page. Click on \"Advanced\": Select the option \"Connect to a JAMS server\" which will lead you to the following screen: The Jami Account Management Server URL in this case would be the DNS address of your server and the username and password which correspond to your account. If you have configured the server with an LDAP/AD backend, it would be your LDAP/AD username and password. Connect from a MacOS device Open Jami, go to the login page. Click on \"Advanced\": Select the option \"Connect to account manager\" which will lead you to the following screen: The Jami Account Management Server URL in this case would be the DNS address of your server and the username and password which correspond to your account. If you have configured the server with an LDAP/AD backend, it would be your LDAP/AD username and password. Connect from an Android device Open Jami, go to the login page. Select the option \"Connect to management server\" which will lead you to the following screen: The server in this case would be the DNS address of your server and the username and password which correspond to your account. If you have configured the server with an LDAP/AD backend, it would be your LDAP/AD username and password. Connect from an iOS device Open Jami, go to the login page. Select the option \"Connect to account manager\" which will lead you to the following screen: The server in this case would be the DNS address of your server and the username and password which correspond to your account. If you have configured the server with an LDAP/AD backend, it would be your LDAP/AD username and password.","title":"Clients"},{"location":"clients/#client-guide","text":"Depending on your operating system, we have included the tutorial on how to connect to the management server from the Windows, MacOS, Android and iOS clients. For the purposes of this tutorial, we assume that The server and the device trying to connect are either On the same network The server is publicly accessible to the outside world You have a valid username/password pair to connect to the server","title":"Client Guide"},{"location":"clients/#connect-from-a-linux-device","text":"Open Jami, go to the login page. Click on \"Advanced\": Select the option \"Connect to a JAMS server\" which will lead you to the following screen: The Jami Account Management Server URL in this case would be the DNS address of your server and the username and password which correspond to your account. If you have configured the server with an LDAP/AD backend, it would be your LDAP/AD username and password.","title":"Connect from a Linux device"},{"location":"clients/#connect-from-a-windows-device","text":"Open Jami, go to the login page. Click on \"Advanced\": Select the option \"Connect to a JAMS server\" which will lead you to the following screen: The Jami Account Management Server URL in this case would be the DNS address of your server and the username and password which correspond to your account. If you have configured the server with an LDAP/AD backend, it would be your LDAP/AD username and password.","title":"Connect from a Windows device"},{"location":"clients/#connect-from-a-macos-device","text":"Open Jami, go to the login page. Click on \"Advanced\": Select the option \"Connect to account manager\" which will lead you to the following screen: The Jami Account Management Server URL in this case would be the DNS address of your server and the username and password which correspond to your account. If you have configured the server with an LDAP/AD backend, it would be your LDAP/AD username and password.","title":"Connect from a MacOS device"},{"location":"clients/#connect-from-an-android-device","text":"Open Jami, go to the login page. Select the option \"Connect to management server\" which will lead you to the following screen: The server in this case would be the DNS address of your server and the username and password which correspond to your account. If you have configured the server with an LDAP/AD backend, it would be your LDAP/AD username and password.","title":"Connect from an Android device"},{"location":"clients/#connect-from-an-ios-device","text":"Open Jami, go to the login page. Select the option \"Connect to account manager\" which will lead you to the following screen: The server in this case would be the DNS address of your server and the username and password which correspond to your account. If you have configured the server with an LDAP/AD backend, it would be your LDAP/AD username and password.","title":"Connect from an iOS device"}]} \ No newline at end of file diff --git a/userguide/site/sitemap.xml.gz b/userguide/site/sitemap.xml.gz index 17d31fd5873d0f1314fdcb129c7fb43c9f9e271e..4f03892e270c174ea05b276552e2d9d2f9f3173c 100644 GIT binary patch delta 14 VcmX@ec#x4zzMF$1`p`tS-2fpR1hfDE delta 14 VcmX@ec#x4zzMF%?YUf0@-2fm{1d0Fv -- GitLab