We at Selectec are a curious (nosy) bunch, so when we received two requests in a matter of a few days regarding using PaperCut with JumpCloud we needed no excuse to jump up and start our JumpCloud adventure.

For those that have never heard of it, JumpCloud is DaaS (<a href="https://www.youtube.com/watch?v=MrtHVdX2f7I" target="_blank" rel="noopener">Directory as a Service</a>) and basically allows you to take your traditional on-site User directory (think MS Active Directory) and stick it up in the cloud. As with many other traditionally on-site services this potentially frees up the need for hardware and associated support on site, while at the same time allowing admins control over their users, infrastructure, and client systems regardless of type. There are numerous features and benefits of using a system like this, but for our purposes, we will be particularly interested in the LDAP as a service functionality.

<img class="wp-image-4810 aligncenter" src="https://staging.selectec.com/wp-content/uploads/2018/06/jumpcloud_users.jpg" alt="" width="496" height="395" />

From a PaperCut point of view, this means nothing more than pointing the sync source settings to the JumpCloud service instead of an on-site server. If we think for a moment about the MS AD system, PaperCut will extract all the useful information that has typically been filled in by an administrator, things like:
<ul>
 	<li>Usernames,</li>
 	<li>Email addresses,</li>
 	<li>Group information,</li>
 	<li>User home folder locations,</li>
 	<li>Card/ID numbers,</li>
 	<li>Office/Department names and locations</li>
</ul>
Once synced, this information can then be used by various parts of the PaperCut system, in places like Integrated scanning for automatically filling in user email or home folder locations, or for sending users notifications via email.

As we soon discovered, although setting up the connection to sync to JumpCloud was relatively simple, the basic information made available did not include custom attributes, rather just the basic username, email and group details. At this point... In steps our integrations team, and with their wizard-like mastery of all things API they proclaimed "We can make an integration for that!" This essentially meant some of the other information which was not previously available could be accessed and pulled into PaperCut via the JumpCloud API (cool huh).

After some tinkering, we now find ourselves with an integration which will allow PaperCut to use JumpCloud as its sync source and includes the extra custom attributes needed for things like ID number sync and reporting on particular departments/offices. For more information on JumpCloud check out: <a href="https://jumpcloud.com/daas-product/">https://jumpcloud.com/daas-product/</a>
<h2>Go forth and sync!</h2>
Ok so if you're still reading after this point then it probably means you have a bit more than a passing interest in this, and so you might like to see some details of how and where to put in the details within PaperCut for the JumpCloud sync.

We're going to assume that by this point you have your users setup within the JumpCloud system including an LDAP binding user account and that PaperCut is installed and you are ready to set the user sync source.

So first we are going to log in to the PaperCut admin console and follow the steps below:
<ol>
 	<li>Select<strong> Options &gt; User/Group Sync</strong><strong> </strong></li>
</ol>
<strong>    </strong>The <strong>User/Gro</strong><strong>up Sync</strong> page is displayed.
<ol start="2">
 	<li>In the <strong>Sync Source</strong> area, under <strong>Primary sync source</strong>, select <strong>LDAP</strong>.</li>
</ol>
<ol start="3">
 	<li>Under <strong>LDAP Server Type</strong> select <strong>Standard (Unix/Open Directory)</strong>.</li>
</ol>
<ol start="4">
 	<li>Under <strong>LDAP Server Address</strong> type <a href="http://ldap.jumpcloud.com"><strong>ldap.jumpcloud.com</strong></a><strong> </strong></li>
</ol>
<ol start="5">
 	<li>Under <strong>Base DN </strong>enter <strong>ou=Users,o=</strong><strong><em>YOUR_ORG_ID</em></strong><strong>,dc=jumpcloud,dc=com</strong><strong> </strong></li>
</ol>
The organisation ID can be found on your JumpCloud admin console.<strong> </strong>
<ol start="6">
 	<li>Under <strong>Admin DN </strong>enter</li>
</ol>
<strong>uid=</strong><strong><em>LDAP_BINDING_USER</em>,ou=Users,o=</strong><strong><em>YOUR_ORG_ID</em></strong><strong>,dc=jumpcloud,dc=com</strong><strong> </strong>
<ol start="7">
 	<li>Under <strong>Admin password </strong>enter the password for the LDAP binding user.</li>
</ol>
<ol start="8">
 	<li>Click <strong>Apply</strong> and <strong>Test Settings</strong>, or if you're feeling brave skip right to the <strong>Synchronise Now</strong> button.</li>
</ol>
<img class="aligncenter size-full wp-image-4809" src="https://staging.selectec.com/wp-content/uploads/2018/06/jumpcloud_sync.jpg" alt="" width="785" height="347" />

All being well, when you check your <strong>Users</strong> section in PaperCut, you should see a list of the users synced from JumpCloud at this point. So.... Now you should be able to sync usernames, email addresses, and groups from the cloud. What if you want to sync the extra custom attributes we mentioned at the beginning of the article?
<h2>The magic</h2>
Download our free Jump Cloud Attributes Tool (<a href="https://staging.selectec.com/team/matt-smith/" target="_blank" rel="noopener">Matt</a> wanted to call it JumpyMcJumpCloud, Matt is not allowed to be in charge of names)
[widgetkit id="93" name="blog - Jumpcloud"]
<h2>Quick Start Guide:</h2>
<ol>
 	<li>Edit the config.toml file, this contains all the settings you need. Use your favourite text editor. Oh, Authtoken is the value set under "auth.webservices.auth-token" within PaperCut.</li>
 	<li>Run the application using a cmd prompt.</li>
 	<li>Set up a schedule using Windows scheduler to create a Cron job. We suggest you set this to run after PaperCut's nightly maintenance/sync, we would go with 2am.</li>
 	<li>This application will loop through all of the users in PaperCut then check JumpCloud for them and if they exist it will pull down the attributes from the fields set in the config file.</li>
 	<li>Consider using SSL/TLS, our setup was a test and not production.</li>
</ol>
<h2>More?</h2>
<p style="text-align: center;">Need help or looking for us to make something new? just get in touch.</p>

<h3>Get in touch today | <a href="mailto:sales@selectec.com">sales@selectec.com</a></h3>
&nbsp;