I've been struggling for a few months to find the answers to all of life's questions... err.. I mean how to integrate an RSA SecurID soft-token with the VMware View iPad Client.

Why?
<ul>
	<li>PCI Compliance requires multi-factor authentication for remote access to your cardholder data environment.  It's also a good security practice if you use remote access.</li>
	<li>RSA SecurID is the most widely used form of multi-factor authentication, but there are certainly other options (Note: View only supports integration with RSA or RADIUS at this time).</li>
	<li>Users do not have to carry around a physical RSA keyfob.</li>
	<li>Users do not have to pull up the RSA app on their mobile device and remember the 8-digit token then fly over to the vmware view app and type in that code all within the 60- (or 30-) second window.  That's a little much for some folks to handle.</li>
</ul>
<div>The intended audience of this technical post is your "all-in-one" administrator (like me) or a team of administrators across your compliance/security, VDI, or vSphere IT groups.</div>
<!--more-->

Prerequisites:
<ul>
	<li>RSA Server 7.1 SP4 (This is what I tested against)</li>
	<li>View 5.1 with RSA enabled</li>
	<li>VMware View iPad App</li>
	<li>Access to your RSA server's admin page or be able to get the specific type of token from your RSA administrator in your organization.</li>
</ul>
<strong>One point of clarification:</strong>
<blockquote><strong> What is the difference between PIN, tokencode and PASSCODE?</strong>

The terminology can be very confusing. With two-factor authentication there are two components that a user needs in order to authenticate. The two factors are “something the user has – RSA Token which displays a tokencode” and “something the user knows - PIN”.  The PASSCODE is a combination of the user’s PIN followed by the tokencode. For example, if your PIN is abc1234 and the current tokencode is 987654, your PASSCODE is abc1234987654.</blockquote>
&nbsp;

<span style="text-decoration: underline"><strong>There are several broad steps in the beginning and I will be focusing this post on the last few steps -- but -- I have included all of the steps to make sure you're doing everything that needs to be done with info on how to do it.</strong></span>

<strong>1. Setup VMware View 5.1, a security server, and a connection server.  </strong>You should be able to access your view environment from outside your corporate network.
<strong> </strong>

<strong>2. Setup RSA Server 7.1 SP4.</strong>  Or have your RSA admin upgrade you to this version. Make sure this is integrated into your Active Directory environment to sync up beautifully with View. *Tip: Make sure your RSA server's computer name is all lowercase and never ever change the name.  Strange things happen if you do. *
<blockquote><strong>Here are some other things you have to do but I will not be providing detailed instructions in this post:</strong>

Setup your internal view connection server (paired with security server) as an "authentication agent" in RSA.

Download the SDCONF.REC file from your RSA server.

Configure your View Connection Server to force RSA authentication before Active Directory authentication.  Once you're ready to force users to use RSA (After training, and token setup, of course), you need to follow the instructions from the VMware View documentation, found <a href="http://pubs.vmware.com/view-51/index.jsp?topic=%2Fcom.vmware.view.administration.doc%2FGUID-70879B1F-1DB3-45EA-8D12-C93906F11959.html">here</a>.</blockquote>
<strong>3. Install the iPhone software token device type. </strong>  Go <a href="http://www.emc.com/security/rsa-securid/rsa-securid-software-authenticators/iphone-and-ipad.htm" target="_blank">here</a> and download the documentation and device definition file.  You or your RSA admin will need to install the iPhone device type into the RSA console.

<strong>4. Assign a software token to a user.</strong>  Instructions are on page 39 of the admin guide, "Provisioning File-Based Tokens".

<strong>5. Edit the user's token issue the token.</strong>
<ul>
	<li><strong>Go to Authentication &gt; SecurID Tokens &gt; Manage Existing.</strong></li>
	<li><strong>Find the new user's token, press the down arrow beside it and press edit.</strong></li>
	<li>Start and follow the steps beginning on page 40 of the admin guide, "Provisioning File-Based Tokens".</li>
</ul>
Some settings of note (the instructions refer you back to Steps 1-4 of thee previous section, so check these settings):
<ul>
	<li>Pages 35-36 - If you want to restrict delivery of the token to ONE Device, then follow those instructions to retrieve the info from the user's RSA app, replace the GUID serial number field, then issue the token.  BE WARNED:  This will BIND your token to that device.  If a user changes devices, then you will need to issue a new token.  This is also a 1-to-1 bind.  This means one software token license equals one device token.  In my use case, I am NOT binding tokens to devices and the user can use the same token in their View iPad app, on their iPad RSA app, and on their iPhone/Droid RSA app.</li>
	<li>Press "Save and Distribute Token."</li>
	<li>Choose Distribution Method: "Issue Token File SDTID".</li>
	<li>Page 37 - follow the suggestions in the graphic for "software token settings."</li>
	<li>Turn back to page 40, picking up at step 3.  Give your token a password (required to install the token on their device - a 4 digit pin is ok, for example 5672).</li>
	<li>Press Next to issue the token file and download the zip file. Extract it and get ready to use.</li>
