Desktop and Application Streaming
How to configure Desktop Single Sign-On using Okta with audio optimization for Amazon Connect on Amazon WorkSpaces
Today, organizations employ agents who utilize applications running in a Virtual Desktop Environment (VDI) such as Amazon WorkSpaces that allows agents to use multiple applications in the cloud without incurring high costs of hardware procurement. In a VDI environment the Amazon Connect CCP (Contact Control Panel) can cause impact to audio quality, and is required to run media(audio) on the local desktop with the standard CCP and signaling in the virtual desktop using a customized CCP built using the Amazon Connect Streams API. When you have to run two separate Amazon Connect CCP environments, challenge arises where agent login twice into the separate Amazon Connect CCP. Organizations can setup Single Sign-On which allows their agents to access Amazon Connect CCP application without entering any credentials. This blog describes how to configure desktop single sign-on with Okta and allow audio optimization for Amazon Connect on Amazon WorkSpaces.
Time to read | 10 minutes |
Time to complete | 1.5 hour |
Learning level | 400 |
Cost to complete | $0 |
SAML identity provider | Okta |
Services used | Amazon WorkSpaces AWS Directory Service Amazon Connect |
What is Desktop Single Sign-On?
With Desktop Single Sign-On (DSSO), users are automatically authenticated by your identity provider when they sign in to your Windows network. When your identity provider receives a Kerberos ticket from the browser, it validates the ticket against the domain defined in the Desktop SSO configuration. If validation succeeds, it retrieves the required information from the ticket; generates a SAML assertion with the username and required variables and passes it to the Service provider. In this way, users can access applications without entering additional usernames or passwords. DSSO improves the user experience because users sign in a single time and don’t need separate credentials for each application, they access through identity provider.
Overview of solution
In this solution, we will demonstrate how you can apply desktop single sign on, using Okta, as your identity provider with Amazon WorkSpaces as the virtual desktop environment and Amazon Connect.
User authentication flow
- To authenticate with Amazon WorkSpaces, users enter their username and password in the WorkSpaces client. If you have configured Single Sign-On with WorkSpaces, then you will be authenticated with your identity provider.
- After the successfully authentication on WorkSpaces client, this workflow will split in 2 different ways.
2a) On the endpoint, a browser will open with the pre-defined URL of media CCP.
2b) All the group policies will apply on the Amazon WorkSpaces and once the desktop loads, a browser will open with pre-defined URL of media-less CCP. - Media CCP and media-less CCP will redirect the browser to authenticate with Okta URL. Both browsers within the WorkSpaces (3b) or outside of the WorkSpaces (3a) will connect to Okta for desktop SSO.
- After successful authentication of Okta, Okta will send a SAML token (4a and 4b) to the browser along with redirection URLs of the media and media-less CCP.
- 5a) On the endpoint, the browser will redirect to the media CCP.
5b) In the WorkSpace, the browser will redirect the media-less CCP. - You are now successfully logged into Amazon Connect CCPs from the endpoint and WorkSpaces without any passport prompt.
Walkthrough
For this scenario you will perform the following steps:
- Configure desktop single sign on in Okta.
- Configure required group policies in Active Directory and apply this group policy on end user desktops and WorkSpaces.
- Configure Amazon Connect audio optimization for WorkSpaces.
- SSO testing of media less CCP within the WorkSpace and media-based CCP from the end user’s endpoint.
Prerequisites
For this walkthrough, you should have the following:
- An AWS account.
- An Amazon Connect instance configured with SAML 2.0 based authentication with Okta Identity for Single Sign On – If you don’t have this configured, you can do so by following the instructions in the Configure Single Sign-On for Amazon Connect Using Okta blog written by my colleagues.
- AWS Managed Active Directory or AWS AD Connector.
- A WorkSpace that is a domain member of standalone Active Directory using AD Connector or AWS Managed Active Directory.
- End user desktop must be a domain member of same standalone Active Directory or AWS Managed Active Directory. It is required for implementation of desktop SSO and seamless Single-Sign on Amazon Connect media CCP on desktop and media less CCP on Amazon WorkSpaces.
- Knowledge of configuring a Contact Center using Single Sign On, and Kerberos.
- Admin should have Super Administrative role on the Okta.
- Domain Admin privilege or delegated permissions to create group policies, create user account and modify service principal name will be require on Active Directory. In case of AWS managed AD, user ID must be a member of “AWS Delegated Administrators” AD group.
- Experience in creating and managing Active Directory Group Policies.
Steps to configure desktop single sign on with Amazon WorkSpaces, Amazon Connect using Okta
Step 1: Creation of service account in the AWS Managed Active Directory or standalone Active Directory for Desktop SSO.
- Create a service account in Active Directory. Clear “User must change password at next logon” checkbox during account creation.
- Open a command prompt and run this command to configure an SPN for the service account:
setspn -S HTTP/<myorg>.kerberos.<oktaOrg>.com <ServiceAccountName>
Select the configuration as below:
<myorg>
is the value of your unique Okta domain. For example, ifhttps://example.okta.com
is your Okta login URL, thenexample
will be the value for<myorg>
.<oktaOrg>
is your Okta org (eitheroktapreview
,okta-emea
orokta
).HTTP/<myorg>.kerberos.<oktaOrg>.com
is the SPN.<ServiceAccountName>
is the value you used when configuring Agentless DSSO
For example, setspn -S HTTP/example.kerberos.okta.com examplespnadmin
.
Step 2: Turn On Desktop SSO feature in the Okta console
- Login to Okta admin console.
- In the navigation pane, Select Security and choose delegated authentication.
- Scroll down to Agentless Desktop SSO.
- Click Edit and Select a Desktop SSO mode: ON.
- Select “edit” option under Active Directory instances where you want to turn on Agentless Desktop SSO.
- Choose “Enabled from the Desktop SSO drop down list. Provide username and password of the service account created earlier in the steps.
- Select Save.
- In the navigation pane, select Security and choose Identity Providers.
- Select Routing Rules and then select the AgentlessDSSO rule.
- Click Edit.
- Select the settings as follows:
- User’s IP is – Select “Anywhere” to apply the rule to any user location. This setting will ensure that DesktopSSO to be initiate, If request for DSSO receives from any IP address.
- User’s device platform is – Select “Any device” to apply the rule to users with any device type. This setting will ensure that DesktopSSO to be initiated, If request for DSSO receives from any user device platform.
- User is accessing – Select “Any application” to apply the rule when a user accesses any Okta application.
- Use this identity provider – Select AgentlessDSSO.
- Click Update Rule to save your changes.
- You can also restrict the above rules with desired filters using this documentation.
- Select “Inactive”, choose “Activate”, and then “Activate” in the “Activate Rule” dialog box to activate the rule.
Step 3. Configure domain group policy for agentless Desktop Single Sign-on on Windows browsers
Chrome browser
- Download the Google Chrome ADM/ADMX templates.
- Extract the bundle.
- Copy ADML and ADMX files to Sysvol policy definition folder. (
\\<domain>\sysvol\<domain>\policies\policydefinitions
) - Create a group policy in the Active Directory and link it to the OU where WorkSpaces computer objects are created.
- Edit the group policy and navigate to Local Computer Policy > Computer Configuration > Administrative Templates > Google > Google Chrome > HTTP Authentication
- Modify “Authentication server Allowlist” and add the URL
<myorg>.kerberos.<oktaOrg>.com
.
Select the configuration for URL as follows:
<myorg>
is the value of your unique Okta domain. For example, if https://example.okta.com
is your Okta login URL, then example
will be the value for <myorg>
. <oktaOrg> is your Okta org (either oktapreview
, okta-emea
or okta
).
For example: example.kerberos.okta.com
Firefox browser
- Download Firefox policy template bundle.
- Extract the bundle.
- Copy ADML and ADMX files to Sysvol policy definition folder. (
\\<domain>\sysvol\<domain>\policies\policydefinitions
) - Create a group policy in the Active Directory and link it to the OU where WorkSpaces computer objects are created.
- Edit the group policy and navigate to Local Computer Policy > Computer Configuration > Administrative Templates > Mozilla > Firefox > Authentication
- Modify SPNEGO settings and add the URL
<Okta-org>.kerberos.okta.com
Select configuration for URL as below:
<myorg>
is the value of your unique Okta domain. For example, if https://example.okta.com
is your Okta login URL, then example
will be the value for <myorg>
. <oktaOrg>
is your Okta org (either oktapreview
, okta-emea
or okta
).
For example: example.kerberos.okta.com
Step 4: Configure Amazon Connect audio optimization for WorkSpaces
- Get the embedded app URL from Okta.
- Login to Okta Admin console and select Applications, and then choose Applications from the navigation pane.
- Select the Application created for SAML 2.0 based authentication with Amazon Connect.
- Select General.
- Under App Embed Link, copy the application URL. This will be used in a later step.
- Configure Amazon Connect audio optimization for WorkSpaces using app URL.
- Open the WorkSpaces console at https://console.aws.amazon.com/workspaces/.
- In the navigation pane, choose Directories.
- Select your directory. (AWS Managed Directory)
- Under Connect Audio Optimization section, Select “Enable connect audio optimization”.
- Enter Connect Control Panel (CCP) Name, any desired name.
- In the Connect Control Panel (CCP) URL field, enter App URL copied in the previous step.
- Select Save.
- Reconfigure your media-less CCP URL to allow Desktop SSO with Okta URL. For an example, see step 7 of Optimize your Amazon Connect call audio path with Amazon AppStream 2.0.
Cleaning up
- Remove Amazon Connect audio optimization settings in Amazon WorkSpaces.
- Open the WorkSpaces console at https://console.aws.amazon.com/workspaces/.
- In the navigation pane, choose Directories.
- Select your directory. (AWS Managed Directory)
- Under Connect Audio Optimization section, Select Edit.
- Select “Delete Amazon Connect”.
- Turn Off the Agentless Desktop SSO in the Okta security console.
- Login to Okta admin console.
- In the navigation pane, Select Security and choose delegated authentication.
- Scroll down to Agentless Desktop SSO.
- Click Edit and Select a Desktop SSO mode: Off.
- Delete service account created for Okta SSO.
Connect to Active Directory and delete the service account created in the Step 1 for Okta SSO during the setup. - Cleanup of domain group policy settings of browser applied on local desktop and WorkSpaces.
Chrome Browser:
- Connect to Active Directory.
- Edit the group policy created in Step 3 during the setup.
- Navigate to Local Computer Policy > Computer Configuration > Administrative Templates > Google > Google Chrome > HTTP Authentication.
- Modify “Authentication server Allowlist” and select “Not Configured”.
- Save the policy.
Firefox:
- Connect to Active Directory.
- Edit the group policy created in Step 3 during the setup.
- Navigate to Local Computer Policy > Computer Configuration > Administrative Templates > Mozilla > Firefox > Authentication
- Modify SPNEGO settings and select “Not configured”.
- Save the policy.
By default, group policy is automatically refreshed every 90 minutes with randomized offset of up to 30 minutes. These changes will apply on all the computer objects of local desktop and Amazon WorkSpaces present in the OU to which this group policy was linked.
Conclusion
In this post, you learned how to configure desktop SSO and audio optimization in Amazon WorkSpaces for Amazon Connect using Okta. The key goal of desktop SSO to remove a password prompt for the user to login to Amazon Connect.
We have outlined the authentication workflow from end user desktop, WorkSpaces, Okta, and Amazon Connect. By implementing this setup, you have streamlined and improved the end user experience. You have also reduced reliance on passwords with desktop SSO.
To learn more about Amazon WorkSpaces, please review the administration guide and you can get more information about Amazon Connect in VDI environment using this link.
If you’d like to discuss how to configure desktop single sign-on described in this blog for your specific use case, we’d love to hear from you. Just reach out to your account team.
Ajay Saini is a End User Compute Specialist Solution Architect. He works with his customer to help them understand the best practices, accelerate their architecture design, migrate and modernize their existing Virtual Desktop Infrastructure (VDI) to AWS. In his spare time, he enjoys travel and spending time with his family | |
Swaraj Kankipati is a Senior specialist solution architect for Amazon Connect based out of Glastonbury, Connecticut, helps with customer growth and adoption of Amazon Connect. |