First published on CloudBlogs on Aug, 11 2009
In Windows Server 2008 R2, the Web Single Sign-On (Web SSO) feature provides users with the ability to enter their credentials only once during logon to Remote Desktop Web Access (RD Web Access). After logon, users can launch RemoteApp programs that are part of the same connection in RemoteApp and Desktop Connections without any further credential prompts, even if the RemoteApp programs are configured to use RD Gateway.
This post describes how to configure RD Session Host and RD Connection Broker servers to take advantage of the Web SSO feature when launching RemoteApp programs from RD Web Access.
Why is Web SSO necessary?
In Windows Server 2008 TS Web Access, a major pain point for users was receiving multiple credential prompts, first when logging on to TS Web Access and then when launching a RemoteApp program from a terminal server.
In Windows Server 2008 R2, using the new RD Web Access Forms Based Authentication (FBA), users will now have to enter credentials only once in the login page of RD Web Access and will not be prompted again for entering credentials on launching subsequent apps from the RemoteApp Programs page of RD Web Access.
How it works
RD Web Access can access RemoteApp programs in two modes (details about these modes can be found in this
post
):
-
RD Session Host mode for small to medium deployments
-
RD Connection Broker mode for large deployments
What is supported
Web SSO is supported for launching RemoteApp programs from RD Web Access or the Start menu in any of the above modes. For Web SSO to work when connecting to personal desktops or pooled virtual machines (VMs) the client machine needs this hotfix installed:
http://support.microsoft.com/kb/2524668
.
Requirements
-
To take advantage of the new Web SSO feature, the client must be running
Remote Desktop Connection (RDC) 7.0.
-
In order for Web SSO to work:
-
The connection in RemoteApp and Desktop Connections must have an ID. By default, it is set to the Fully Qualified Domain Name (FQDN) of the RD Connection Broker server in case of RD Connection Broker mode. In RD Session mode, it is set to the FQDN of the RD Web Access server.
-
RemoteApp programs must be digitally signed
using a Server Authentication certificate [Secure Sockets Layer (SSL) certificate]. The certificate Enhanced Key Usage section must contain ‘Server Authentication (1.3.6.1.5.5.7.3.1)’. More details about the types of certificates used to digitally sign RemoteApp programs can be found
here
.
-
Client operating systems must trust the certificate with which the RemoteApp programs are signed.
The steps for configuring Web SSO and setting up a digital signature for RemoteApp programs for RD Session Host and RD Connection Broker modes are described below.
Configuring Web SSO when using RD Session Host mode
There are 2 steps required to configure Web SSO when using RD Session Host.
-
Step 1:
Add the RD Web Access server to the TS Web Access Computers group on the RD Session Host server
-
Step 2:
Digitally sign the RemoteApp programs on the RD Session Host server
Membership in the local Administrators group (or equivalent) on the RD Session Host server that you plan to configure is the minimum requirement to complete each of the following steps.
Step 1: Add the RD Web Access server to the TS Web Access Computers group on the RD Session Host server
-
On the RD Session Host server, click
Start
, point to Administrative Tools, and then click
Computer Management
.
-
In the left pane, expand
Local Users and Groups
, and then click
Groups
.
-
In the right pane, double-click
TS Web Access Computers
.
-
In the
TS Web Access Computers Properties
dialog box, click
Add
.
-
In the
Select Users, Computers, Service Accounts, or Groups
dialog box, click
Object Types
.
-
In the
Object Types
dialog box, select the
Computers
check box, and then click
OK
.
-
In the
Enter the object names to select
box, specify the computer accounts of the RD Web Access server and the RD Connection Broker server, and then click
OK
.
-
Click
OK
to close the
TS Web Access Computers Properties
dialog box.
Step 2: Digitally sign the RemoteApp programs on the RD Session Host server
-
On the RD Session Host server, open RemoteApp Manager. To open RemoteApp Manager, click
Start
, point to
Administrative Tools
, point to
Remote Desktop Services
, and then click
RemoteApp Manager
.
-
In the
Actions
pane of RemoteApp Manager, click
Digital Signature Settings
. (Or, in the
Overview
pane, next to
Digital Signature Settings
, click
Change
.)
-
Select the
Sign with a digital certificate
check box.
-
In the
Digital certificate details
box, click
Change
.
-
In the
Select Certificate
dialog box, select the certificate that you want to use, and then click
OK
.
Note: The
Select Certificate
dialog box is populated by certificates that are located in the local computer's certificates store or in your personal certificate store. The certificate that you want to use must be located in one of these stores.
Configuring Web SSO when using RD Connection Broker mode
There are 5 steps required to configure Web SSO when using RD Connection Broker.
-
Step 1:
Add the RD Web Access server to the TS Web Access Computers group on the RD Connection Broker server
-
Step 2:
Add RD Session Host servers as RemoteApp Sources on RD Connection Broker server
-
Step 3:
Add the RD Connection Broker server to TS Web Access Computers group on each RD Session Host server
-
Step 4:
Digitally sign the RemoteApp programs on each RD Session Host server
-
Step 5:
Specify certificate on RD Connection Broker server
Note: The certificate for digitally signing RemoteApp programs on each RD Session Host server and RD Connection Broker server should be the same.
Membership in the local Administrators group, or equivalent, on the specific server that you plan to configure is the minimum required to complete each of the following steps.
Step 1: Add the RD Web Access server to the TS Web Access Computers group on the RD Connection Broker server
-
On the RD Connection Broker server, click
Start
, point to
Administrative Tools
, and then click
Computer Management
.
-
In the left pane, expand
Local Users and Groups
, and then click
Groups
.
-
In the right pane, double-click
TS Web Access Computers
.
-
In the
TS Web Access Computers Properties
dialog box, click Add.
-
In the
Select Users, Computers, Service Accounts, or Groups
dialog box, click
Object Types
.
-
In the
Object Types
dialog box, select the
Computers
check box, and then click
OK
.
-
In the
Enter the object names to select
box, specify the computer accounts of the RD Web Access server and the RD Connection Broker server, and then click
OK
.
-
Click
OK
to close the
TS Web Access Computers Properties
dialog box.
Step 2: Add RD Session Host servers as RemoteApp Sources on RD Connection Broker server
-
On the RD Connection Broker server, open Remote Desktop Connection Manager. To open Remote Desktop Connection Manager, click
Start
, point to
Administrative Tools
, point to
Remote Desktop Services
, and then click
Remote Desktop Connection Manager
.
-
In the left pane, click
RemoteApp Sources
, and then on the
Action
menu, click
Add RemoteApp Source
.
-
In the
Add RemoteApp Source
dialog box, in the
RemoteApp source name
box, enter the name of the RD Session Host server or the DNS name of the RD Session Host server farm that is hosting the RemoteApp programs, and then click
Add
.
Note:
Do not enter the name of each RD Session Host server in the RD Session Host server farm. If you do, users will see multiple instances of the RemoteApp program icons.
-
The RemoteApp source name will appear in the center pane. To add additional RemoteApp sources, repeat the previous steps.
Step 3: Add the RD Connection Broker server to TS Web Access Computers group on each RD Session Host server
-
On the RD Session Host server, click
Start
, point to
Administrative Tools
, and then click
Computer Management
.
-
In the left pane, expand
Local Users and Groups
, and then click
Groups
.
-
In the right pane, double-click
TS Web Access Computers
.
-
In the
TS Web Access Computers Properties
dialog box, click
Add
.
-
In the
Select Users, Computers, or Groups
dialog box, click
Object Types
.
-
In the
Object Types
dialog box, select
the Computers
check box, and then click
OK
.
-
In the
Enter the object names to select
box, specify the computer account of the RD Connection Broker server, and then click
OK
.
-
Click
OK
to close the
TS Web Access Computers Properties
dialog box.
Step 4: Digitally sign RemoteApp programs on each RD Session Host server
Use the following steps to sign RemoteApp programs by using RemoteApp Manager. The procedure assumes that you are working from a central administrator workstation, the certificate is stored on the central administrator workstation, and the central administrator workstation has the RemoteApp Manager tool installed.
-
On the central administrator workstation, open RemoteApp Manager. To open RemoteApp Manager, click
Start
, click
Administrative Tools
, click
Remote Desktop Services
, and then click
RemoteApp Manager
.
-
On the
Action
menu, click
Connect to Computer
.
-
Select
Another Computer
, enter the fully qualified domain name (FQDN) of the RD Session Host server, and then click
OK
.
-
On the
Action
menu, click
Digital Signature Settings
.
-
Select the
Sign with a digital certificate
check box.
-
Click
Change
, select the certificate to be used for signing, and then click
Apply
.
-
Click
OK
to close the
RemoteApp Deployment Settings
dialog box.
Repeat the steps in the procedure for each RD Session Host that is providing RemoteApp programs through RemoteApp and Desktop Connection.
Step 5: Specify certificate on RD Connection Broker server
-
On the RD Connection Broker server, open Remote Desktop Connection Manager. To open Remote Desktop Connection Manager, click
Start
, point to
Administrative Tools
, point to
Remote Desktop Services
, and then click
Remote Desktop Connection Manager
.
-
Select the root ‘Remote Desktop Connection Manager: <RD Connection Broker Machine Name> ’
-
In the middle pane, in the
Status
area, click on
Specify
beside the Digital certificate (shown below).
-
Follow ‘Step 2: Digitally sign RemoteApp programs on RD Session Host server’ in the ‘Configuring Web SSO when using RD Session Host mode’ section above.
Configuring the client computer for Web SSO
If the RemoteApp programs are signed using a certificate from a public CA that participates in the Microsoft Root Certificate Program Members program (
http://go.microsoft.com/fwlink/?LinkID=59547
), then Web SSO should just work.
If the certificate is not issued by a trusted public CA, the certificate must be imported into the Trusted Root Certification Authorities certification store on the client computer to be trusted by the client operating system. Members of the local Administrators group, or equivalent, on the client computer can import the certificate or it can be done by using Group Policy.
The ‘Trusted Certificate Authority Root’ certificate (shown below) must be imported in the Trusted Root Certification Authorities certification store on the client computer and on the RD Session Host and RD Connection Broker machines. ‘Certificate for Signing Remote App Programs’ certificate must be imported in the Personal store on the RD Session Host, and RD Connection Broker machines.
Web SSO in Windows Integrated Authentication
If RD Web Access is configured to use Windows Authentication, which is the Windows Server 2008 mode, instead of the default Forms Based Authentication (FBA), users will be prompted for credentials twice: once for the Windows Integrated Authentication for RD Web Access and again on the launch of the first RemoteApp in the RemoteApp and Desktop Connection. Thereafter on subsequent RemoteApp launch, SSO will work as it works in the FBA mode.
Web SSO with RD Gateway
Web SSO also works when RemoteApp programs are set to use RD Gateway regardless of whether RD Web Access accesses RemoteApp programs in RD Session Host mode or RD Connection Broker mode.
The configuration of Web SSO for RD Gateway assumes that:
-
an RD Gateway is deployed
-
a ‘Connection Authorization Policy’ is set to use password for the users connecting
-
and the RD Gateway server is used by RemoteApp programs
More details on how to configure a ‘Connection Authorization Policy’ on RD Gateway can be found
here
.
The step below is needed regardless of the mode RD Web Access is configured. In case of RD Connection Broker mode, the step needs to be performed on each RD Session Host server which is added as a RemoteApp Source on RD Connection Broker Server.
Membership in the local Administrators group (or equivalent) on the RD Session Host server that you plan to configure is the minimum requirement to complete each of the following steps.
-
On the RD Session Host server, open RemoteApp Manager. To open RemoteApp Manager, click
Start
, point to
Administrative Tools
, point to
Remote Desktop Services
, and then click
RemoteApp Manager
.
-
In the
Actions
pane of RemoteApp Manager, click
RD Gateway Settings
. (Or, in the
Overview
pane, next to
RD Gateway Settings
, click
Change
.)
-
Select the
Use these RD Gateway server settings
.
-
In the
Server name
box, click the FQDN of the RD Gateway server.
-
In the
Logon
box, select the
Ask for password
(NTLM).
-
Select the
Use the same user credentials for RD Gateway and RD Session Host server
check box.
-
Click
OK
to close the
RemoteApp Deployment Settings
dialog box.