</ul>
<strong>5. Setup the Token Converter tool. </strong>Download the software token converter tool from RSA's website <a href="http://www.emc.com/security/rsa-securid/rsa-securid-software-authenticators/converter.htm" target="_blank">here</a>.  Setup a converter folder on your computer and put the "TokenConverter.exe" and "sdti2tsf.dll" files in this folder (like C:\Temp).  Drop all of the downloaded and extracted SDTID files (from step 4) into the folder as well.  You can identify them by the file name  ... should be "<span style="text-decoration: underline">username_0000135562626.sdtid</span>" (where the numbers are the token ID.

<strong>6. Convert the SDTID files into the iPhone software token format</strong>.
<ul>
	<li>With your token converter files and the .SDTID files in one directory, open up a command prompt and navigate to that directory.</li>
	<li>The command to execute is below.  The NAMEtokenfile.txt is the output file (Name it whatever you like).  The output file consists of the "url" that you will send to each user via email, so you probably want to make the file name user specific as to not get confused.  The underlined portion is that specific SDTID file you want to convert.  5672 is the example password on the token that you or your admin put on the token file.
<ul>
	<li><strong>TokenConverter.exe <span style="text-decoration: underline">username_0000135562626.sdtid</span> -p 5672 -mobile -o NAMEtokenfile.txt</strong></li>
</ul>
</li>
</ul>
<p style="padding-left: 90px"><a href="http://egroup.jasonmangone.com/wp-content/uploads/2012/12/token-convert.png"><img class="alignnone size-medium wp-image-7772" src="http://egroup.jasonmangone.com/wp-content/uploads/2012/12/token-convert-300x35.png" alt="" width="300" height="35" /></a></p>
<p style="padding-left: 90px">(Click to enlarge the graphic)</p>
<strong>7. Send the token code to your user(s).  </strong>Open up your NAMEtokenfile.txt file(s) and copy the "url" out of the file and e-mail that to your user(s).  The URL is going to look something like this (I've changed the numbers so you can't steal my token):  com.rsa.securid://ctf?ctfData=202222222222222222222222222222222222222222222222222222222222222222722

<strong>8. Users should setup their RSA Accounts on your network.</strong>  You can make the RSA Server public through your DMZ but that's really not necessary for this purpose.  But you can.  In the same e-mail, direct your users to the link below.  They should click that link.  Login with their WINDOWS active directory username and password.  Then they will setup their PIN code and security questions.

https://rsaauthmgr.yourlocal.domain:7004/console-selfservice/SelfService.do

<strong>9. Install the token into the RSA app on your iPhone/iPad.</strong>
<ul>
	<li>Users should have the iPhone/iPad apps installed on their devices already (from the iTunes App store).</li>
	<li>Then they should open up their e-mail and click on the link you just sent them.</li>
	<li>This will open up the app and ask for the password (5672 in my example).</li>
	<li>It might also ask for the PIN code that they setup in the step above.</li>
</ul>
<strong>10. Install the token into your VMware View Client iPad app on your iPhone/iPad only after your connection server is RSA enabled. </strong>

*Note: Remember that if in step 5, you chose to bind the token to a specific device, that you must use one token per app.  You cannot use the token for both #9 and #10.*
<ul>
	<li>Users should already have the VMware View iPad app installed, available for free from the iTunes App store.</li>
	<li>Copy the URL from the email (The whole text) to the iPad/iPhone clipboard.</li>
	<li>Open the View Client app.</li>
	<li>Go into your view connection server - click "external token"</li>
	<li><strong>Token Description:</strong> call it whatever you want (plain text)</li>
	<li><strong>URL:</strong> paste the complete URL from the e-mail (output of the NAMEtokenfile.txt)</li>
	<li><strong>Password:</strong> if you put a password on the token (which you should have), then type that in (my example was 5672).</li>
</ul>
&nbsp;

Your login screen on your iPad now looks like this (click to enlarge):

<a href="http://egroup.jasonmangone.com/wp-content/uploads/2012/12/RSALoginScreen.png"><img class="alignnone size-medium wp-image-7778" src="http://egroup.jasonmangone.com/wp-content/uploads/2012/12/RSALoginScreen-225x300.png" alt="" width="225" height="300" /></a>

&nbsp;

And if you press "token code available.." you get the next screen where you can actually authenticate using an external token (if someone else needs to login with their credentials on your iPad/iPhone) (click to enlarge):

<a href="http://egroup.jasonmangone.com/wp-content/uploads/2012/12/RSATokenScreen.png"><img class="alignnone size-medium wp-image-7779" src="http://egroup.jasonmangone.com/wp-content/uploads/2012/12/RSATokenScreen-225x300.png" alt="" width="225" height="300" /></a>

&nbsp;

<strong>So once you have everything setup, you/your user clicks the View connection server in the app.  They enter their windows username and their RSA PIN (since the token is stored), then press done.  (it authenticates to RSA).  Then you/your user logs in with the windows username and password.</strong>

<strong>And BAM - your user's lives are easier while at the same time securing your critical data and being PCI Compliant!</strong>

&nbsp;

Shoot me a note if you have any questions on twitter or send me an email to phillip(at)phillipreynolds(dot)com.

----------------------------------------------

Phillip Reynolds is a guest blogger for eGroup and you can find more of his posts <a href="http://egroup.jasonmangone.com/author/phillip-reynolds">here</a>.  You can also keep up with him on Twitter @<a href="http://twitter.com/philvirtual">philvirtual</a>.