When processing RDP connections, One Identity Safeguard for Privileged Sessions (SPS) attempts to extract the username from the connection. For example, you need the username to:
-
Use gateway authentication for the connection. For details on gateway authentication, see Configuring gateway authentication in the Administration Guide.
-
Use usermapping policies. In this case, SPS compares the username on the server with the username on the gateway. For more information on usermapping policies and gateway authentication, see Configuring usermapping policies in the Administration Guide and Configuring gateway authentication in the Administration Guide, respectively.
NOTE: In certain cases, SPS receives an empty username from the server, and the connection will be denied by the usermapping policy unless a policy is set for the connection that allows every user for the given group. To add such a policy, specify * in the Username on the server field of the usermapping policy. For a list of cases when SPS receives empty username, see Windows settings that interfere with username extraction.
-
Search or filter connections by the username on the SPS search interface, or create automatic statistics based on the username.
-
Find the connection of the user on the Pending Connections > Four Eyes and Pending Connections > Active Connections pages.
-
Usernames are also essential if you want to use One Identity Safeguard for Privileged Analytics. If you are interested in One Identity Safeguard for Privileged Analytics, contact our Sales Team, or your One Identity representative.
SPS can record the username automatically if the RDP connection is using Network Level Authentication (CredSSP), and usually in other scenarios as well. If SPS cannot automatically extract the username, it displays the following login screen, which allows you to paste text-based clipboard contents. Note that SPS can display this login screen only in TLS-encrypted connections.
The known scenarios that interfere with RDP usernames are listed in Windows settings that interfere with username extraction.
NOTE: SPS supports usernames both in UPN (such as username@domain) and down-level logon name (such as DOMAIN\username) formats.
Figure 222: Server-side login in RDP
To ensure that your users can access the target servers only when their username is recorded, you can configure SPS to terminate RDP connections if it cannot reliably extract the username. To terminate such connections, clear the Traffic Controls > RDP > Settings > Permit unreliable usernames option.
Windows settings that interfere with username extraction
The following settings on the Windows client or server can prevent SPS from correctly extracting the username from the RDP connection. As a result, the username is not visible on the Sessions , Pending Connections > Four Eyes and Pending Connections > Active Connections pages.
-
The DontDisplayLastUserName option is enabled on the server. The DontDisplayLastUserName security setting of Windows servers specifies whether the username from the last successful login is displayed on the login screen as a default for the next login. To disable the DontDisplayLastUserName security setting, do one of the following.
-
There is no server-side authentication. To avoid this problem, ensure that your server requires authentication from the users.
You can use automatic RDP login on Windows, but the stored credentials are not trusted by default, and you have to enter the password for each connection. Create the following local policies on the client to allow delegating saved credentials:
-
Start the Group Policy Editor: run gpedit.msc.
-
Navigate to Local Computer Policy > Computer Configuration > Administrative Templates > System > Credentials Delegation.
-
Open the Allow Delegating Saved Credentials with NTLM-only Server Authentication policy.
-
Click Show and enter TERMSRV/*.
-
Click Apply.
-
Open the Allow Delegating Saved Credentials policy.
-
Click Show and enter TERMSRV/*.
-
Click Apply.
-
Open the Allow Delegating Default Credentials with NTLM-only Server Authentication policy.
-
Click Show and enter TERMSRV/*.
-
Click Apply.
-
Open the Allow Delegating Default Credentials policy.
-
Click Show and enter TERMSRV/*.
-
Click Apply.
-
Verify that the Deny Delegating Saved Credentials policy does not contain TERMSRV/* in the list.
-
Close the Group Policy Editor.
-
From the command line, issue the gpupdate /force command.
Overview
RemoteApps use RDP channels that are denied by default. When configuring RDP connections for RemoteApps on One Identity Safeguard for Privileged Sessions (SPS), create a custom channel policy which enables the following channels:
-
Drawing
-
rail
-
rail_ri
-
rail_wi
Figure 223: Traffic Controls > RDP > Channel Policies — Configuring the required channels for RemoteApps
Prerequisites
-
You must disable the Use advanced RemoteFX graphics for RemoteApp group policy on the RDP server.
The policy is available at Computer Configuration > Policies > Administrative Templates > Windows Components > Remote Desktop Services > Remote Desktop Session Host > Remote Session Environment > Use advanced RemoteFX graphics for RemoteApp.
-
You must have the Remote Desktop (RD) Licensing role installed.
To configure RemoteApps
-
Navigate to Traffic Controls > RDP > Channel Policies.
-
Click to create a new channel policy.
-
Enter the name for the channel policy.
-
Choose Drawing as the channel type.
-
Click to add an additional channel type.
-
Choose Custom as the second channel type.
-
In Permitted channels, click to add the following channels:
(You have to click for each channel.)
-
Click to save the channel policy.
-
You have created a channel policy for RemoteApps.
When you configure a connection that uses RemoteApps in Traffic Controls > RDP > Connections, select this channel policy as the Channel policy of the connection.
The RemoteApp Launcher enables users the access they need to an application without revealing credentials and passwords. By using the RemoteApp Launcher, you can protect shared credentials and limit an end user’s access to an allowed or required application.
To configure RemoteApp Launcher-specific settings on the SPS side
-
In SPS, configure a credential store plugin with the get_remote_app_credentials method implemented. This is required for negotiating application credentials with SPS.
Ensure that you specify the asset parameter. If your SPS is linked to SPP, you must also specify the connection name parameter.
Example: do_get_remote_app_credentials configuration
def do_get_remote_app_credentials(self):
try:
credential = self._get_credential_for_asset("password", self.remote_app_asset, self.remote_app_account)
return {"passwords": [credential]}
except SafeguardException as exc:
self.logger.error("Error checking out %s for %s@%s: '%s'", "password", self.remote_app_account, self.remote_app_asset, exc)
return None
For more information on how to configure a custom credential store plugin, see Creating Custom Credential Store Plugins.
-
Optionally, to enable automatic password handling by the RemoteApp Launcher, configure a custom AA plugin.
By specifying the asset and account name parameters in an AA plugin, the RemoteApp Launcher will not prompt the user for these credentials and will start the configured application without the user having to know any credentials.
For more information on how to configure a custom AA plugin, see Creating Custom Authentication and Authorization Plugins.
-
Configure RemoteApps in SPS.
For more information, see Configuring RemoteApps.
-
Configure an RDP connection that uses RemoteApps in Traffic Controls > RDP > Connections and select the created RemoteApps channel policy as the Channel policy of the connection.
To configure RemoteApp Launcher-specific settings on the Windows side
-
Download the RemoteApp Launcher.
-
Install Remote Desktop Services (RDS).
-
Create a RemoteApp program and make the following settings:
-
For the RemoteApp program location, enter the path to your RemoteApp Launcher, for example, C:\Program Files\OneIdentity\RemoteApp Launcher\OI-SG-RemoteApp-Launcher.exe.
-
Specify to always use command-line parameters as shown in the example below:
"C:\Program Files\DBeaver\dbeaver.exe" --args "-con user={username}|password={password}|host=localhost|driver=PostgreSQL|database={asset}|name=work|connect=true" --enable-debug
Table 10: List of parameters
help |
No |
Create the help message. |
cmd |
Yes |
Specifies the application to launch. Either the path to an executable or command alias. |
args |
Yes |
Specifies the CLI args to pass to <cmd>. It must contain the {username}, {password} and {asset} template options, which will be expanded with the corresponding information. |
use-path |
No |
Specifies whether to look up the cmd argument in the $PATH variable. The default setting is false. When this flag is set to false, you need to specify the full path to the executable. |
enable-debug |
No |
Specifies whether to write debug logs. The default setting is false.
The logs are available in the C:\Users\<username>\AppData\Roaming\OneIdentity\OI-SG-RemoteApp-Launcher folder.
The logs are rotated daily and the file name format is oi_sg_rci_<yyyymmdd>. |
The process and the arguments template is defined by the --cmd and --args command line arguments. In the arguments template, the RemoteApp Launcher replaces the {username} {password} and {asset} with data read from the dynamic virtual channel.
Example: RemoteApp Launcher configuration to start the DBeaver application
C:> C:\Program Files\OneIdentity\RemoteApp Launcher\OI-SG-RemoteApp-Launcher.exe --cmd "C:\Program Files\DBeaver\dbeaver.exe" --args "-con user={username}|password={password}|host=localhost|driver=PostgreSQL|database={asset}|name=work|connect=true" --enable-debug
-
Disable the Use advanced RemoteFX graphics for RemoteApp group policy on the RDP server.
The policy is available at Computer Configuration > Policies > Administrative Templates > Windows Components > Remote Desktop Services > Remote Desktop Session Host > Remote Session Environment > Use advanced RemoteFX graphics for RemoteApp.
You must have the Remote Desktop (RD) Licensing role installed.
Expected result
An end user can open a required application without any credentials by simply starting the RemoteApp Launcher.