Advanced Setup Guide 4.2

Dell™ Desktop Workspace 4.2
Advanced Setup Guide
Copyright © 2014 Moka5, Inc. All rights reserved.
Moka5™, MokaFive™, LivePC™, and the Moka5 logo are trademarks of Moka5, Inc. All other product or company
names may be trademarks of their respective owners.
This documentation (and the software described herein) was provided based on your prior agreement to a
license agreement governing its use. A copy of the licensee agreement can be found on the web at
http://www.moka5.com/legal/ (for individuals) or in the signed written agreement between you, or your
company, and moka5, Inc. (and/or its resellers and distributors).
Open Source Components
Moka5/Desktop Workspace includes software components developed by open source organizations. A listing of,
and links to the sources for, these components can be found at http://opensource.mokafive.com/v2.
Company Information
Moka5 Headquarters
475 Broadway Street, 2nd Floor
Redwood City, CA 94063
http://www.moka5.com
Desktop Workspace 4.2
Advanced Setup Guide
2
Contents
Welcome to the Advanced Setup Guide!
9
Maintaining Your LivePC
10
Installing Applications and Patches
10
Introduction
10
Publishing a LivePC Update
10
Releasing a new Version or Reverting to a Previous Version
11
Releasing to all Users
11
Releasing to a Targeted Group of Users
11
Controlling Disk Space
11
Introduction
12
Adjusting App And User Disk Sizes
13
Resizing Disks
13
Adjusting System Disk Size
14
Controlling RAM
15
Introduction
15
Default Memory Settings
16
Memory Reserved for Host (Player policy)
16
Memory Reserved for Fearless Browser (Fixed, not Configurable)
17
Memory Reserved for LivePC (Fixed, not Configurable)
17
Percentage of Available Host Memory Assigned to LivePC (LivePC Policy)
17
Maximum RAM Limits Based on Guest and Host OS Instruction Set
17
Letting Users Adjust LivePC Memory
18
Hosts With Low RAM Capacity
18
Controlling CPU
19
How to Set Administrator Default Values Via LivePC Policy
19
How to Assign Exactly 1 vCPU to a LivePC
20
How to Assign One Fewer vCPUs as Host Cores
20
User Control
20
Working With User-Installed Applications
22
Introduction to User-installed Applications
22
Prerequisites
22
Step 1: Setting the Policy
22
Step 2: Installing a User Application
23
Step 3: Rejuvenating an Image
23
Installing a Standalone Image Store
25
Installing a Standalone Image Store
25
What if I Recieved a Warning?
30
Desktop Workspace 4.2
Advanced Setup Guide
3
What if my Registration Failed?
30
Manually Registering a Primary Image Store
30
Adding a Replica Image Store
32
Migrating a Derby Database to an SQL Server Database
34
Setting up a New SQL Server Database
34
Migrating to an SQL Server Database
35
Adding a Forward Proxy
37
Adding a Proxy Server
38
Changing Existing Proxies
38
Adding a Custom List of HTTP Headers
39
Adding a Reverse Proxy Server
40
Deploying a Reverse Proxy Server with Apache
41
Building an SSL Terminating Reverse Proxy Server Using Apache Web Server
41
Prerequisites
41
Overall Steps
42
Install Apache
42
Verify Connectivity and Firewall Settings (port 80)
42
Configure Apache
43
Enable Port 443
43
Enable Reverse Proxy in Apache (port 443)
43
​Copy and Convert the Desktop Workspace HTTPS Keys and Certificates
43
Configure Reverse Proxy (port 443)
44
Restart Apache
45
Test Reverse Proxy (Port 443)
45
Last Steps
46
Trusted Certificates
46
Installing an Active Directory Extender
47
Installation Guidance
47
Enabling Active Directory Extender
47
Installing Active Directory Extender
48
Using Active Directory Extender in the Management Server
51
Field Descriptions
51
Adding a Desktop Application Gateway
52
Using the Desktop Workspace 4.1.3 Desktop Application Gateway
52
Hardware Requirements
52
Adding a Gateway
53
Installing the Desktop Application Gateway
54
Test Your Desktop Application Gateway Configuration
55
Desktop Workspace 4.2
Advanced Setup Guide
4
Configuring SSL
56
SSL Background
56
Self-Signed or CA-Signed Certificates?
57
A Note on Load Balancers and Layer 7 Firewalls
57
Finishing SSL Setup in a Multi-server Self-signed Configuration
58
Adding a Certificate to the Management Server’s Trusted CA Certificates
58
Using Self-signed Certificates
58
Generating a new Self-signed Certificate
58
Copying Self-signed Certificate to Management Server’s Trusted CA Certificates
59
Enabling the new SSL Certificate
59
(Optional) Deleting old Certificates
59
Using CA-Signed Certificates
60
Generating a Certificate Signing Request (CSR)
60
Verifying the Certificate
60
Replacing a Certificate
61
Importing Private Key and SSL Certificates
61
Adding Intermediate Certificates
61
Adding an Enterprise Root CA
62
Replacing Expiring Certificates
62
CA-signed Certificates
62
Self-signed Certificates
62
Blocking and Filtering IPs Attempting to Access the Management Console
63
What is an IP Filter?
63
Using IP Filters in Desktop Workspace
63
Creating a New IP Filter
64
Modifying an IP Filter
64
Deleting an IP Filter
65
Configuring an HTTP Proxy for Outbound Traffic
66
Scaling the Management Server
68
Enabling Multi-Tenancy (Service Provider Edition)
69
Prerequisites
69
Wildcard Certificate
69
DNS Entry
69
Creating a New Tenant
70
Uninstalling Desktop Workspace
71
Uninstalling Desktop Workspace Enterprise Server Components
71
Uninstalling Desktop Workspace Clients: Windows PC
71
Uninstalling Desktop Workspace Clients: Mac
72
Alternate Method to Uninstall Mac Player
72
Desktop Workspace 4.2
Advanced Setup Guide
5
Run Host Scripts on Mac or Windows Host Computers
73
Display a Custom EULA When Starting Desktop Workspace Player
74
Creating Domain Join Packets Using an API
75
Using REST APIs in Desktop Workspace
76
API Formatting
76
Authentication and Authorization
76
Exporting User Information
78
Managing Active Resource Packets
78
Uploading an AD packet
78
Uploading a Reserved AD packet
80
Listing AD packets
80
Deleting an AD packet
81
Authentication
82
Rejecting a Login Attempt Based on Incorrect Credentials
82
Rejecting a Login Attempt Based on Insufficient User Permissions
82
Managing Devices
83
Looking Up Device Properties
83
Method 1
83
Method 2
83
Inventory
84
Looking Up LivePCs
84
Method 1 (Looking up a specific LivePC)
84
Method 2 (Looking up all existing LivePCs)
85
Looking Up Users in a Domain
86
Looking Up Subscriptions
87
Looking Up Devices
88
Looking Up Devices with Properties
89
Looking Up Client Packs
89
Managing Tenants
90
Create a Tenant
90
Update a Tenant
91
Retrieve Information About a Tenant
91
List All Existing Tenants
92
Delete a Tenant
93
Disable and Re-enable a Tenant
93
For more REST APIs, refer to Desktop Workspace REST APIs, Part 2.
94
Desktop Workspace REST APIs, Part 2
95
Integrating Desktop Workspace with a Self-Service Portal
95
Logging In as a User
95
Looking Up User Info
96
Desktop Workspace 4.2
Advanced Setup Guide
6
Downloading the Windows Player
96
Downloading the Mac Player
96
Downloading the BareMetal ISO
97
Managing Desktop Workspace with a Service Desk
97
Looking up Subscriptions
97
Revoking/Unrevoking an Active Subscription
98
Revoking an Active Subscription
99
First, Check the Subscription Status
99
Then, Unrevoke the Active Subscription
99
Then, Confirm the Subscription Status
99
Killing an Active Subscription
100
Then, Check the Subscription Status
100
Revoking/Unrevoking a Device
100
First, Check the Device Status
101
Then, Revoke the Device
101
Then, Confirm the Device Status
101
Or, Unrevoke the Device
101
Then, Check the Device Status
102
Killing an Active Device
102
Killing the Device
102
Then, Check the Device Status
102
Checking Server Status
103
Looking Up Version Information
103
Troubleshooting Common Errors
103
Looking Up Subscriptions for a User that Does Not Exist
103
Looking Up Devices for a User that Does Not Exist
104
Revoking or Unrevoking A Subscription that Does Not Exist
104
Revoking a Subscription that Does Not Exist
104
Unrevoking a Subscription that Does Not Exist
104
Revoking or Unrevoking a Subscription that has Been Killed
105
Revoking a Killed Subscription
105
Unrevoking a Killed Subscription
105
Killing a Device Subscription that Does Not Exist
105
Revoking or Unrevoking a Device that Does Not Exist
105
Revoking a Device that Does Not Exist
106
Unrevoking a Device that Does Not Exist
106
Revoking or Unrevoking a Device That Has Been Killed
106
Revoking a Killed Device
106
Unrevoking a Killed Device
106
Killing a Device That Does Not Exist
106
Identifying the MAC Addresses of Host Computers From the Management Server
Desktop Workspace 4.2
Advanced Setup Guide
108
7
About Dell Software
109
Contacting Dell Software
109
Technical Support Resources
109
Desktop Workspace 4.2
Advanced Setup Guide
8
Welcome to the Advanced Setup Guide!
This Advanced Setup Guide will first cover some advanced administration topics that apply to
Desktop Workspace.
l
Maintaining Your LivePCs
l
Working With User-Installed Applications
Then, this guide will show you how to expand a standard installation to one which can manage thousands of
users in remote offices, on the corporate network or on the Internet.
l
Desktop Application Gateway - Authenticate and manage endpoints over the Internet
l
Replica Image Store - Cache images for remote offices
l
SQL Server database - Improve performance, scalability, and manageability
l
CA certificates for SSL - Improve infrastructure security
l
Clustered Management Servers - Improve scalability
l
Multi-tenant infrastructure (Service Provider Edition) - Provide delegated accounts on a leveraged
infrastructure
Desktop Workspace 4.2
Advanced Setup Guide
9
Maintaining Your LivePC
Installing Applications and Patches
- Introduction
- Publishing a LivePC Update
- Releasing a new Version or Reverting to a Previous Version
Introduction
Images within Desktop Workspace can be modified and updated. Use Desktop Workspace Creator to create and
update LivePC images. Updates are then downloaded by users in the background and applied upon restart of
the image.
Updates are typically unnoticed by users. User data and domain ID (domain join) are always kept, and custom
installed applications can also be kept if the related policy is enabled.
There are two types of updates: Deep Copy and Shallow Copy. Deep Copy updates contain an entire copy of the
image. These updates are recommended after you remove files from your image. Shallow Copy updates
contain only image differences, not the full image. Shallow Copy updates are recommended if you add
incremental patches or applications to your image.
When making changes to a LivePC's data block, the Desktop Workspace Player/Creator creates a temporary
copy of the block before changing it. This improves reliability of data written to disk, but it also temporarily
increases the size of the local LivePC files, sometimes as much as doubling in size. When Player/Creator is idle,
it will compact the local LivePC files by removing the temporary copies, so eventually the LivePC files will
shrink. Also, when packaging a new LivePC version for upload to the server, Creator will first remove the
temporary blocks, so the uploaded version will not include the unnecessary blocks.
NOTE: We strongly recommend that you add applications incrementally. That is, do them one at a time
and test each one on the platforms you plan to support (i.e., MAC and/or PC) before moving on to the
next installation. We also advise you to test the image on multiple platforms if you are running special
GPO scripts. Be aware that some GPOs can delay the image boot time as the objects are being
downloaded. This is typically a one-time event for new images.
Publishing a LivePC Update
1. Launch Desktop Workspace Creator.
2. Click the Play button to start the LivePC image you want to update.
3. Make changes to your image, such as installing software or patches. The process is the same as we have
done in other sections.
Desktop Workspace 4.2
Advanced Setup Guide
10
4. Optionally, at this point, you can optimize the image using the Desktop Workspace tools (e.g., by
deleting temporary files, etc.) to keep the update as small as possible. 5. Shut down the LivePC image.
6. You can run Creator in ‘Test Mode’ if you want to test the new image before rolling it out to end users.
You can do this by choosing this option from the drop down menu in Creator.
7. Click the image drop down menu and select Package and upload.
8. Select Shallow Copy. The update is packaged and uploaded to the Management Server. The
Management Server will automatically assign the update a version number. Creator will automatically
subscribe to this latest version of the LivePC image.
Releasing a new Version or Reverting to a
Previous Version
Releasing to all Users
1. Go to the LivePC Images tab.
2. In the left navigation pane, click the image whose new version you’d like to release. The list of versions
appears. The currently released version is identified as current in the main panel with a green
checkmark icon.
3. In the main panel, identify the version you want to release. This can be either a new version, or a
previous version (if you’d like to revert to an older version).
4. Click the Make Current action.
5. Click Create.
All subscribed users will automatically be upgraded (or reverted) to the chosen release the next time their
Players check in with the Management Server.
Releasing to a Targeted Group of Users
1. Go to the LivePC Images tab.
2. In the left navigation pane, click the new image you want to release. 3. Click the Targeted Groups tab.
4. Identify the target and click Modify Targeting.
5. Select the correct version and click Finish.
All users in that target group will be upgraded (or reverted) to the chosen release the next time their Players
check in with the Management Server.
Controlling Disk Space
Desktop Workspace provides administrators and users flexibility in controlling disk space used in a LivePC.
Desktop Workspace 4.2
Advanced Setup Guide
11
- Introduction
- Adjusting App And User Disk Sizes
- Adjusting System Disk Size
Introduction
The layering technology in Desktop Workspace separates data into layers that can be managed independently.
A typical LivePC has 3 layers: system, app, and user. The layering technology dynamically composes the
separate layers into a single unified view. From the user’s point of view, most of their data is stored on a
familiar C: drive. But under the hood, each layer is stored on its own disk.
The individual disks that store each layer can fill up with data at different rates. The composed C: drive shows
the minimum free space across the app and user disks. This gives a view of the free space on the LivePC as a
whole. The free space displayed does not include the system disk, because most user operations write data to
the app or user disks.
The reported capacity of the C: drive is equal to the size of the largest of the three disks.
For example, if a user’s LivePC has the following disk situation, the C: drive in the LivePC would show 5 GB of
free space, with 40 GB of capacity.
Desktop Workspace 4.2
Advanced Setup Guide
12
Adjusting App And User Disk Sizes
Through Desktop Workspace layers, user data and settings are stored in the user disk, and user-installed
applications are stored in the app disk. If these disks fill up, the user will be unable to store more files or
install applications. In these cases, it’s helpful to be able to adjust disk size.
Administrators can increase the default size of the user and app disks by changing the size on Creator.
However, this will affect only new LivePC subscriptions, and won’t increase the disk of existing subscriptions.
For existing LivePC subscriptions, users can resize their LivePC user and app disks themselves through the
Player interface.
NOTE: Users can only adjust LivePC disk size when the LivePC is shut down, and if the LivePC policy
Allow user to resize LivePC disks is enabled.
Resizing Disks
1. Open Desktop Workspace Player, and find the LivePC you want to modify.
2. Click the Down triangle next to the LivePC name to open the LivePC menu.
3. In the LivePC menu, click Resize Disks. A dialog box appears.
4. Use the sliders to change the disk sizes as needed.
l
l
The first slider allows you to add disk space to the user and app disks jointly.
The second slider allows you to allocate more or less of the joint space to the user or app disks,
respectively.
Desktop Workspace 4.2
Advanced Setup Guide
13
Adjusting System Disk Size
This can only be done by the administrator as an image update in Creator.
1. Open Creator and find the LivePC you wish to modify.
2. Click the Down triangle next to the LivePC name. The LivePC Menu will open.
3. Click Configure.
4. Click the Storage tab.
Desktop Workspace 4.2
Advanced Setup Guide
14
5. Click Edit for the System disk and adjust the size as needed.
6. Publish this update to the image as a new version, to resizer the system disk for all users.
Controlling RAM
Desktop Workspace provides administrators and users flexibility in controlling memory used in a LivePC.
- Introduction
- Default Memory Settings
- Hosts With Low RAM Capacity
Introduction
You can control default LivePC RAM allocation through LivePC policies. Users can then allocate more or less
RAM, based on their preferences. LivePC RAM is adjustable, but only takes effect on restart of the LivePC. Desktop Workspace 4.2
Advanced Setup Guide
15
It is important to remember that hosts require RAM to operate. The Desktop Workspace factory defaults are
set to prevent overallocation of RAM. You can adjust these defaults through policies, but you should test
extensively before rolling out to your users. Overallocation issues such as slow performance and crashes are
sometimes intermittent and may be difficult to diagnose.
Default RAM for each LivePC is set through policies, and is based on the RAM capacity of the host. The
calculation is:
l
l
Default LivePC RAM = minimum reserved for LivePC + (Remaining host RAM x % set by policy)
Remaining host RAM = Capacity of Host – minimum reserved for Host – reserved for Fearless Browser –
(BareMetal only, if enabled) - minimum reserved for LivePC
Essentially, Player will first reserve RAM for the host and LivePC, and Fearless Browser if it’s been enabled on
a BareMetal host. Then the remaining RAM is split by a percentage set through policy. This allows you to
provide more RAM for LivePCs on large capacity hosts.
Default Memory Settings
Here are the default settings and the corresponding policies for the values that you can change.
Memory Reserved for Host (Player policy)
Host type
Default Value
Allowed Range
BareMetal
1.0 GB
Min: 512 MB
Mac
1.5 GB
Min: 1.0 GB
Windows 7
1.5 GB
Min: 1.0 GB
Windows XP
1.0 GB
Min: 512 MB
Desktop Workspace 4.2
Advanced Setup Guide
16
Memory Reserved for Fearless Browser (Fixed, not
Configurable)
Host type
Default Value
Allowed Range
BareMetal
300 MB
N/A
Memory Reserved for LivePC (Fixed, not Configurable)
LivePC type
Default Value
Allowed Range
Windows 7
1.0 GB
N/A
Windows XP
512 MB
N/A
Percentage of Available Host Memory Assigned to LivePC
(LivePC Policy)
Host type
Default Value
Allowed Range
BareMetal
80%
0% - 100%
Mac
50%
0% - 100%
Windows 7
50%
0% - 100%
Windows XP
50%
0% - 100%
NOTE: We suggest that once you’ve selected a host RAM reserved amount that works for your
organization, you do not change it. Reducing the amount can cause performance issues or instability.
Increasing the amount may cause LivePCs that had been suspended with a large amount of RAM to not
be able to start under a new, smaller host RAM reserve policy.
Maximum RAM Limits Based on Guest and Host OS
Instruction Set
Maximum LivePC RAM is bound by the host capacity as well the guest and host OS instruction set.
RAM Limit
Notes
Host OS
LivePC OS
Instruction
Set
Instruction
Set
32-bit
32 or 64-bit
1.25 GB
On a 32 bit host OS, each process is only allocated 2 GB of
RAM. Virtualization requires 0.75 GB.
64-bit
32-bit
3 GB
32-bit LivePC OS limits addressable RAM to 4 GB.
Virtualization requires 1 GB.
64-bit
64-bit
No limit besides host
RAM capacity
Host OS will require some RAM; about 1 to 1.5 GB
depending on the OS.
Desktop Workspace 4.2
Advanced Setup Guide
17
Letting Users Adjust LivePC Memory
By default, users can adjust their LivePC memory allocation through Player.
1. Turn off the LivePC.
2. Open the LivePC menu and select Adjust Memory.
The default value is determined through the policy settings and calculation described previously. The
minimum is determined by the LivePC OS type (see table) and the maximum is the host’s RAM capacity less the
minimum requirements for host, Fearless Browser (for BareMetal, if enabled), and LivePC.
You can also disallow users from adjusting memory by disabling the LivePC policy Allow the user to adjust
memory assignment.
Hosts With Low RAM Capacity
When users run Player on hosts with low RAM capacity, the RAM policies will disallow them from starting
LivePCs if sufficient RAM is unavailable. For example, for Windows 7 hosts, we set aside 1.5 GB of RAM for the host. Then, we only allow users to start
LivePCs if the host has RAM that meets a LivePC minimum. For Windows 7 LivePCs, that minimum is 1 GB. This
means that if someone has a 2 GB Windows 7 host, they will not be able to start a Windows 7 LivePC. When
starting, they will see a message much like the following.
Desktop Workspace 4.2
Advanced Setup Guide
18
If a user adjusts RAM settings for a LivePC, their setting will override any RAM setting set on the management
console. This means that once the user has used the Adjust Memory setting for a LivePC, changes to the RAM
setting on the management console will have no effect on that LivePC instance.
Controlling CPU
- How to Set Administrator Default Values Via LivePC Policy
- How to Assign Exactly 1 vCPU to a LivePC
- How to Assign One Fewer vCPUs as Host Cores
- User Control
How to Set Administrator Default Values Via
LivePC Policy
Virtual CPUs (vCPUs) are instantiated in the LivePC according to a percentage-based policy based on the
number of physical CPUs of the host. These policies establish the Administrator Default values and are applied
automatically to LivePCs.
LivePC Policy Name
Default
value
Allowed
range
Percentage of CPU cores assigned to a LivePC (BareMetal
host)
50%
0% - 100%
Percentage of CPU cores assigned to a LivePC (Mac host)
50%
0% - 100%
Percentage of CPU cores assigned to a LivePC (Windows
host)
50%
0% - 100%
In general, it’s best to set the number of vCPUs to fewer than the number of physical cores (i.e., a percentage
less than 100%). This reserves processing capacity for the host, which is recommended for best LivePC
performance.
The calculation used for instantiating vCPUs is:
Number vCPUs = Number of cores on the host x % set by policy
Or 1 vCPU, whichever is higher.
Note that the result will round down to the nearest whole number, but Desktop Workspace will always assign
at least 1 vCPU to the LivePC.
Desktop Workspace 4.2
Advanced Setup Guide
19
How to Assign Exactly 1 vCPU to a LivePC
Setting the CPU policy to 0% will assign exactly 1 CPU to the LivePC. In some cases, certain real-time
applications (such as VOIP) run with better performance when there is only a single vCPU in a LivePC.
How to Assign One Fewer vCPUs as Host Cores
Set the CPU policy to 99% - that will always result in one fewer vCPUs than number of cores on the host.
Note that Desktop Workspace will also count hyperthreaded cores when discovering the number of host cores. In general, hyperthreaded cores are desirable when working with Desktop Workspace LivePCs.
User Control
The administrator can allow end users to control the number of CPU cores to be used in the LivePC by enabling
this policy:
LivePC Policy Name (under User Control section)
Allow user to adjust memory and CPU used by a LivePC
If the policy is enabled, the end user will see the Adjust CPU option under the LivePC pull-down menu in
Desktop Workspace Player:
Selecting Adjust CPU will open the next dialog box:
Desktop Workspace 4.2
Advanced Setup Guide
20
This allows you to select the number of cores:
Desktop Workspace 4.2
Advanced Setup Guide
21
Working With User-Installed
Applications
Introduction to User-installed Applications
If allowed by policy, Desktop Workspace allows users to install personal applications onto their own images.
The ability to retain user installed applications is supported only on Windows images (regardless if they run on
a Mac or PC).
It is important to understand that user installed applications and user data are installed in their own layer
within the Desktop Workspace LivePC. Therefore, user installed applications and user data are not affected by
image updates and restarts. However, unlike user data, user installed applications are removed when a user
rejuvenates their image.
Rejuvenation allows users to return their image back to its original state. This action can be useful if a user
installed application (i.e., a virus) causes problems. Rejuvenation will remove all user installed applications
and restore the system files. Rejuvenation will not affect user data. If you require one or more user installed
applications to be persistent through rejuvenation, you must define these applications in the LivePC
personalization policy. Information on how to do this can be found later in this section.
Prerequisites
l
l
You must have a LivePC image with Desktop Workspace Guest Tools installed. For information on creating a LivePC from scratch, refer to Creating an Optimized Windows 7 LivePC
Image in the LIVEPC ADMN GUIDE.
Step 1: Setting the Policy
1. Log into the Desktop Workspace Management Console as a user who has the "Desktop
Administrator" role.
2. Open the Policies tab and select LivePC Policies > Custom.
3. Select the Targeted Group that you want to enable application persistence for. (You can also change
this from the Default tab if you like.)
4. Locate the Retain custom application installations policy, and make sure its value is set to Enable. If
you make a change, click Save afterward.
5. Start Player (or restart Player if it had already been running). This triggers a policy update check.
However, you can also wait for Player to check in automatically. This check-in time is based on Player
Policy setting in the Management Server.
6. Start the LivePC image and log into it as a user.
Desktop Workspace 4.2
Advanced Setup Guide
22
Step 2: Installing a User Application
The end user can now install applications inside their LivePC, assuming they have local administrator
permissions within Windows.
Example: Installing the Opera browser
The following example is intended to show an end user installing an application and demonstrate that the
application persists across shutdown or restart of the LivePC.
1. Download or copy an application (for example, the Opera browser, which you can find at
www.opera.com) onto your image, and install the application. (The Opera browser makes for a great
example as you get the entire executable, which is small and light weight.)
2. Run the installer.
3. Change the install options, or select Accept and Install to install with the defaults.
4. If you see the User Account Control dialog box, click Yes.
5. Opera will install and open up the browser interface. 6. Shut down the LivePC image, and restart it. This automatically restores the LivePC image’s system
layer, but does not touch the user installed apps layer or data layer.
7. Double-click the Opera Icon on your desktop to launch the browser and verify that it is installed. You
can also go to Start > Control Panel > Programs > Programs and Features. Confirm that the
application is still installed. The application remains installed even if the image’s system layer is
restored or updated.
Step 3: Rejuvenating an Image
NOTE: The Rejuvenate feature is available only when using a Layered LivePC image (and not available
with a Non-layered LivePC image).
As discussed earlier, rejuvenation allows users to return their image back to its original state. Rejuvenation
will remove all custom application installations (i.e., Opera) and restore the system files. This is also very
useful when a virus is injected by the user within the LivePC. Rejuvenation will not affect user data and
preferences. In order to verify the user data stays intact, change your desktop background or create a text file
and put it on your desktop. 1. Shut down the image.
2. On Player, click the Down triangle to expose the LivePC Settings menu.
3. Click Rejuvenate Now. This action removes custom application installations and restores the
system files.
4. Click Yes.
5. The rejuvenation process completes, which means the user application layer has been wiped
clean. Click OK.
6. Start the LivePC.
Desktop Workspace 4.2
Advanced Setup Guide
23
7. When the LivePC starts, validate that the user installed application is no longer installed and that
user data was unaffected. You may need to go to Add/Remove Programs to validate the
application removal. TIP: In some cases, desktop shortcuts and other application files may remain on the desktop even
though the application has been removed. This is because desktop shortcuts are installed as user data,
which is not wiped during the rejuvenation. Opera is a good example of the icon not being removed. If
you installed Opera, you will see the icon on your desktop, but the application will no longer be
installed. Just delete the icon or double-click it and then click Delete.
Desktop Workspace 4.2
Advanced Setup Guide
24
Installing a Standalone Image Store
- Installing a Standalone Image Store
- What if I Recieved a Warning?
- What if my Registration Failed?
- Manually Registering a Primary Image Store
Most organizations will want to install a standalone Image Store, rather than installing the Image Store and the
Management Server on the same server. You can use standalone Image Stores as replicas, or behind a load
balancer, as mirrored primary Image Stores.
NOTE: Before you install a standalone Image Store, you must download and install a Desktop Workspace
Management Server. To complete the server installation process, refer to Step 1: Install Desktop
Workspace Management Server in the QUICK START GUIDE.
To install and configure a Management Server and standalone Image Store: 1. Download and install a Management Server.
2. Install a standalone Image Store by running the server installer again and following the procedure
outlined in this document.
3. Log in to the Management Console. The server configuration wizard will run, and you will be prompted
to connect the newly installed Image Store to the Management Server by entering the Image Store's
URL and credentials.
Installing a Standalone Image Store
1. In the extracted Desktop Workspace Installation Package folder, start the Desktop Workspace Server
Installer by double clicking the Desktop Workspace Management Server installer file (MokaFive4.1.#.#-MgmtServer-Installer.exe).
2. User Account Control: Click Run.
3. Review the End-User License Agreement: Read them and click the checkbox next to I accept the
license terms and conditions, and then click Next.
Desktop Workspace 4.2
Advanced Setup Guide
25
4. Installation Components: Deselect the components you do not want to install, and check the Image
Store box. Click Next.
5. Installation Location: Click Next to accept the default installation location. Alternatively, click
Browse to specify a location.
Desktop Workspace 4.2
Advanced Setup Guide
26
6. Hostname & Port: If your installation host machine is joined to a domain, these fields will autofill with
the correct information. Click Next.
NOTE: If you check Automatically open port on Windows Firewall, a new inbound firewall rule named
MokaFive Secure Port will be created.
7. Administrator Credential: These fields autofill with the Bootstrap Admin account username. This
superuser account exists within the Desktop Workspace Management Server and Primary Image Store.
You can use the same credentials for the Management Server and Primary Image Store, or you can
create two accounts. We strongly recommend that you change the default username to something
more secure. Click Next. Desktop Workspace 4.2
Advanced Setup Guide
27
8. Component Registration: By default, the Image Store will register with the Management Server upon
installation and appear for targeting in the Management Console. If you do not register the Image Store
during installation, you must register it manually by following the steps in Best Practices for Setting Up
a Replica Image Store. NOTE: If you are installing a mirrored Image Store, do not check the Register components with the
Desktop Workspace Management Console box. Only the Primary Image Store, behind a load balancer,
should be registered with the Management Console. This insures that traffic is directed to the load
balancer, rather than being directed exclusively to one of the mirrored or replica Image Stores.
Enter your server hostname, port, and bootstrap admin credentials, and click Next.
Desktop Workspace 4.2
Advanced Setup Guide
28
9. Installation Preview: This screen summarizes the customization choices you made while running the
installer. Review your choices. Click Back to make changes, or, to accept the summary and begin the
installation, click Next.
NOTE: The Register the Image Store with the Management Server line only appears if you register
the Image Store with the Management Server in step 8.
10. The installation begins.
Congratulations! You have just installed a standalone image store!
Desktop Workspace 4.2
Advanced Setup Guide
29
What if I Recieved a Warning?
Some installations will return warning messages when they succeed. These messages appear when the Image
Store has tried and failed to register with the Management Server, or when attempts to open firewall ports
fail due to insufficient user permissions, or AV or other software (for example, third-party management tools,
such as SCCM) interfere.
If you get a warning message after a successful installation, navigate to the log file referenced in the warning.
These logs will help you identify the problem.
What if my Registration Failed?
You can register your Image Store with the Management Server manually.
Manually Registering a Primary Image
Store
If you did not register the Image Store, or if there was a problem registering the Image Store with the
Management Server, follow the next procedure to manually register the Image Store.
NOTE: If you installed a mirrored Primary Image Store (an Image Store running behind the same load
balancer as your Primary Image Store), do not register it with the Management Server.
The service takes a minute or so during initial start. After that period, do this:
1. Navigate to the Image Store's server configuration,or "iconfig" interface (https://<ris_dns_
name>/iconfig).
2. Log in with your bootstrap admin credentials.
Desktop Workspace 4.2
Advanced Setup Guide
30
3. Go to Settings > Access Keys.
4. Click the pencil icon at the end of the key and choose Delete.
5. Click Add Access Key.
6. In another browser window, log on to your Management Server’s iconfig interface.
7. Go to Settings > Access Keys.
8. Copy the Key ID and Key Secret to the empty Add Access Key fields on the Image Store’s
iconfig interface.
9. Register the Image Store with the Management Server, and log in to the Management Console with
your bootstrap admin credentials.
10. Navigate to Settings > Infrastructure and click into the Images Stores tab.
11. Click Add.
12. Enter the correct server URL for the Image Store and the Key ID and Key Secret.
13. Click Test to send a request from the Management Server to the Image Store.
14. If the test succeeds, click Save to apply the changes.
Desktop Workspace 4.2
Advanced Setup Guide
31
Adding a Replica Image Store
For more information on setting up a Replica Image Store, refer to this Knowledge Base article on the topic.
Replica image stores provide for distributed storage of images and clients so that image and client updates do
not all have to come through the primary image store. As you grow your infrastructure, we recommend adding
replica image stores as follows:
First as a “primary” replica to offload work and traffic from your management server. When you do this, the
replica may reside in the same location as the management server; but, by moving it to another box, you can
separate traffic such that updates made to the golden image in Creator get published to the primary image
store, and updates to the LivePCs running in Player all get pulled from the replica.
NOTE: When adding this first replica, you will need to: l
l
l
Set the Player policy Image Store to Use to instruct your Players to get updates from the
replica, or
In the Management Server, define a range of UIP addresses that the replica will serve
(optional).
As you need to support a growing number of remote users, you can add replica image stores in
those locations to speed up distribution of updates (as the updates can now be delivered over
the LAN instead of the WAN).
Note that when the Management Server determines that a Player or Creator needs to download LivePCs or
updates, the management server passes a URL that includes the fully qualified domain name of the
appropriate Image Store. This FQDN must be resolvable by the Player/Creator at run time, meaning that the
Primary Image Store and all Replica Image Stores must typically be set up with split DNS and Application
Gateway proxy entries to enable Players and Creators to receive updates when not on the corporate network:
Desktop Workspace 4.2
Advanced Setup Guide
32
There is one scenario wherein a Replica Image Store would not require split DNS and an Application Gateway
proxy entry--if you assigned clients to a Replica Image Store by IP address in addition to (or instead of) the
player policy Image store to use. The Player’s IP address is evaluated by the Management Server and
compared to IP address ranges assigned to each Image Store. A Player connecting from the internet would not
match the IP range for the Replica Image Store, and so would use the Primary Image Store, resolving the FQDN
of the Primary Image Store through split DNS and connecting to the Primary Image Store through the
Application Gateway proxy. The same Player would match the IP range if that Player were on the corporate
network, and would then resolve the FQDN of the Replica Image Store via internal DNS:
If deploying multiple Replicas, repeat this section on a different sheet.
Desktop Workspace 4.2
Advanced Setup Guide
33
Migrating a Derby Database to an SQL
Server Database
- Setting up a New SQL Server Database
- Migrating to an SQL Server Database
In pre-4.1 Desktop Workspace installations, you could use Derby databases for pre-production deployments.
Support for Derby databases was deprecated in Desktop Workspace 4.1. If you are using a Derby database, you
msut migrate to a SQL Server database for a production deployment.
IMPORTANT: You must migrate your Derby databases to SQL before you can upgrade to Desktop
Workspace 4.1.3.
You will need the following information to migrate to SQL Server. Save this information to use when you are
going through the SQL Server set up process.
SQL Server Hostname:
SQL Server IP Address:
Port:
Database name (e.g., m5esdb):
Database username:
Database password:
Setting up a New SQL Server Database
Your database administrator will need to create and configure your SQL Server database with the following
requirements prior to migration:
1. Configure Static TCP/IP Port Number for SQL Server Database Engine, e.g. 1433. For more information,
refer to this Microsoft knowledge base article: http://msdn.microsoft.com/enus/library/ms177440.aspx.
2. Fill out the port number in the table above.
2. Configure for Mixed Mode Authentication to support SQL Server Authentication. Desktop Workspace
requires SQL Server Authentication.
3. Create a local SQL Server database user account for use with Desktop Workspace.
4. Fill out the username and password in the table above.
5. Create a new database for use with Desktop Workspace. The default database name is m5esdb, but
yyou can set a name in line with your DBA requirements.
6. Fill out database name in the table above.
Desktop Workspace 4.2
Advanced Setup Guide
34
7. Assign the Desktop Workspace database user to the new database and set permissions for the database
user. Initially, the account should have db_owner or schema modification rights in order to have
permissions to generate tables and other information in the database. After the installation, the
account permissions can be reduced to the following roles:
l
db_datawriter
l
db_datareader
l
db_ddladmin
IMPORTANT: Desktop Workspace currently does not support named SQL Server instances (<Server
Hostname><Named Instance>). Desktop Workspace will only work with the default instance. Check with
your database administrator if you are not sure about the database server configuration.
Migrating to an SQL Server Database
1. Before proceeding with the migration, you should do the following:
a. Schedule server downtime for the database migration to ensure that no changes are lost
during the process. Temporarily block the inbound port on the firewall to the Desktop
Workspace Management server during maintenance. By default, Desktop Workspace uses port
443 for communication.
b. Back up the database. Stop the Desktop Workspace Enterprise Server service. Make a backup
copy of the Derby database folder (C:\Program Files (x86)\Mokafive\Derby), then start the
Desktop Workspace Enterprise Server.
2. Log in to Management Console as the "bootstrap user".
3. Go to M Settings > Maintenance > DB Migration and fill out the Target Database Settings with the
information from the table above.
4. Enter database settings for the target new database.
Desktop Workspace 4.2
Advanced Setup Guide
35
CAUTION: Verify that the target SQL database is the one you created earlier. The migration
process will delete and recreate the tables in the targeted SQL database. Make sure you entered
the correct database.
5. Click Start.
6. Log out and log in with the iconfig (https://<servername>/iconfig).
7. Go to Settings > Database and click Edit Settings.
8. Set up Desktop Workspace with the migrated SQL database and test the connection.
9. Click Update and restart the server.
10. Reset the inbound port firewall setting for the Desktop Workspace Management server to ALLOW. (By
default, Desktop Workspace uses port 443 for communications.)
10. Verify server functionality.
Desktop Workspace 4.2
Advanced Setup Guide
36
Adding a Forward Proxy
- Adding a Proxy Server
- Changing Existing Proxies
- Adding a Custom List of HTTP Headers
If your Management Server is installed within a corporate network, you can use a proxy server to increase
scalability without sacrificing security. A proxy relays an outside request to a server, provided that request
includes specific types of identifying information.
NOTE: We strongly recommend that you use a proxy server in conjunction with IP filters. If you do not
use an IP filter and a proxy, the proxy will direct any request with an acceptable HTTP header to the
Management Server. Adding an IP filter can protect your Management Server from malicious or
insecure requests by allowing you to only allow requests from explicitly approved IPs.
For more information, refer to Blocking and Filtering IPs Attempting to Access the Management
Console.
When you add a proxy server in front of the Management Server and you wish to use the Remote Access filter
provided by the Management Server, you must add the proxy server in the Management Console. The proxy
checks a list of approved HTTP headers against the credentials presented by the originated remote IP address
injected by the proxy server. If you specify a list of approved remote IP addresses, any request that does not
include an HTTP header from the list will be rejected.
Desktop Workspace provides a list of commonly used HTTP headers, and checks for them in the
following order:
l
X-Forwarded-For
l
Z-Forwarded-For
l
NS-Proxy-Client-IP
l
WL-Proxy-Client-IP
l
HTTP_X_FORWARDED_FOR
l
HTTP_X_FORWARDED
l
HTTP_X_CLUSTER_CLIENT_IP
l
HTTP_CLIENT_IP
l
HTTP_FORWARDED_FOR
l
HTTP_FORWARDED
l
HTTP_VIA
l
REMOTE_ADDR
Desktop Workspace 4.2
Advanced Setup Guide
37
Adding a Proxy Server
You can add a proxy server through the Desktop Workspace Management Console.
1. Log in to the Management Console using your bootstrap admin account.
2. Navigate to Settings > Infrastructure, and click on the Remote Access tab.
3. Click Add a New Proxy Server. The “Add Proxy Server” window opens.
4. Enter the proxy’s static IP or hostname (example: proxy.yourcompany.com) and click Add.
NOTE: We recommend using a static IP to identify the proxy server. If the proxy server is configured
with Dynamic Host Configuration Protocol (DHCP), it is possible to use the proxy server’s host name
instead of a static IP address, but this option is not recommended. If you use the hostname, the
Management Server will attempt to resolve the proxy server’s hostname for each request. This extra
step can lead to performance issues in high-demand environments.
5. If the setup is successful, the proxy will be added to the list in the Hostname/IP column.
Changing Existing Proxies
1. In the Infrastructure menu, find the proxy you wish to edit in the Hostname/IP column.
2. Click Edit next to the proxy name. The Modify Proxy Server window opens.
Desktop Workspace 4.2
Advanced Setup Guide
38
3. Modify the IP or hostname and click Save.
You can also delete a proxy by clicking Delete in the Action column next to the proxy name.
Adding a Custom List of HTTP Headers
The default list of HTTP headers provided by Desktop Workspace covers most commonly used headers.
You may want to upload a custom list of headers if you have special circumstances, but for most users the
default Desktop Workspace list will be sufficient.
You can define your own list of headers by modifying the properties file in your Desktop Workspace directory.
1. Navigate to your Desktop Workspace configuration directory: C:/…/MokaFive/conf
2. Click to open the m53s.properties file.
3. Find or add the following line:
m5es.proxyForwardedLookupHeaders
4. Add comma-separated HTTP headers to this line in the order you would like them checked.
For example:
m5es.proxyForwardedLookupHeaders=X-Forwarded-For,Z-Forwarded-For
5. Save the file.
NOTE: User-provided lists of HTTP headers overrule the default Desktop Workspace list. If you upload
your own list of headers, make sure it is comprehensive. The proxy will check for headers in the order
you enter them in the list.
Desktop Workspace 4.2
Advanced Setup Guide
39
Adding a Reverse Proxy Server
If your organization supports Desktop Workspace Players that check in from the internet, you may require a
Reverse Proxy Server. This server terminates SSL connections in your DMZ before forwarding application traffic
to the appropriate Desktop Workspace application server. We recommend using hardware reverse proxy servers. Alternatively, you can build and deploy your own reverse proxy server using an open-source software solution,
such as Apache. To deploy an Apache server solution, refer to Deploying a Reverse Proxy Server With Apache.
Finally, if you need RSA two-factor authentication, you can use Desktop Workspace's Desktop Application
Gateway. To deploy a Desktop Workspace Application Gateway, refer to Adding a Desktop Application Gateway. Desktop Workspace 4.2
Advanced Setup Guide
40
Deploying a Reverse Proxy Server
with Apache
- Building an SSL Terminating Reverse Proxy Server Using Apache Web Server
- Install Apache
- Verify Connectivity and Firewall Settings (port 80)
- Configure Apache
- Deploying a Reverse Proxy Server with Apache
- Configure Reverse Proxy (port 443)
- Restart Apache
- Test Reverse Proxy (Port 443)
- Last Steps
- Trusted Certificates
If your organization supports Desktop Workspace Players that check in from the internet, you may require a
Reverse Proxy Server. This server terminates SSL connections in your DMZ before forwarding application traffic
to the appropriate Desktop Workspace application server.
Building an SSL Terminating Reverse Proxy
Server Using Apache Web Server
If you do not need two-factor RSA authentication and only require termination of connections in the DMZ, you
can use a hardware- or software-based solution for reverse proxy servers and load balancers. A software SSL
terminating reverse proxy server can be built and used with popular webservers like Apache httpd or IIS.
The following procedure outlines how to deploy a reverse proxy server with Apache.
Prerequisites
l
A Desktop Workspace server at server.yourcompany.com
l
An additional server or device to act as the reverse proxy, installed at gateway.yourcompany.com
Desktop Workspace 4.2
Advanced Setup Guide
41
Overall Steps
1. Install Apache
2. Verify Connectivity and Firewall Settings (port 80)
3. Configure Apache
4. Enable Port 443
5. Enable Reverse Proxy in Apache (port 443)
6. Deploying a Reverse Proxy Server with Apache
7. Configure Reverse Proxy (port 443)
8. Restart Apache
9. Test Reverse Proxy (Port 443)
10. Last Steps
Install Apache
1. Log in to Windows on the Gateway with the built-in local Administrator account.
2. Open Internet Explorer.
3. Log in to the Desktop Workspace Customer Support Center and navigate to the download page.
4. Download the Apache HTTP Server 2.2.27 for Windows Installer (.msi file).
5. Launch the Apache HTTP Server installer.
6. Click Next and accept all default fields until you reach the "Server Settings" screen.
7. Make changes to the following fields:
a. Network Domain: Enter the domain that your Gateway belongs to.
b. Server Name: Enter the host name of your Gateway server.
c. Administrator's Email Address: Enter your email address.
d. Accept the default option to Install Apache as a Service.
8. Accept the Typical setup option and click Next, Install, and Finish.
Verify Connectivity and Firewall Settings
(port 80)
1. Log in to Windows on the Gateway with the built-in local Administrator account.
2. Open the Firewall Settings in the Windows Control Panel.
3. Ensure that the HTTP port (port 80) and HTTPS port (port 443) are allowed through the firewall.
4. On a separate computer, open a browser and navigate to http://gateway.yourcompany.com. "It
works!" should appear in the browser.
Desktop Workspace 4.2
Advanced Setup Guide
42
Configure Apache
You can configure Apache by editing a text file named http.conf. When you installed Apache for Windows, it
created a helpful shortcut in the Start Menu.
1. Log in to the File Gateway Server (via RDP) with the built-in local Administrator account.
2. On the File Gateway Server, click Start > All Programs > Apache HTTP Server 2.2 > Configure Apache
Server > Edit the Apache httpd.conf configuration file.
3. The httpd.conf file opens in a text editor. Configure the following settings in the file:
Enable Port 443
1. Within the httpd.conf file, search for the following line:
Listen 80
2. Change this value to 443.
Listen 443
3. ​Save your changes.
Enable Reverse Proxy in Apache (port 443)
1. Within the http.conf file, search for the following lines:
#LoadModule proxy_module modules/mod_proxy.so
#LoadModule proxy_connect_module modules/mod_proxy_connect.so
#LoadModule proxy_http_module modules/mod_proxy_http.so
#LoadModule rewrite_module modules/mod_rewrite.so
#LoadModule headers_module modules/mod_headers.so
#LoadModule ssl_module modules/mod_ssl.so​
#Include conf/extra/httpd-vhosts.conf
2. Make these lines active by deleting the hash symbol (#) at the beginning of each line. The hash symbol
at the beginning of a line means the line is commented out, or inactive.
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_connect_module modules/mod_proxy_connect.so
LoadModule proxy_http_module modules/mod_proxy_http.so
LoadModule rewrite_module modules/mod_rewrite.so
LoadModule headers_module modules/mod_headers.so
LoadModule ssl_module modules/mod_ssl.so
Include conf/extra/httpd-vhosts.conf
​ opy and Convert the Desktop Workspace
C
HTTPS Keys and Certificates
Desktop Workspace 4.2
Advanced Setup Guide
43
1. Log in to Windows on the Server with the built-in local Adminsitrator account.
2. Navigate to the directory where the Desktop Workspace server is installed (by default, C:\Program
Files\MokaFive)
3. In the conf subdirectory, locate the two PEM files containing the server's HTTP certificate and
private key:
Note: Depending on configuration, these files might have different names but one file is guaranteed to
end with “-cert.pem” and the other with “-key.pem”.
l
​ssl-selfsigned_mgmt-cert.pem
l
ssl-selfsigned_mgmt-key.pem
4. Copy these two files to a secure location.
5. Log in to Windows on the Gateway with the built-in local Administrator account. 6. Create a folder titled C:\m5certs.
7. Copy the two PEM files from the secure location you placed them in in Step 4 into C:\m5certs.
8. Using a MS-DOS command prompt, navigate to the C:\m5certs directory.
cd C:\m5certs
9. C
​ onvert the original PEM file into a format that the Apache server can understand by entering this
command: C:\Program Files (x86)\Apache Software Foundation\Apache2.2\bin\openssl.exe rsa –in
ssl-selfsigned_mgmt-key.pem –out m5_key_np.pem
Note: When the system prompts you to enter a password, enter mokafive.
10. Rename the new PEM file (which ends with cert.pem) to m5_cert.pem.
rename ssl-selfsigned_mgmt-cert.pem m5_cert.pem 11. The C:\m5certs\ directory should now contain two files named m5_key.np.pem and m5_cert.pem.
Configure Reverse Proxy (port 443)
1. Open the conf\ directory containing the httpd.conf file and navigate to the subdirectory extra\.
2. Open the httpd-vhosts.conf file with a text editor.
3. Search for this line:
NameVirtualHost *:80
4. Change the value 80 to 443. This makes Apache use port 443 (HTTPS), rather than port 80.
<NameVirtualHost *:443>
5. Within the same file, identify the section delimited by the following lines:
<VirtualHost *:80>
and
</VirtualHos​t>
6. The following text contains some highlighted sections. In the httpd-vhosts.conf file, modify the
sections identified in the previous step to match the highlighted sections of the following text. If
the httpd-vhosts.conf file does not contain some of the entries highlighted below, add them.
Desktop Workspace 4.2
Advanced Setup Guide
44
Note: Change the values of VirtualHost, ErrorLog, and CustomLog. Do not change the values
of ServerAdmin, DocumentRoot, ServerName, or ServerAlias. Do not change any lines that do not
appear in the text below.
<VirtualHost *:443>
ServerAdmin [email protected]
DocumentRoot "C:/Program Files (x86)/Apache Software
Foundation/Apache2.2/"
ServerName gateway.company.com
ServerAlias gateway.company.com
ErrorLog "logs/error-ssl.log"
CustomLog "logs/access-ssl.log" common
ProxyRequests Off
ProxyPreserveHost Off
<Location />
Order allow,deny
Allow from all
</Location>
SSLEngine on
SSLCertificateFile C:/m5certs/m5_cert.pem
SSLCertificateKeyFile C:/m5certs/m5_key_np.pem
ProxyPass / https://server.company.com/
ProxyPassReverse / https://server.company.com/
SSLProxyEngine On
Header set Proxy-Test "I love reverse proxies!
RequestHeader edit Authorization "^MokaFiveAuth ticket=[a-zA-Z0-9]+\\,\ "
""
</VirtualHost>
Note: The Header set Proxy-Test "I love reverse proxies!" line makes Apache inject a HTTP header in
all responses it returns.
7. Save your changes.
Restart Apache
1. Click on Start > All Programs > Apache HTTP Server 2.2 > Control Apache Server > Restart.
Test Reverse Proxy (Port 443)
1. Log in to Windows on another computer.
2. Configure your DNS so that the name server.yourcompany.com points to the IP address of the
Application Gateway computer.
3. Launch Internet Explorer and open this URL:
https://server.yourcompany.com/mconsole
4. Verify that you can log in to the M5ES server.
5. (Optional) Use a tool such a cURL or Charles Web Proxy to view the headers contained in the responses
returned by the Gateway. Verify that they contain the HTTP header:
Proxy-Test "I love reverse proxies!"
Desktop Workspace 4.2
Advanced Setup Guide
45
6. Remove the previous line and save the changes.
7. Restart the Apache server.
Last Steps
1. Log in to Windows on the Gateway with the built-in, local Administrator account.
2. In the Windows Control Panel an select Firewall Settings.
3. Disable that ports 80 (HTTP) are allowed through the Windows Firewall.
4. In the Gateway computer, navigate to the conf\extra\ directory open the httpd-vhosts.conf file using a
text editor.
5. Search for this line:
Header set Proxy-Test "I love reverse proxies!"
6. Remove the previous line and save changes. 7. Restart the Apache server.
Trusted Certificates
When your Desktop Workspace server is configured to use certificates that are not self-signed, it is necessary
to copy a third PEM file from the server to the Gateway.
1. Log in to Windows on the server with the built-in local Administrator account.
2. Navigate to the directory where the Desktop Workspace server is installed (by default, C:\Program
Files\MokaFive\).
3. In the conf/ subdirectory, locate the third PEM file that contains the server's HTTPS certificate chain:
ssl-selfsigned_mgmt-chain.pem
NOTE: Depending on the configuration, these files might have different names. One file will end
in '-cert.pem,' and the other will end with '-key.pem.'
4. Copy these two files to a secure location.
5. Log in to Windows on the Gateway with the built-in local Administrator account.
6. Copy this PEM file from the secure location into C:\m5certs and rename the file to m5_chain.pem.
7. In the http-vhosts.conf file, search for the line:
SSLCertificateKeyFile C:/m5certs/m5_key_np.pem
8. Below that line, add the following text:
SSLCertificateChainFile C:/m5certs/m5_chain.pem
9. Save your changes and restart the Apache server.
Desktop Workspace 4.2
Advanced Setup Guide
46
Installing an Active Directory Extender
- Installation Guidance
- Enabling Active Directory Extender
- Installing Active Directory Extender
- Using Active Directory Extender in the Management Server
Some users keep their Management Server and their Active Directory in different locations. Desktop
Workspace’s Active Directory Extender connects the two when there is no direct inbound connection from the
Management Server to Active Directory. This configuration also connects cloud-based Management Servers to
local Active Directories.
The Active Directory Extender is part of the Desktop Workspace installation package you can download from
the Software Support Portal.
Installation Guidance
The Active Directory Extender is supported on the following platforms:
l
Windows 7
l
Windows 8
l
Windows Server 2008 R2
l
Windows Server 2012
You can use the Active Directory Extender for any installation where the Management Server and Active
Directory are kept in different locations.
Install the Active Directory Extender in the same network as Active Directory.
Enabling Active Directory Extender
To use the Active Directory Extender, you must enable it in the Management Console, download the Active
Directory Extender installer, and connect it to your server.
1. Log in to the Management Console with your bootstrap admin account.
2. Go to Settings > Infrastructure and click on the Directory Servers tab.
3. You can create a new domain with the Add button, or modify an existing domain by clicking the
Edit button.
4. The Add Directory Service Domain window opens.
5. Check the box labeled Use AD Extender.
Desktop Workspace 4.2
Advanced Setup Guide
47
6. Enter a Domain Name and the Base Domain DN.
7. Click Save. Installing Active Directory Extender
1. Obtain the Active Directory Extender installer by downloading the latest release of Desktop Workspace
from the Software Support Portal. This is a ZIP file.
2. Unzip the installation package and extract the Active Directory Extender Installer (Moka5-#.#.#.#ADExtender-Installer.msi).
3. Double-click on the Active Directory Extender Installer file. The Active Directory Extender Installer
wizard opens.
4. On the first screen of the setup wizard, click Next. Desktop Workspace 4.2
Advanced Setup Guide
48
5. Acknowledge the end-user license agreement and click Next. 6. Specify a location where Active Directory Extender will install, or accept the default, and
click Next.
7. Optionally, click the checkbox marked Use an HTTP proxy server for communication with Server. If
you choose this option, the fields below will become configurable. Desktop Workspace 4.2
Advanced Setup Guide
49
8. Enter your HTTP proxy server information and click Next. 9. Enter the server address and login credentials and click Next. Note: Specify the address in full, including https:// at the beginning.
10. The installation begins. During this process, Active Directory Extender contacts and registers with the
Management Server.
11. When the installation completes, the Active Directory Extender will be visible in the Management
Server under Settings > Infrastructure in the AD Extenders tab.
Desktop Workspace 4.2
Advanced Setup Guide
50
NOTE: You may have to log out and log back in to the Management Server to see the updated
list of AD Extenders.
Using Active Directory Extender in the
Management Server
You can get visibility into your installed Active Directory Extenders in the Management Console. Navigate to
Settings > Infrastructure and click the AD Extenders tab.
Field Descriptions
Security Domain Name: The name you entered during setup.
Domain Name: The domain name for the Active Directory Extender.
Hostname: The name of the host on which the Active Directory Extender is installed.
ID: The alphanumerical ID of the Active Directory Extender.
Install Time: The date and time when the Active Directory Extender was installed.
Last Status Update: The date and time when the Active Directory Extender was last modified.
Action: Click Delete in this column to remove the Active Directory Extender. This action revokes the
Active Directory Extender’s access to the server. To reconnect a deleted Active Directory Extender,
you must reinstall it.
Desktop Workspace 4.2
Advanced Setup Guide
51
Adding a Desktop Application Gateway
- Using the Desktop Workspace 4.1.3 Desktop Application Gateway
- Adding a Gateway
- Installing the Desktop Application Gateway
- Test Your Desktop Application Gateway Configuration
An application gateway allows your users to authenticate over the Internet without a needing a VPN
connection on the host machine. Use the space below to record the information you will need to set up your
Desktop Application Gateway.
IMPORTANT: The Desktop Application Gateway is recommended only if you need to include two-factor
authentication with RSA SecureID. For all other cases, we recommend using an open-source reverse
proxy server, such as Apache. For more information, refer to Deploying a Reverse Proxy Server With
Apache.
Using the Desktop Workspace 4.1.3
Desktop Application Gateway
The Desktop Application Gateway acts as a reverse proxy with SSL. It performs two primary functions:
l
l
It terminates the client connection. This protects your infrastructure from buffer overrun attacks.
It enables you to add two-factor authentication using RSA SecureID. This increases your ability to check
for authorized or unauthorized access attempts.
Hardware Requirements
CPU
4 physical cores (8 logical CPU for Intel *)
RAM
8 GB
DISK
At least 10 GB free disk space on installation drive
OS
Windows Server 2012 or Windows Server 2008 R2 SP2
Java
Java 7u51 32-bit
* Feature of Intel Hyper-threading
Desktop Workspace 4.2
Advanced Setup Guide
52
IMPORTANT: The Application Gateway scales successfully for up to 1,500 Players. For installations with
more than 1,500 Players, we recommend installing additional Application Gateways.
Adding a Gateway
1. Provide the DNS of the Management Server. Deploying Desktop Application Gateway requires split DNS.
Split DNS means having the same DNS name (e.g., m5.acme.com) registered separately to external DNS
and your company’s internal DNS server, each of which resolve to different IP addresses. That is, the
external DNS name resolves to the Application Gateway’s address; the internal DNS name resolves to
the Management Server’s address.
In this way, when Players are on your internal network, they route directly to the Management
Server without going through the Desktop Application Gateway. Alternatively, when Players are
on the Internet outside your network, they route to the Desktop Application Gateway.
2. Provide the IP address of the NIC to which you want to bind.
3. Provide the listen port to use.
Desktop Workspace 4.2
Advanced Setup Guide
53
Installing the Desktop Application Gateway
1. Log in as the Administrator to the computer onto which you are installing.
2. Copy the Desktop Application Gateway installer file (Moka5-#.#.#-DesktopGateway-Installer.jar) and
the Java installer (jre-7u51-windows-i586.exe) to the computer.
3. Start the Java installer by double-clicking on it.
4. Start the Desktop Application Gateway installer by double-clicking on it.
5. Review and accept the End User License Agreement.
6. Click Next to accept the default installation path, or edit the path.
7. Select Desktop Application Gateway and click Next.
7. Accept the default installation items by clicking Next.
8. Enter the DNS name of the Management Server. Note that the Desktop Application Gateway setup
assumes that you have split DNS for the Management Server (i.e., the same DNS entry - m5.acme.com)
that is registered with external and internal DNS differently. The external DNS name resolves to the
Application Gateway’s address; the internal DNS name resolves to the Management Server’s address.
9. Set the SSL port to be the same as your other servers.
10. Leave the default administrator username as is (recommended), or edit it.
11. Enter and confirm the administrator password. Please note this password so you don’t forget it, then
click Next.
12. Wait until installation is complete.
13. If the Desktop Application Gateway is also proxying an image store, the image store must be added
explicitly. In the Desktop Application Gateway Configurator:
a. Click the Settings tab and click the Proxy Hosts link.
b. Click Add Proxy Host link and provide the Fully Qualified Domain Name (in the Host Name
field) of the image store and the port.
c. Regenerate the self-signed certificate to cover both the FQDN of the management server and
the FQDN of the image store. Refer to Generating a new Self-signed Certificate for more details.
Desktop Workspace 4.2
Advanced Setup Guide
54
14. Configure SSL for the Desktop Application Gateway:
a. If your infrastructure uses self-signed certificates, copy the self-signed certificate to the
Trusted CA Certificates on the management server. For more information, refer to Using Selfsigned Certificates.
b. If your infrastructure uses CA-signed certificates, refer to the instructions on requesting or
installing a CA-signed certificate in Using CA-Signed Certificates.
Test Your Desktop Application Gateway
Configuration
1. Place your computer on the external network.
2. Verify your Management Server and Desktop Application Gateway are installed and started.
3. Using a browser, enter the URL and port for the Management Server. This would be of the form https://
[yourProxyserver]:[listenport]/iconfig, where [yourProxyserver] is the hostname of your Desktop
Application Gateway and [listenport] is the listen port you specified in your installation.
4. The Management Console should appear, as if you were hitting its URL directly. If you had not already
logged in, you will be asked to login. If you do not see the Management Console, please review the
steps above.
5. Download a Desktop Workspace Player installer.
Congratulations, you’ve successfully installed and configured the Desktop Application Gateway!
Desktop Workspace 4.2
Advanced Setup Guide
55
Configuring SSL
- SSL Background
- Self-Signed or CA-Signed Certificates?
- A Note on Load Balancers and Layer 7 Firewalls
- Finishing SSL Setup in a Multi-server Self-signed Configuration
- Adding a Certificate to the Management Server’s Trusted CA Certificates
- Using Self-signed Certificates
- Using CA-Signed Certificates
- Replacing Expiring Certificates
SSL certificates secure the communications between clients and servers in the Desktop Workspace system. As
of version 3.7, Desktop Workspace servers communicate out of the box using SSL and self-signed certificates.
Clients by default validate those certificates; your clients will go off-line if SSL is misconfigured.
In this chapter, you'll learn a few techniques for configuring and managing SSL certificates, including:
1. SSL setup for advanced configurations:
l
Multi-server setups
l
Multi-tenant servers
l
Application Gateways
2. Replacing certificates with those from a certificate authority (CA)
3. Importing an existing key and certificate
4. Requesting a certificate from a CA
5. Replacing certificates that have expired
6. Renaming a server/Adding names to gateway
SSL Background
Servers in the Desktop Workspace system must have SSL certificates. Clients verify that they are talking to the
right server and not some impostor by validating SSL certificates.
There are three major kinds of SSL certificates, based on who vouches for the information in the certificate:
Certificate Type
Self-Signed
Browser Behavior
Warns
Client Behavior
Accept if certificate is in Truted CA
Desktop Workspace 4.2
Advanced Setup Guide
56
certs list
Well-known CA (Verisign,
GoDaddy, etc.)
Accept
Accepts
Enterprise CA
Accepts if browser configured with
enterprise CA root
Accepts if enterprise CA root is in
Trusted CA certs list
Certificates contain two important pieces of information:
l
l
Expiration date - certificates expire on the date specified in the certificate. Clients and browsers will
reject expired certificates.
One or more DNS names (e.g m5.acme.com) that the certificate covers.
If the DNS name in the URL does not match a DNS name in the certificate, the client and/or browser will abort
the connection. The first name in a certificate is usually in the Subject field under CN= (or Common Name).
Additional names are stored in the Subject Alternate Name.
DNS names in certificates can have wildcards. For example, the wildcard *.m5.acme.com matches
foo.m5.acme.com and bar.m5.acme.com, but not m5.acme.com.
Self-Signed or CA-Signed Certificates?
You can always change from self-signed certificates to CA-signed certificates, and vice versa, without affecting
your installed clients. A common sequence is to set up self-signed certificates initially and then upgrade to CAsigned certificates.
Self-signed certificates are convenient. Desktop Workspace server can automatically generate self-signed
certificates. CA-signed certificates must be requested from an enterprise CA or purchased from a certificate
authority.
CA-signed certificates are browser-friendly. When accessing the Desktop Workspace console with a browser,
you can avoid the security warning when using a CA-signed certificate. These warnings pop up when using selfsigned certificates. CA-signed certificates can also be more compatible with third-party scripting tools.
A Note on Load Balancers and Layer 7
Firewalls
In networks with a Citrix Netscaler™ or Microsoft ISA Server™, the clients connect to the layer 7 device, which
is the device with the SSL certificate. In that case, you must configure the layer 7 device with a certificate
containing all the DNS names that go through the device.
If clients only access the server components through a layer 7 device, it may be sufficient to use self-signed
certificates on the server components and only put CA signed certificates on the layer 7 device.
Desktop Workspace 4.2
Advanced Setup Guide
57
Finishing SSL Setup in a Multi-server Selfsigned Configuration
The self-signed certificates used by all servers must be added to the Trusted CA certificates list on the
management server’s Configurator.
Open the non-management server's Configurator and the management server's Configurator in two separate
browser windows.
Opening the Configuration on the non-management server:
1. Navigate to General -> Network.
2. Under Bindings, click on the key alias.
3. Copy the entire Certificate text field, including -----BEGIN CERTIFICATE----- and -----END CERTIFICATE-----.
Adding a Certificate to the Management
Server’s Trusted CA Certificates
Working on the Management Server’s Configurator:
1. Go to General -> Certificates -> Trusted CA Certificates.
2. Click Add Certificates.
3. Paste in the text.
4. Click Add.
The added certificate should now appear in the trusted CA certificates list.
Using Self-signed Certificates
The SSL certificates generated on first-time start will be incorrect for multi-tenant management servers and
some application gateways. Specifically, these certificates will be missing additional DNS names required.
In addition, if you rename a server, a new SSL certificate will need to be generated.
Generating a new Self-signed Certificate
1. Navigate to Certificates > SSL Certificates.
2. Click Generate Key and Self-signed Certificate.
3. Enter an alias name. This is a way to identify the certificate in Configurator.
4. For DNS name, enter the DNS name(s) of the component. If the component exposes multiple names,
enter multiple names separated by commas.
Component Type
DNS name(s) in certificate
Desktop Workspace 4.2
Advanced Setup Guide
58
Single-tenant management server
DNS name of server (m5.acme.com)
Multi-tenant management server
Wildcard DNS name of server (*.m5.acme.com)
Image store or replica
DNS name of server (img.m5.acme.com)
App Gateway
DNS names of proxied servers (m5.acme.com, img.m5.acme.com)
5. The remaining fields are optional. Some CAs may require this information, so you may want to fill this
information in if you wish to upgrade to a CA-signed certificate.
NOTE: If deploying the proxy, make sure at least one of the fields (e.g. unit name) is different
between the proxy and the original component.
6. Click Generate. A private key and self-signed certificate is generated and displayed.
7. Click Import. The certificate is now available for use. Click on the alias of the certificate you just
created to view details for that certificate.
Copying Self-signed Certificate to Management
Server’s Trusted CA Certificates
1. Click on the alias of the certificate to be copied.
2. Copy the entire Certificate text field, including -----BEGIN CERTIFICATE----- and -----END CERTIFICATE-----.
3. Add the certificate to the management server’s Trusted CA certificates. For more information, refer to
Adding a Certificate to the Management Server’s Trusted CA Certificates
Enabling the new SSL Certificate
Once you’ve imported an SSL certificate, you can enable SSL through the network bindings.
1. Navigate to General > Network.
2. Click the Pencil icon to edit the binding
3. Choose the alias of the new SSL certificate from the dropdown
4. Click Update.
5. Restart the server.
(Optional) Deleting old Certificates
1. In SSL certificates, click on the certificate alias of the unused certificate and click Delete.
2. On the management server, under Trusted CA Certificates, click the Trash Can icon on any
certificates that are no longer used.
Desktop Workspace 4.2
Advanced Setup Guide
59
Using CA-Signed Certificates
SSL certificates can be procured from authorities such as DigiCert, Verisign, or your corporate certificate
authority. These certificates can be used to avoid warnings in browsers caused by self-signed certificates. If
you already have a private key and CA-signed certificate that you can use for your server, skip to Importing
Private Key and SSL Certificates
To procure an SSL certificate from a Certificate Authority, you must provide a Certificate Signing
Request (CSR).
Generating a Certificate Signing Request (CSR)
1. Generate a self-signed certificate using the steps in Generating a new Self-signed Certificate. Do not do
any of the steps under subsequent headings.
2. Open the self-signed certificate details, by clicking the alias in the SSL certificates list.
3. Copy all of the text in the CSR field, and paste it into a text file. This is the CSR that you need to send
to your CA.
4. Send the CSR to the SSL certificate authority of your choice. Request that the reply be PEM (a.ka.
Base64) encoded and not binary encoded.
After processing your order, the authority will send you your server certificate. Some authorities will send you
both your server certificate and one or more intermediate certificates. Both the server and intermediate
certificate must be imported into the Configurator. Once you receive the signed certificate from your CA,
you’ll need to replace the self-signed certificate with the new CA-signed certificate.
Verifying the Certificate
Some CAs will strip the additional DNS names from the certificate. If you created a wildcard certificate or a
certificate with multiple names, you should verify that this did not happen.
To verify:
1. Collect the Subject and Subject Alternate Name fields from the certificates:
Windows:
a. Double-click on the certificate. If that doesn’t work, rename the certificate file to have
extension .crt and then double-click on the certificate.
b. Click the Details tab.
Mac:
a. From the Terminal, do an openssl x509 –in /path/to/cert.crt –text, where /path/to/cert.crt is
replaced by the filesystem path to the certificate.
2. Verify that all the DNS names requested appear in the certificate. For wildcard certificate, make sure
that both wildcard and non-wildcard (e.g. *.m5.acme.com and m5.acme.com) are present.
3. If not all the DNS names appear, work with your CA to determine why.
Desktop Workspace 4.2
Advanced Setup Guide
60
Replacing a Certificate
1. Open the self-signed certificate details by clicking the alias in the SSL certificates list.
2. Click the Replace button.
3. Copy and paste the certificate you received from the CA into the Certificate field and then
click Update.
4. Your certificate may require intermediate certificates. Refer to Adding Intermediate Certificates for
more details.
5. If you are using an enterprise CA, you must make sure that the enterprise root CA is in the trusted CA
certificates on the management server. Refer to Adding an Enterprise Root CA for more details.
6. Refer to Using Self-signed Certificates on how to enable the certificate on a binding.
7. Restart your server.
You will now be using a CA-signed certificate.
Importing Private Key and SSL Certificates
If you already have a private key and a CA-signed certificate, you may import those directly into the
Configurator. Note that private keys should be in PKCS#1 or PKCS#8 PEM format.
1. Navigate to Certificates > SSL Certificates.
2. Click on Import Key and Certificate.
3. Enter an alias name. This is a way to identify the certificate in Configurator.
4. Open your server certificate file (.crt) in a text editor. Copy all the text in the file, including "-----BEGIN
CERTIFICATE-----".
5. Paste the certificate into the Certificate field.
6. Open your private key file in a text editor. Private keys are typically files with a .pem or .key
extension. Copy all the text in the file and paste it into the Private Key field.
7. If the private key is encrypted using a password, enter Key Password.
8. Click Import. The SSL certificate and key are now ready for use.
9. Your certificate may require intermediate certificates. Refer to Adding Intermediate Certificates for
more details.
10. If you are using an enterprise CA, you must make sure that the enterprise root CA is in the trusted CA
certificates on the management server. Refer to Adding an Enterprise Root CA for more details.
11. Refer to Enabling the new SSL Certificate for information on how to enable the certificate on a binding.
Adding Intermediate Certificates
Some certificate authorities distribute intermediate certificates that must be used to establish a chain of trust
between the CA’s root certificate and the certificate issued by the CA for the server. Add intermediate
certificates on each server component.
Desktop Workspace 4.2
Advanced Setup Guide
61
1. On the Certificates tab, click Intermediate Certificates.
2. Open your intermediate certificate files (.crt) in a text editor. Copy all the text in the file, including "----BEGIN CERTIFICATE-----".
3. Paste the certificate into the Certificate field. In some cases, the agency from which you procured the
certificate will send you a bundle certificate with all of the certificate information in a single .crt file.
You may copy and paste the entire set of information into Configurator; Configurator will parse this
information set correctly.
4. Click Add. Configurator will automatically chain the intermediate certificates to your server
certificate(s).
5. Repeat this process to add additional intermediate certificates, if needed.
6. Verify the intermediate certificates were correctly chained:
a. Navigate to Certificates > SSL Certificates and click on your server certificate.
b. You should see the server certificate listed with chained intermediate certificates listed in the
Issued By field.
Adding an Enterprise Root CA
1. Download the enterprise root CA certificate in PEM format.
2. On the management server’s Configurator, Navigate to Certificates -> Trusted CA certificates.
3. Click Add Certificates.
4. Paste the enterprise root CA certificate into the text field, including the "----BEGIN" and "-----END" lines.
5. Click Add.
Replacing Expiring Certificates
CA-signed Certificates
Repeat the instructions above for requesting a CA-signed certificate. Instead of creating a new certificate,
click on the existing certificate.
Self-signed Certificates
You must generate a new self-signed certificate. Refer to Generating a new Self-signed Certificate.
Desktop Workspace 4.2
Advanced Setup Guide
62
Blocking and Filtering IPs Attempting to
Access the Management Console
- What is an IP Filter?
- Using IP Filters in Desktop Workspace
- Creating a New IP Filter
- Modifying an IP Filter
- Deleting an IP Filter
By default, Desktop Workspace installations are open access. Any user with the correct URL and credentials
can access the Management Console. In some cases, administrators want to restrict access to the Management
Console to known secure IP addresses, such as ones originating from a local office or network. They can control
access by creating IP filters.
NOTE: If you have a proxy server in front of the Management Server and you wish to use the Remote
Access filter provided by the Management Server, you must add the proxy server in the Management
Console. For more information on proxy servers, refer to the LIVEPC ADMIN GUIDE.
What is an IP Filter?
IP filters prevent unauthorized IP addresses from accessing a particular URL or website by creating a
“whitelist” of remote IP addresses. Only IP addresses on the whitelist will be able to access certain URLs.
An IP address that is on the whitelist can make requests to the Management Console, or to public REST
APIs, or both.
Using IP Filters in Desktop Workspace
IP filters have four components.
l
IP: A standard IPv4 address with no subnet specified.
Desktop Workspace 4.2
Advanced Setup Guide
63
NOTE: You can use a wildcard character (*) in any quadrant of the IP (example: “*.*.10.*”) to
indicate that any entry in that quadrant will be accepted.
l
l
l
Alias: (Optional) A name or description for the filter.
Web Console: (True/False) Specifies whether or not the remote host with matching IP is allowed to
access the management web console.
Public APIs: (True/False) Specifies whether or not the remote host with matching IP is allowed to sent
HTTP requests to the Desktop Workspace public REST APIs.
Creating a New IP Filter
Only users with Bootstrap Administrator access are able to create IP filters.
1. From the Management Console, navigate to Settings > Infrastructure > Remote Access.
2. Click Add a New IP Filter. The Create IP Filter dialog box opens.
3. Enter the allowed IP and optional Alias,and specify whether the IP can access the Web Console and
Public Rest APIs.
4. Click OK to create the filter.
Modifying an IP Filter
1. From the Management Console, navigate to Settings > Infrastructure > Remote Access.
2. Find the IP filter you wish to modify and click Edit in the Action column for that filter. The Modify IP
Filter dialog box opens.
3. Make changes to any of the fields in the dialog box.
4. Click Save to update the filter.
Desktop Workspace 4.2
Advanced Setup Guide
64
Deleting an IP Filter
1. From the Management Console, navigate to Settings > Infrastructure > Remote Access.
2. Find the IP filter you wish to edit and click Delete in the Action column for that filter. A confirmation
dialog box opens.
3. Click Yes to delete the filter.
Desktop Workspace 4.2
Advanced Setup Guide
65
Configuring an HTTP Proxy for
Outbound Traffic
The Management Server can be configured to use an HTTP Proxy when communicating to external resources,
such as a Replica Image Store hosted by Amazon S3, or the Desktop Workspace Licensing Server.
1. Log in to the server configurator (http://yourserver.com/iconfig) with your bootstrap admin
credentials.
2. Click the HTTP Proxy link.
3. In the HTTP Proxy Settings menu, click Edit Settings to configure the HTTP proxy.
4. Click the Enable HTTP Proxy checkbox to enable the HTTP proxy.
5. Enter the proxy settings in the appropriate fields.
NOTE: The Proxy User and Proxy Password fields are optional. If you do not have login credentials
enabled for your proxy, you do not need to fill in these fields.
6. Click Update.
Desktop Workspace 4.2
Advanced Setup Guide
66
NOTE:The Bypass Local Addresses checkbox is checked by default. This setting allows the server to
ignore the proxy when making requests to local addresses.
Desktop Workspace 4.2
Advanced Setup Guide
67
Scaling the Management Server
The Management Server controls all targeted images, group memberships, authentications, policies, and
provides the administrative console. As the number of end users grows, you may find user login times
beginning to lengthen, or the administrative console may become less responsive. These can be improved
through adjustment of check-in periods. However, as your deployment grows, you will likely require additional
Management Server instances to share the load.
The Management Server is designed to allow for additional instances to be added to the original, behind an
external load balancer.
For more information, please refer to the Dell Knowledge Base.
Desktop Workspace 4.2
Advanced Setup Guide
68
Enabling Multi-Tenancy (Service
Provider Edition)
- Prerequisites
- Wildcard Certificate
- DNS Entry
- Enabling Multi-Tenancy (Service Provider Edition)
Multi Tenancy allows an MSP to host multiple customers on a single Desktop Workspace installation. The
installation is divided into multiple Desktop Workspace Server instances that can be managed individually at
the Customer level or by an Administrator at the MSP. The customer would then connect to their Tenant from
a web browser in order to download the Desktop Workspace Player installers and the LivePC images.
Each tenant has its own domain name which is a subdomain of the main server. For example, if the main server
is m5.acme.com, the tenant fake would access the server at fake.m5.acme.com. Since it would be tedious to
add a DNS record and create a new certificate each time a tenant is added, we recommend the use of wildcard
certificates and wildcard DNS entries.
Prerequisites
The administrator must have a complete Desktop Workspace server installed and must be using the proper
license (with Service Provider Edition enabled).
l
Management Console with SSL enabled (using a self-signed certificate is OK)
l
Application Gateway on the DMZ
l
Primary Image Store on the DMZ​
Wildcard Certificate
The wildcard certificate will be in the format *.servername.domain.com in order to cover any possible subdomain (ex: *.m5.acme.com). To generate a self-signed certificate, refer to Using Self-signed Certificates. For
CA-signed certificates, refer to Using CA-Signed Certificates.
DNS Entry
On the networking side, a DNS entry must be made for each tenant hostname/URL created. A wildcard DNS
entry can be used to cover all possible sub-domains dynamically in the format *.servername.domain.com. A
Desktop Workspace 4.2
Advanced Setup Guide
69
DNS entry is required on your Internet-facing DNS service for clients from the Internet to access the Desktop
Workspace Server.
Creating a New Tenant
Creating a new tenant will create a new hostname and completely new server instance for each tenant that
will be managed separately. The hostname and subsequent URL used to manage the tenant will be a
subdomain of your original hostname/URL. (i.e. https://tenant.servername.domain.com). This can be done by
logging into the Desktop Workspace Management Console with an ID that has the "Desktop Admin" role,
clicking the Tenants tab, and then clicking the Create button.
Enter new tenant info, noting that the Tenant Name creates the URL that users will log into later to access
that tenant. Tenants can be set up using one of three types: Production, Evaluation, or NFR. The tenant type
allows MSPs to setup unpaid evaluations or not for-resale-licenses using the same infrastructure as their
production environment. Also note, the Tenant Admin User ID and Admin Password will create the bootstrap
account for the new tenant, and will be used to log into the new URL and begin assigning roles to new users.
Desktop Workspace 4.2
Advanced Setup Guide
70
Uninstalling Desktop Workspace
- Uninstalling Desktop Workspace Enterprise Server Components
- Uninstalling Desktop Workspace Clients: Windows PC
- Uninstalling Desktop Workspace Clients: Mac
- Alternate Method to Uninstall Mac Player
Uninstalling Desktop Workspace is simple and straightforward. You uninstall each server component and client
separately.
Uninstalling Desktop Workspace Enterprise
Server Components
1. Open the Start menu and select Programs > Moka5 > Moka5 Enterprise Services > Stop M5ES.
2. Open the Start menu and select Programs > Moka5 > Moka5 Enterprise Services > Uninstall M5ES.
Uninstalling Desktop Workspace Clients:
Windows PC
1. On each Windows machine that has Player or Creator installed, Open the Start menu and select
Control Panel.
2. Click Add or Remove Programs.
3. Select Desktop Workspace Player or Desktop Workspace Creator.
4. Click Change/Remove. The application is removed.
5. Some Desktop Workspace files are not deleted, to allow a user to reinstall and resume much faster
than they would if starting from scratch. To remove all Desktop Workspace files, delete the
following folder: C:\Documents and Settings[user]\Application Datamokafive, where [user] is the
name of the user.
Desktop Workspace 4.2
Advanced Setup Guide
71
Uninstalling Desktop Workspace Clients:
Mac
1. On each Mac machine that has Player or Creator installed, go to Applications and delete the Desktop
Workspace Player or Desktop Workspace Creator. The application is removed.
2. Some Desktop Workspace files are not deleted to allow a user to reinstall and resume much faster
than they would if starting from scratch. To remove all Desktop Workspace files, delete the following
folder: [user home]\Library/Application Support\mokafive, where [user home] is the home directory
for the user.
Alternate Method to Uninstall Mac Player
1. Go (menu) > Computer.
2. Double-click on your hard disk .
3. Navigate to Library > Application Support > Moka5.
4. Double-click Moka5 Uninstaller.
5. Check the boxes for Images, user data, and profile to get rid of your LivePCs.
After the uninstall, you can reinstall Player and re-download the LivePC.
Desktop Workspace 4.2
Advanced Setup Guide
72
Run Host Scripts on Mac or Windows
Host Computers
This mechanism adds flexibility for IT administrators to collect important host attributes and to perform
critical checks and actions at Desktop Workspace Player start time, before users gain access to LivePC images.
Results can be reported back to the Management Server.
This feature is intended for Desktop Workspace administrators with advanced scripting knowledge.
For more information, please refer to this Knowledge Base article on this topic.
Desktop Workspace 4.2
Advanced Setup Guide
73
Display a Custom EULA When Starting
Desktop Workspace Player
For BYO initiatives, administrators can present a custom End User License Agreement to users, and track user
acceptance from the Management Server.
For more information, please refer to the Dell Knowledge Base.
Desktop Workspace 4.2
Advanced Setup Guide
74
Creating Domain Join Packets Using
an API
This REST API provides an advanced method for administrators to implement the Domain Join Packet (also
known as AD Packet) creation process, without the need to use Desktop Workspace Creator. This can be used
by enterprises to:
l
l
Automate the creation of packets at user-provisioning time, integrated with an external
provisioning workflow
Manually recreate a packet for a specific user while preserving the same computer name
For more information, please refer to this Knowledge Base article on this topic.
Desktop Workspace 4.2
Advanced Setup Guide
75
Using REST APIs in Desktop Workspace
You can use APIs to integrate your system with Desktop Workspace’s features to give you greater control of an
end user’s experience. The current APIs outline the following scenarios.
1. Managing Active Resource Packets
2. Authentication
3. Managing Devices
4. Inventory
5. Managing Tenants
API Formatting
Each API in this document contains the following sections:
Requirements: A list of prerequisites necessary to use the API.
Access Level: The access level required to use the API. In cases where the access level is “Desktop
Administrator,” the client must authenticate with a user that has the Desktop Administrator role. When the
access level is “User,” the client can authenticate with the credentials of the user than owns the resource
(device, subscription, user, etc) being accessed.
HTTP Method: The HTTP method to be used in requests.
URL: The resource URL. For example, the URL /api/users/<domainName>/<userId> would be accessed using
https://moka5.company.com/api/users/local/user1, where “local” is a registered security domain and
“user1” is a user belonging to that domain. Elements of the URL that are surrounded by angle brackets (e.g.
<domainName>, <userId>) are expected to be replaced by the actual values (e.g. “local”, “user1”).
Expected response: The HTTP response code returned by the server.
Sample response JSON: An example of the JSON response returned by the server upon a successful request. Request/Response Parameters (if applicable): A list of specific values that the API requires, or that are
returned after a successful API call and will be required by other API functions.
Authentication and Authorization
All REST APIs outlined in this document require authentication, with the exception of Checking Server Status
and Looking Up Version Information. Authenticate with HTTP Basic Authentication and (optionally) an
authentication cookie. Using HTTP Basic Authentication
Desktop Workspace 4.2
Advanced Setup Guide
76
HTTP requests sent to REST APIs should include an authentication header containing the user name and
password of the user who is making the request. The format of the header is defined in the sections 10.2 and
11 of the HTTP specification (http://tools.ietf.org/html/rfc1945):
Header Name
Value
Authorization
Basic <user:password encoded in Base64>
The /api/login resource (refer to ) can be used to verify if the authentication details were specified correctly,
and to obtain a JSESSIONID cookie.
Using an Authentication Cookie
All responses to authenticated requests contain a cookie with a JSESSIONID token that can be used to
authenticate subsequent requests. To use this authentication mechanism, HTTP requests must present the
cookie that was returned by the server or, alternatively, include a JSESSIONID=<value of the token> in their
parameter list.
The JSESSIONID token is valid for any number of requests, but expires after 30 minutes of inactivity. If a
request contains both a valid JSESSIONID token and an HTTP Basic Authentication header, the header will be
used. Such requests will also invalidate the old JSESSIONID token and will return a cookie containing a new
JSESSIONID token.
Authorization
Requests that require authentication are executed with the permissions of the user making the request. In
most cases, users are not allowed to access resources unless they own the resource (e.g. user Bob cannot
revoke a subscription that belongs to Mike) or have the Desktop Administrator role. The only exception to this
rule is that users are not allowed to unrevoke access to devices and subscriptions that they own.
Versioning
To accommodate changes in the specification of the REST APIs, every API supports a version identifier in the
resource name to specify which version of that particular API to use. In 4.0 (Vanguard) all APIs are at version 1.
The 4.1 (Warlord) release added new APIs without breaking backwards compatibility with 4.0, therefore some
APIs would be at version 1 while others would be at version 2.
In the future it is possible that changes in some resources (such as adding/removing parameters, different
response format) might require a new version for some of the existing resources.
The version of a particular resource to use can be specified by prepending the string “v<number>/” to the
resource path. For example, the options and response of the URL /api/v1/devices/123/killed would follow
Version 1 of the “Killing a Device” scenario while /api/v8/devices/123/killed would follow Version 8.
If a version prefix is not specified then the server will use the latest version that it supports. The minimum,
maximum, and current versions supported by the server can be determined by querying the /api/version
resource (see the “Looking Up Version Information” section).
In 4.0 (Vanguard), all resources are at version 1. As of 4.1 (Warlord), all version 1 APIs are still supported and
new APIs have been added with version 2.
Desktop Workspace 4.2
Advanced Setup Guide
77
Exporting User Information
You can use a Powershell script to obtain a CSV output of all user information in a given domain, including all
device and LivecPC subscription information.
To use the script, configure the top section of the Powershell script to point to the correct Desktop Workspace
Management Server, and to authenticate with a Desktop Administrator role.
You should also configure the propertyNames parameter if you want to include results on host properties.
After configuring these basic parameters, run the following script: api-dump.ps1 -domain banana where "banana" is the name of your domain you want to export as configured within the Desktop
Workspace Management Server.
This will output a CSV file called all-users-banana.csv which contains a line for every LivePC subscription,
grouped by user and by device.
Editing the PrintCsvHeader and PrintCsvLine functions in the Powershell script itself allows you to
configure the rest of the columns. This allows greater flexibility from the CSV results. This is a more advanced
operation for which you will need to consult the public REST API documentation.
Managing Active Resource Packets
This section of the REST API provides an advanced method for administrators to implement a Domain Join
packet (or Active Resource packet) creation process without using the Desktop Workspace Creator. This gives
you increased management capabilities, such as:
l
l
Automated packet creation that occurs at the time a user is provisioned and is integrated with an
external provisioning workflow.
Manual packet recreation for specific users without changing the computer name.
Uploading an AD packet
To upload an AD packet, send a POST to your packet URL. Include JSON with specific details about the packet.
The response will display the packet location and an AVAILABLE state. Requirements
l
A LivePC environment (<livepcid1>)
l
At least two AD packet sets (batch 1, batch 2)
Access Level
l
Desktop Administrator
Request Parameters
You may also include the following parameters in the JSON message.
Desktop Workspace 4.2
Advanced Setup Guide
78
Parameter
Example value
Description
certificate
uRhDAF3dm90jk A Base64-encoded PFX/PKCS12 file containing any certificates/keys
to import into the trust store (optional). This file must be encoded
with password "foo" by default.
expiry
112233445566
The number of days after which this AD packet should be marked as
expired and no longer used.
reservedUserName
User1
The userid of the user that this AD packet should be reserved for
(optional). It must be a valid user in AD. Only this user will be able
to claim this AD packet.
reservedUserDomain company
The name of the domain to lookup the reservedUserName in
(required if reservedUserName is specified). This should be the
name of the domain as known by the management console, not the
external actual name.
userName
The name of the user who uploaded the AD packet.
jsmith
API Methods
Use the following method to upload an AD packet.
HTTP
Method
POST
URL
/api/adpackets
JSON
{ "computerName": "comp123", "domainName": "moka5.com", "batchName":
"batch1", "livepcId": "<livepcId1>", "data": "SGVyZUlzTXlQYWNrZXREYXRh" }
Expected HTTP 201
Response
Response
header
“Location”=”
Response
JSON
{ "adpacket": { "name": "<packetId1>", "computerName": "comp123",
"batchName": "batch1", "livepcId": "<livepcId1>", "state": "AVAILABLE" } }
<baseURL>/api/adpackets<packetID1>” Response Parameters
Depending on the AD packet configuration, the JSON response may include other elements.
Parameter
Example Description
Value
expiration
30
reservedUserName User1
The number of days after which this AD packet should be marked as expired
and no longer used.
The user ID of the user that this AD packet should be reserved for (optional).
It must be a valid user in AD. Only this user will be able to claim this AD
packet.
There are some additional parameters that may also be specified:• "name": The unique identifier for this AD
packet. If you choose later to use this same API to remove this packet, this is the name that must be used.•
"state": The state of the packet. Newly uploaded packets should have a state of either AVAILABLE or RESERVED.
Desktop Workspace 4.2
Advanced Setup Guide
79
Uploading a Reserved AD packet
This process assigns a reserved packet to a user in a group targeted by a LivePC. To upload a reserved packet,
send a POST to your packet URL and specify the user to whom the packet will be assigned.
Additional request and response parameters can be viewed in Uploading an AD packet.
Requirements
l
A LivePC identified by <livepcId1> l
At least one set of AD packet identified by <batch1>
Access Level
l
Desktop Administrator
HTTP
Method
POST
URL
/api/adpackets
JSON
{ "computerName": "comp123", "domainName": "moka5.com", "batchName":
"batch1", "livepcId": "<livepcId1>", "data": "SGVyZUlzTXlQYWNrZXREYXRh",
"reservedUserName": "bob", "reservedUserDomain": "local" }
Expected
Response
HTTP 201
Response
JSON
{ "adpacket": { "name": "<packetId1>", "computerName": "comp123",
"batchName": "batch1", "livepcId": "<livepcId1>", "state": "RESERVED",
"reservedUserName": "bob" } }
Getting AD packet information
To view information on a specific AD packet, send an HTTP GET to the resource where the packet
information is stored.
Additional request and response parameters can be viewed in the “Uploading an AD Packet” section.
Requirements
l
An existing AD packet identified by <packetId1>
Access Level
l
Desktop Administrator
HTTP Method GET
URL
/api/adpackets/<packetId1>
Expected
Response
HTTP 200
Response
JSON
{ "adpacket": { "name": "<packetId1>", "computerName": "comp123",
"batchName": "batch1", "livepcId": "<livepcId1>", "state": "AVAILABLE"
} }
Listing AD packets
To view a list of all AD packets, send an HTTP GET to the resource where the packet information is stored.
Desktop Workspace 4.2
Advanced Setup Guide
80
Requirements
l
At least two existing AD packets identified by <packetId1> and <packetId2>
Access Level
l
Desktop Administrator
HTTP Method GET
URL
/api/adpackets/
Expected Response
HTTP 200
Response JSON
{
"adpackets": [
{
"name": "<packetId1>",
"computerName": "comp123",
"batchName": "batch1",
"livepcId": "<livepcId1>",
"state": "AVAILABLE"
},
{
"name": "<packetId2>",
"computerName": "comp345",
"batchName": "batch2",
"livepcId": "<livepcId1>",
"state": "AVAILABLE"
}
]
}
Deleting an AD packet
Send an HTTP DELETE to remove an AD packet.
Requirements
l
An existing AD packet identified by <packetId1>
Access Level
l
Desktop Administrator
HTTP Method
DELETE
URL
/api/adpackets/<packetId1>
Expected Response
HTTP 200
Desktop Workspace 4.2
Advanced Setup Guide
81
Authentication
Use these APIs to ensure secure access to your Desktop Workspace system.
Rejecting a Login Attempt Based on Incorrect
Credentials
Send an HTTP GET to the subscription directory with the wrong password.
Requirements
l
A LivePC (foolivepc) targeted to a group (foo).
l
A user (vlad) with a password (pwd-vlad), subscribed to the LivePC and group.
Access Level
l
Desktop Administrator
HTTP Method
GET
URL
api/users/local/vlad/subscriptions
Basic Authentication
“local\vlad” = “wrong-password”
Expected Response
HTTP 401
Rejecting a Login Attempt Based on Insufficient User
Permissions
Send an HTTP GET to one user’s subscription directory using another user’s credentials.
Requirements
l
A LivePC (foolivepc) targeted to a group (foo).
l
A user (vlad) with a password (pwd-vlad), subscribed to the LivePC and group.
l
A user (joe) with a password (pwd-joe), subscribed to the LivePC and group.
Access Level
l
Desktop Administrator
HTTP Method
GET
URL
api/users/local/vlad/subscriptions
Basic
Authentication
“local\joe” = “pwd-joe”
Expected
Response
HTTP 403
Response JSON
{
Desktop Workspace 4.2
Advanced Setup Guide
82
"message" : "Access to this resource requires administrator
privileges"
}
Managing Devices
Looking Up Device Properties
Use a GET to view device properties. One method displays a simple device status. The second method displays
a more detailed list of device properties.
Method 1
Requirements
l
The device ID (represented by <deviceId1>) of a known device.
Access level
l
Desktop Administrator or device owner
HTTP
Method
GET
URL
/api/devices/<deviceId1>
Request Parameters (optional):
Parameter
Name
properties
Accepted
Values
true
Default
Value
false
false
Description Whether to include a list of device-specific properties, as outlined in the next section.
Expected
response
HTTP 200
Sample
Response
JSON
{ "device": { "deviceId": "<deviceId1>", "name": "Device 1", "status":
"ACTIVE", "clientVersion": "3.18", "serial": "12345", "model": "xpto",
"osMake": "Windows", "osModel": "Server 2012", "osVersion": “6.2”,
"registeredAt": 112233445566, "lastCheckedInAt": 112233445566 } }
Method 2
Requirements
Desktop Workspace 4.2
Advanced Setup Guide
83
l
The device id (represented by <deviceId1>) of a known device.
l
Specific device properties have been submitted, such as:
Namespace
Key
Value
Type
Device
Eula
True
TEXT
Device
Hostname
URL.com
TEXT
Device
Mac
11-22-33
TEXT
Access level
l
Desktop Administrator or device owner
HTTP
Method
GET
URL
/api/devices/<deviceId1>?properties=true
Expected
Response
HTTP 200
Sample
Response
JSON
{ "device": { "deviceId": "<deviceId1>", "name": "Device 1", "status":
"ACTIVE", "clientVersion": "3.18", "serial": "12345", "model": "xpto",
"osMake": "Windows", "osModel": "Server 2012", "osVersion": “6.2”,
"registeredAt": 112233445566, "lastCheckedInAt": 112233445566
"properties": { "device": { "eula": { "value": "true", "type": "TEXT",
"version": 0 }, "hostname": { "value": "foo.com", "type": "TEXT",
"version": 0 }, "mac": { "value": "11-22-33", "type": "TEXT", "version": 0
} } } } }
Inventory
Use these APIs to look up information about devices, LivePCs, subscriptions, users, and client packs in your
Desktop Workspace installation.
Looking Up LivePCs
Method 1 (Looking up a specific LivePC)
Send an HTTP GET to a specific LivePC directory to see information on that LivePC.
Requirements
l
A LivePC (<livepc1>).
Access Level
l
Desktop Administrator
HTTP Method
GET
URL
api/livepcs/<livepc1>
Desktop Workspace 4.2
Advanced Setup Guide
84
Expected
Response
HTTP 200
Response JSON
{
"livepc" : {
"livepcId": "<livepc1>",
"createdAt": "<Number: The time the LivePC was created>",
"modifiedAt": "<Number: The time the LivePC was last modified>",
"ownerTenantName": "<String: The tenant that owns the LivePC>",
"policyModifiedAt": "<Number: The time the LivePC was last
modified>",
"version": 1,
"versions": [ {
"version": 1,
"title": "FooLivepc",
"description": "here is the description",
"deepCopy": true,
"disabled": false,
"uuid": "<String: A unique UUID for this version>",
"domainJoined": true,
"layered": true,
"totalSize": 221027,
"creator": "<String: The user that created this version>",
"committedAt": "<Number: The time this version LivePC was
committed>",
"published": false
} ]
}
}
Method 2 (Looking up all existing LivePCs)
Send an HTTP GET to the LivePC parent directory to see a list of all LivePCs.
Requirements
l
A LivePC (<livepc1>)
Access Level
l
Desktop Administrator
Desktop Workspace 4.2
Advanced Setup Guide
85
HTTP Method
GET
URL
api/livepcs
Expected
Response
HTTP 200
Response JSON
{
"livepcs" : [ {
"livepcId": "<livepc1>",
"createdAt": "<Number: The time the LivePC was created>",
"modifiedAt": "<Number: The time the LivePC was last modified>",
"ownerTenantName": "<String: The tenant that owns the LivePC>",
"policyModifiedAt": "<Number: The time the LivePC was last
modified>",
"version": 1,
"versions": [ {
"version": 1,
"title": "FooLivepc",
"description": "here is the description",
"deepCopy": true,
"disabled": false,
"uuid": "<String: A unique UUID for this version>",
"domainJoined": true,
"layered": true,
"totalSize": 221027,
"creator": "<String: The user that created this version>",
"committedAt": "<Number: The time this version LivePC was
committed>",
"published": false
} ]
} ]
}
Looking Up Users in a Domain
Send an HTTP GET to the local users directory to see a list of all users.
Requirements
l
At least two users (“bob” and “joe”).
Access Level
Desktop Workspace 4.2
Advanced Setup Guide
86
l
Desktop Administrator
HTTP Method
GET
URL
/api/users/local
Expected Response
HTTP 200
Response JSON
{
"users": [ {
"userId": "bob",
"domain": "local",
"guid": "<String: a unique identifier for this user>",
"status": "Active",
"numTargetedLivepcs": 1,
"targetedPlayerVersions": {
"win": "3.17.1",
"osx": "3.17.1",
"baremetal": "3.17.1"
}
}, {
"userId": "joe",
"domain": "local",
"guid": "<String: a unique identifier for this user>",
"status": "Active",
"numTargetedLivepcs": 0,
"targetedPlayerVersions": {
"win": "3.17.1",
"osx": "3.17.1",
"baremetal": "3.17.1"
}
} ]
}
Looking Up Subscriptions
Send an HTTP GET to the subscriptions directory to see a list of all subscriptions.
Access Level
l
Desktop Administrator
Desktop Workspace 4.2
Advanced Setup Guide
87
HTTP
Method
GET
URL
/api/subscriptions
Expected HTTP 200
Response
Response
JSON
{ "subscriptions": [ { "subscriptionId": "<subscrId1>",
"livepcTitle": "<String: the title of the LivePC>", "livepcVersion":
"<Number, nullable: the version of the LivePC>", "hostname":
"<String, nullable: the hostname of the device>", "status":
"<String: one of ACTIVE, REVOKED or KILLED>", "clientStatus":
"<String: the status of the client>", "registeredAt": "<Number,
nullable: the time the subscription was registered with the
server>", "lastCheckedInAt": "<Number, nullable: the time the
subscriptions last reported its status>", "deviceId": "<String: the
ID of the player of this subscription>", "deviceCompName": "<String:
the name of the computer associated to this subscription>",
"deviceStatus": "<String: one of ACTIVE, REVOKED or KILLED>",
"owner": { "userId": "<String: the ID of the user that owns the
subscription>", "domain": "<String: the domain name of the user that
owns the subscription>" }
} ]
}
Looking Up Devices
Send an HTTP GET to the device directory to see a list of all devices (Players and Creators).
Requirements
l
A Player or Creator (<deviceId1>)
Access Level
l
Desktop Administrator
HTTP
Method
GET
URL
/api/devices
Expected HTTP 200
Response
"deviceId": "<deviceId1>", "name": "<String: the name of
Response { "devices": [ { the device>", "status": "<String: one of ACTIVE, REVOKED or KILLED>",
JSON
"clientVersion": "<String, nullable: the version of the player>",
"serial": "<String, nullable: the unique identifier for this player>",
"model": "<String, nullable: a string that identifies the model of this
player>", "osMake": "<String, nullable: type of operating system (e.g.
Windows)>", "osModel": "<String, nullable: version of operating system
(e.g. XP)>", "osVersion": "<String, nullable: internal version of
Desktop Workspace 4.2
Advanced Setup Guide
88
operating system (e.g. 6.1.000)>", "arch": "<Number, nullable: the
architecture of the player (32, 64)>", "registeredAt": "<Number: the time
the device first registered with the server>", "lastCheckedInAt":
"<Number, nullable: the time the device last reported its status>",
"properties": "<Object: a set of device properties>", "owner": { "userId": "<String: the ID of the user that owns the device>", "domain":
"<String: the domain name of the user that owns the device>" } } ] }
Looking Up Devices with Properties
Send an HTTP GET to the device directory to see a list of all devices (Players and Creators) including their
custom properties.
Requirements
l
A Player or Creator (<deviceId1>)
Access Level
l
Desktop Administrator
HTTP
Method
GET
URL
/api/devices?properties=true
Expected HTTP 200
Response
{"deviceId": "<deviceId1>", "name": "<String: the name of
Response {"devices": [ the device>", "status": "<String: one of ACTIVE, REVOKED or KILLED>",
JSON
"clientVersion": "<String, nullable: the version of the player>",
"serial": "<String, nullable: the unique identifier for this player>",
"model": "<String, nullable: a string that identifies the model of this
player>", "osMake": "<String, nullable: type of operating system (e.g.
Windows)>", "osModel": "<String, nullable: version of operating system
(e.g. XP)>", "osVersion": "<String, nullable: internal version of
operating system (e.g. 6.1.000)>", "arch": "<Number, nullable: the
architecture of the player (32, 64)>", "registeredAt": "<Number: the time
the device first registered with the server>", "lastCheckedInAt":
"<Number, nullable: the time the device last reported its status>",
"properties": { "device": { "eula": { "value": "true", "type": "TEXT",
"version": 0 }, "hostname": { "value": "foo.com", "type": "TEXT",
"version": 0 }, "mac": { "value": "11-22-33", "type": "TEXT", "version":
0 } } } } ]}
Looking Up Client Packs
Send an HTTP GET to the client packs directory to see a list of all client packs.
Access Level
l
Desktop Administrator
Desktop Workspace 4.2
Advanced Setup Guide
89
HTTP
Method
GET
URL
/api/clientpacks
Expected HTTP 200
Response
"version": "<String: the version of this client
Response { "clientPacks": [ { pack>", "fusionVersion": "<String, nullable: the version of VMWare Fusion
JSON
of this client pack>", "createdAt": "<Number: the time when this client
pack was uploaded>", "ownerTenantName": "<String: the version of the
player>", "platforms": { "win": true, "osx": true, "baremetal": true }
} ] }
Managing Tenants
Create a Tenant
To create a new tenant, send a POST to the /api/tenants resource. If this action is successful, the server will
respond with the details of the new tenant that has just been created.
HTTP Method
POST
URL
/api/tenants
Sample request JSON
{
"name": "cyberdyne",
"companyName": "Cyberdyne Systems Corp.",
"type": "PRODUCTION",
"admin": {
"userId": "admin1",
"password": "password"
}
}
Expected response
HTTP 200
Sample response JSON
{
"tenant": {
"name": "cyberdyne",
"companyName": "Cyberdyne Systems Corp.",
"type": "PRODUCTION",
"url": "cyberdyne.m5server.com”
"deleted": false,
"disabled": false,
Desktop Workspace 4.2
Advanced Setup Guide
90
"master": false
}
}
Update a Tenant
To update an existing tenant, send a PUT to the /api/tenants/<tenant> resource. If this action is successful,
the server will respond with the details of the tenant that has just been updated.
Requirements
l
An existing tenant identified by <tenantname>
Access Level
l
Desktop Administrator
HTTP Method
PUT
URL
/api/tenants/<tenantname>
Sample request JSON
{
"companyName": "Acme Corp.",
"type": "EVALUATION",
"admin": {
"userId": "admin1",
"password": "password"
}
}
Expected response
HTTP 200
Sample response JSON
{
"tenant": {
"companyName": "Acme Corp.",
"type": "EVALUATION",
"deleted": false,
"disabled": false,
"master": false
}
}
Retrieve Information About a Tenant
Send an HTTP GET to the specific tenant resource to see information about that tenant.
Requirements
l
An existing tenant identified by <tenantname>
Desktop Workspace 4.2
Advanced Setup Guide
91
Access Level
l
Desktop Administrator
HTTP Method
GET
URL
/api/tenants/<tenantname>
Expected Response
HTTP 200
Response JSON
{
"tenant": {
"name": "cyberdyne",
"companyName": "Cyberdyne Systems Corp.",
"type": "PRODUCTION",
"url": "cyberdyne.m5server.com”
"deleted": false,
"disabled": false,
"master": false
}
}
List All Existing Tenants
Send an HTTP GET to the tenants resource to see information about all tenants.
Access Level
l
Desktop Administrator
HTTP Method
GET
URL
/api/tenants
Expected Response
HTTP 200
Response JSON
[ {
"tenant": {
"name": "cyberdyne",
"companyName": "Cyberdyne Systems Corp.",
"type": "PRODUCTION",
"url": "cyberdyne.m5server.com”
"deleted": false,
"disabled": false,
"master": false
}
} ]
Desktop Workspace 4.2
Advanced Setup Guide
92
Delete a Tenant
Send an HTTP DELETE to the specific tenant resource to delete the tenant.
Requirements
l
An existing tenant identified by <tenantname>
Access Level
l
Desktop Administrator
HTTP Method
DELETE
URL
/api/tenants/<tenantname>
Expected Response
HTTP 200
Disable and Re-enable a Tenant
Send an HTTP PUT to the disabled resource of a tenant to disable that tenant. An optional “reason” query
parameter can be added to request.
Requirements
l
An existing tenant identified by <tenantname>
Access Level
l
Desktop Administrator
HTTP Method
PUT
URL
/api/tenants/<tenantname>/disabled
Request Parameters
“reason”: a string of text
Expected Response
HTTP 200
Send an HTTP DELETE to the disabled resource of a tenant to re-enable that tenant.
Requirements
l
An existing tenant identified by <tenantname>
Access Level
l
Desktop Administrator
HTTP Method
DELETE
URL
/api/tenants/<tenantname>/disabled
Expected Response
HTTP 200
Desktop Workspace 4.2
Advanced Setup Guide
93
For more REST APIs, refer to Desktop Workspace REST APIs,
Part 2.
Desktop Workspace 4.2
Advanced Setup Guide
94
Desktop Workspace REST APIs, Part 2
- Integrating Desktop Workspace with a Self-Service Portal
- Managing Desktop Workspace with a Service Desk
- Checking Server Status
- Looking Up Version Information
- Troubleshooting Common Errors
This document continues the list of available REST APIs in Desktop Workspace. For information about API
versioning, formatting, and more background, refer to Using REST APIs in Desktop Workspace.
Integrating Desktop Workspace with a SelfService Portal
Logging In as a User
Log in as a user by sending a HTTP GET to the login URL. See the “Authentication and Authorization” section of
this document for further details on how to use this resource.
Requirements
l
None
Access Level
l
User
HTTP
Method
GET
URL
/api/login
Expected
Response
HTTP 200
Response
JSON
{
message: "OK:
}
Other
Information
The response will also contain a JSESSIONID cookie. This cookie can be reused in requests
during the 30 minutes subsequent to the login.
Desktop Workspace 4.2
Advanced Setup Guide
95
Looking Up User Info
View specific information about a user by sending a HTTP GET to the user’s resource.
Requirements
l
A user identified by <userId> who is a member of a domain identified by <domainName>.
Access level
l
User or device administrator
HTTP Method
GET
URL
/api/users/<domainName>/<userId>
Expected Response
HTTP 200
Response JSON
{
"user": {
"userId": "bob",
"domain": "local",
"numTargetedLivepcs": 1,
}
}
Downloading the Windows Player
Download the Desktop Workspace Player for Windows by sending a GET to the player resource.
Requirements
l
A valid Desktop Workspace Client Pack identified by <version> in the Desktop Workspace server.
l
VMWare Fusion support added to the client pack.
Access Level
l
User
HTTP Method
GET
URL
/api/player/<version>/Win
Expected Response
HTTP 303
Response after redirect
HTTP 200 Downloading the Mac Player
Download the Desktop Workspace Player for Mac by sending a GET to the player resource.
Requirements
l
A valid Desktop Workspace Client Pack identified by <version> in the Desktop Workspace server.
l
VMWare Fusion support added to the client pack.
Desktop Workspace 4.2
Advanced Setup Guide
96
Access Level
l
User
HTTP Method
GET
URL
/api/player/<version>/OSX
Expected Response
HTTP 303
Response after redirect
HTTP 200 Downloading the BareMetal ISO
Download the Desktop Workspace BareMetal ISO by sending a GET to the BareMetal resource.
Requirements
l
A valid Desktop Workspace Client Pack identified by <version> in the Desktop Workspace server.
Access Level
l
User
HTTP Method
GET
URL
/api/player/<version>/BAREMETAL
Response
HTTP 303
Managing Desktop Workspace with a
Service Desk
Looking up Subscriptions
View information on a user’s subscriptions by sending a HTTP GET to the subscription resource.
Requirements
l
A user identified by <userId> who is a member of a domain identified by <domainName>.
Access level
l
Desktop Administrator or User
HTTP Method
GET
URL
/api/users/<domainName>/<userId>/subscriptions
Desktop Workspace 4.2
Advanced Setup Guide
97
Expected Response
HTTP 200
Response JSON
{
"subscriptions": [
{
"subscriptionId": "<subscrId1>",
"livepcTitle": "FooLivepc",
"livepcVersion": "9.2",
"hostname": "guest.company.com",
"status": "ACTIVE",
"clientStatus": "ACTIVE",
"subscribedAt": 112233445566,
"lastCheckedInAt": 112233445566,
"deviceId": "123",
"deviceCompName": "host.company.com",
"deviceStatus": "ACTIVE"
}
]
}
Revoking/Unrevoking an Active Subscription
Check the status of an active subscription with a GET. Revoke an active subscription with a PUT, and unrevoke
an active subscription by sending a DELETE to the revocation URL. Requirements
l
A non-killed subscription identified by < subscrId1>.
Checking the Subscription Status
Access Level
l
Desktop Administrator or User
HTTP Method
GET
URL
api/subscriptions/<subscrId1>
Expected Response
HTTP 200
Response JSON
{
"subscription": {
"subscriptionId": "<subscrId1>",
"livepcTitle": "FooLivepc",
"livepcVersion": "9.2",
"hostname": "guest.company.com",
"status": "ACTIVE",
"clientStatus": "ACTIVE",
"subscribedAt": 112233445566,
"lastCheckedInAt": 112233445566,
"deviceId": "123",
"deviceCompName": "host.company.com",
"deviceStatus": "ACTIVE"
}
}
Desktop Workspace 4.2
Advanced Setup Guide
98
Revoking an Active Subscription
Access Level
l
Desktop Administrator or User
HTTP Method
PUT
URL
/api/subscriptions/<subscrId1>/revoked
Response
HTTP 200
First, Check the Subscription Status
Access Level
l
Desktop Administrator or User
HTTP Method
GET
URL
/api/subscriptions/<subscrId1>
Response
HTTP 200
Response JSON
{
"subscription": {
"subscriptionId": "<subscrId1>",
"status": "REVOKED"
}
}
Then, Unrevoke the Active Subscription
Access Level
l
Desktop Administrator or User
HTTP Method
DELETE
URL
/api/subscriptions/<subscrId1>/revoked
Response
HTTP 200
Then, Confirm the Subscription Status
Access level
l
Desktop Administrator or User
HTTP Method
GET
URL
/api/subscriptions/<subscrId1>
Desktop Workspace 4.2
Advanced Setup Guide
99
Expected response
HTTP 200
Sample response JSON
{
"subscription": {
"subscriptionId": "<subscrId1>",
"status": "ACTIVE"
}
}
Killing an Active Subscription
Kill an active subscription with a PUT, then confirm its new status with a GET.
Requirements
l
A subscription identified by < subscrId1>.
Access level
l
Desktop Administrator or User
HTTP Method
PUT
URL
/api/subscriptions/<subscrId1>/killed
Expected response
HTTP 200
Then, Check the Subscription Status
Access level
l
Desktop Administrator or User
HTTP Method
GET
URL
/api/subscriptions/<subscrId1>
Expected response
HTTP 200
Sample response JSON
{
"subscription": {
"subscriptionId": "<subscrId1>",
"status": "KILLED"
}
}
Revoking/Unrevoking a Device
Check the device status by sending a GET to the device URL. To revoke a device, PUT it in a /revoked resource.
To unrevoke a device, send a DELETE method to the revocation URL. Requirements
Desktop Workspace 4.2
Advanced Setup Guide
100
l
A device (Desktop Workspace Player) identified by < deviceId1>.
First, Check the Device Status
Access level
l
Desktop Administrator or User
HTTP Method
GET
URL
/api/devices/<deviceId1>
Expected response
HTTP 200
Sample response JSON
{
"device": {
"deviceId": "<deviceId1>",
"status": "ACTIVE"
}
}
Then, Revoke the Device
Access level
l
Desktop Administrator or User
HTTP Method
PUT
URL
/api/devices/<deviceId1>/revoked
Expected response
HTTP 200
Then, Confirm the Device Status
Access level
l
Desktop Administrator or User
HTTP Method
GET
URL
/api/devices/<deviceId1>
Expected response
HTTP 200
Sample response JSON
{
"device": {
"subscriptionId": "<deviceId1>",
"status": "REVOKED"
}
}
Or, Unrevoke the Device
Access level
Desktop Workspace 4.2
Advanced Setup Guide
101
l
Desktop Administrator
HTTP Method
DELETE
URL
/api/devices/<deviceId1>/revoked
Expected response
HTTP 200
Then, Check the Device Status
Access level
l
Desktop Administrator or User
HTTP Method
GET
URL
/api/devices/<deviceId1>
Expected response
HTTP 200
Sample response JSON
{
"device": {
"subscriptionId": "<deviceId1>",
"status": "ACTIVE"
}
}
Killing an Active Device
To kill an active device, PUT the device in a /killed resource. If this action is successful, a GET returns a status
of “Killed.”
Requirements
l
A device (Desktop Workspace Player) identified by < deviceId1>.
Killing the Device
HTTP Method
PUT
URL
/api/devices/<deviceId1>/killed
Expected response
HTTP 200
Then, Check the Device Status
HTTP Method
GET
URL
/api/devices/<deviceId1>
Expected response
HTTP 200
Desktop Workspace 4.2
Advanced Setup Guide
102
Sample response JSON
{
"device": { "deviceId": "<deviceId1>",
"status": "KILLED"
}
}
Checking Server Status
Check whether or not the server is up with an unauthenticated GET.
HTTP Method
Unauthenticated GET
URL
/api/status
Expected response
HTTP 200
Sample response JSON
{
"message": "OK"
}
Looking Up Version Information
Look up your version with a GET method.
HTTP Method
GET
URL
/api/version
Expected response
HTTP 200
Sample response JSON
{
"min": 1,
"max": 1,
"current": 1,
"buildVersion": "4.1.0.195"
}
Troubleshooting Common Errors
Looking Up Subscriptions for a User that Does Not
Exist
Requirements
l
An invalid user (e.g. “susan” in the “local” domain).
Desktop Workspace 4.2
Advanced Setup Guide
103
HTTP Method
URL
Expected response
Sample response JSON
GET
/api/users/local/susan/subscriptions
HTTP 404
{ "message": "User not found with id [local\\susan]" }
Looking Up Devices for a User that Does Not Exist
If you try to look up devices assigned to a user that does not exist, the system returns a 404 error.
Requirements
l
An invalid user (e.g. “susan” in the “local” domain).
HTTP Method
GET
URL
/api/users/local/susan/devices
Expected response
HTTP 404
Sample response JSON
{ "message": "User not found with id [local\\susan]" }
Revoking or Unrevoking A Subscription that Does
Not Exist
If you try to revoke or unrevoke a subscription that does not exist, the system returns a 404 error.
Requirements
l
An invalid subscription (e.g. “123”).
Revoking a Subscription that Does Not Exist
HTTP method
PUT
URL
/api/subscriptions/123/revoked
Expected response
HTTP 404
Sample response JSON
{ "message": "Subscription not found with id [123]" }
Unrevoking a Subscription that Does Not Exist
HTTP Method
DELETE
URL
/api/subscriptions/123/revoked
Expected response
HTTP 404
Sample response JSON
{ "message": "Subscription not found with id [123]" }
Desktop Workspace 4.2
Advanced Setup Guide
104
Revoking or Unrevoking a Subscription that has
Been Killed
Once a subscription is killed, attempts to revoke or unrevoked it will fail. When you try to revoke or unrevoke a
killed subscription, the system returns a 400 error.
Requirements
l
A subscription that has been killed (e.g. “123”).
Revoking a Killed Subscription
HTTP Method
PUT
URL
/api/subscriptions/123/revoked
Expected response
HTTP 400
Unrevoking a Killed Subscription
HTTP Method
DELETE
URL
/api/subscriptions/123/revoked
Expected response
HTTP 400
Killing a Device Subscription that Does Not Exist
When you try to kill a device subscription that does not exist, the system returns a 404 error.
Requirements
l
An invalid subscription (e.g. “123”).
HTTP Method
PUT
URL
/api/subscriptions/123/killed
Expected response
HTTP 404
Sample response JSON
{ "message": "Subscription not found with id [123]" }
Revoking or Unrevoking a Device that Does Not Exist
When you try to revoke, unrevoke, or delete a device that does not exist, the system returns a 404 error. Requirements
l
A device that does not exist (e.g. “123”).
Desktop Workspace 4.2
Advanced Setup Guide
105
Revoking a Device that Does Not Exist
HTTP Method
PUT
URL
/api/devices/123/revoked
Expected response
HTTP 404
Sample response JSON
{ "message": "Device not found with id [123]" }
Unrevoking a Device that Does Not Exist
HTTP Method
DELETE
URL
/api/devices/123/revoked
Expected response
HTTP 404
Sample response JSON
{ "message": "Device not found with id [123]" }
Revoking or Unrevoking a Device That Has Been
Killed
Once a device is killed, attempts to revoke or unrevoked it will fail When you try to revoke or unrevoke a killed
device, the system returns a 400 error.
Requirements
l
A device that has been killed (e.g. “123”).
Revoking a Killed Device
HTTP Method
PUT
URL
/api/devices/123/revoked
Expected response
HTTP 400
Unrevoking a Killed Device
HTTP Method
DELETE
URL
/api/devices/123/revoked
Expected response
HTTP 400
Killing a Device That Does Not Exist
If you try to kill a device that does not exist, the system returns a 404 error.
Requirements
Desktop Workspace 4.2
Advanced Setup Guide
106
l
A device that does not exist (e.g. “123”).
HTTP Method
PUT
URL
/api/devices/123/killed
Expected response
HTTP 404
Sample response JSON
{ "message": "Device not found with id [123]" }
Desktop Workspace 4.2
Advanced Setup Guide
107
Identifying the MAC Addresses of Host
Computers From the Management
Server
Administrators can verify the host MAC address reported to the Management Server for security and
auditing purposes.
For more information, please refer to the Dell Knowledge Base.
Desktop Workspace 4.2
Advanced Setup Guide
108
About Dell Software
Dell listens to customers and delivers worldwide innovative technology, business solutions and services they
trust and value. For more information, visit www.software.dell.com.
Contacting Dell Software
Technical Support:
Online Support
Product Questions and Sales:
(800) 306-9329
Email:
[email protected]
Technical Support Resources
Technical support is available to customers who have purchased Dell software with a valid maintenance
contract and to customers who have trial versions. To access the Support Portal, go to
http://software.dell.com/support/.
The Support Portal provides self-help tools you can use to solve problems quickly and independently, 24 hours
a day, 365 days a year. In addition, the portal provides direct access to product support engineers through an
online Service Request system.
The site enables you to:
l
Create, update, and manage Service Requests (cases)
l
View Knowledge Base articles
l
Obtain product notifications
l
Download software. For trial software, go to Trial Downloads.
l
View how-to videos
l
Engage in community discussions
l
Chat with a support engineer
Desktop Workspace 4.2
Advanced Setup Guide
109