Tutorial: Azure AD SSO integration with Kronos Workforce Dimensions

In this tutorial, you'll learn how to integrate Kronos Workforce Dimensions with Azure Active Directory (Azure AD). When you integrate Kronos Workforce Dimensions with Azure AD, you can:

  • Control in Azure AD who has access to Kronos Workforce Dimensions.
  • Enable your users to be automatically signed-in to Kronos Workforce Dimensions with their Azure AD accounts.
  • Manage your accounts in one central location - the Azure portal.

Prerequisites

To get started, you need the following items:

  • An Azure AD subscription. If you don't have a subscription, you can get a free account.
  • Kronos Workforce Dimensions single sign-on (SSO) enabled subscription.

Note

This integration is also available to use from Azure AD US Government Cloud environment. You can find this application in the Azure AD US Government Cloud Application Gallery and configure it in the same way as you do from public cloud.

Scenario description

In this tutorial, you configure and test Azure AD SSO in a test environment.

  • Kronos Workforce Dimensions supports SP initiated SSO.

To configure the integration of Kronos Workforce Dimensions into Azure AD, you need to add Kronos Workforce Dimensions from the gallery to your list of managed SaaS apps.

  1. Sign in to the Azure portal using either a work or school account, or a personal Microsoft account.
  2. On the left navigation pane, select the Azure Active Directory service.
  3. Navigate to Enterprise Applications and then select All Applications.
  4. To add new application, select New application.
  5. In the Add from the gallery section, type Kronos Workforce Dimensions in the search box.
  6. Select Kronos Workforce Dimensions from results panel and then add the app. Wait a few seconds while the app is added to your tenant.

Alternatively, you can also use the Enterprise App Configuration Wizard. In this wizard, you can add an application to your tenant, add users/groups to the app, assign roles, as well as walk through the SSO configuration as well. Learn more about Microsoft 365 wizards.

Configure and test Azure AD SSO for Kronos Workforce Dimensions

Configure and test Azure AD SSO with Kronos Workforce Dimensions using a test user called B.Simon. For SSO to work, you need to establish a link relationship between an Azure AD user and the related user in Kronos Workforce Dimensions.

To configure and test Azure AD SSO with Kronos Workforce Dimensions, perform the following steps:

  1. Configure Azure AD SSO - to enable your users to use this feature.
    1. Create an Azure AD test user - to test Azure AD single sign-on with B.Simon.
    2. Assign the Azure AD test user - to enable B.Simon to use Azure AD single sign-on.
  2. Configure Kronos Workforce Dimensions SSO - to configure the single sign-on settings on application side.
    1. Create Kronos Workforce Dimensions test user - to have a counterpart of B.Simon in Kronos Workforce Dimensions that is linked to the Azure AD representation of user.
  3. Test SSO - to verify whether the configuration works.

Configure Azure AD SSO

Follow these steps to enable Azure AD SSO in the Azure portal.

  1. In the Azure portal, on the Kronos Workforce Dimensions application integration page, find the Manage section and select single sign-on.

  2. On the Select a single sign-on method page, select SAML.

  3. On the Set up single sign-on with SAML page, click the pencil icon for Basic SAML Configuration to edit the settings.

    Screenshot shows how to edit Basic SAML Configuration.

  4. On the Basic SAML Configuration section, perform the following steps:

    a. In the Identifier (Entity ID) text box, type a URL using the following pattern: https://<SUBDOMAIN>.<ENVIRONMENT>.mykronos.com/authn/<TENANT_ID/hsp/<TENANT_NUMBER>

    b. In the Sign on URL text box, type a URL using one of the following patterns:

    Sign on URL
    https://<CUSTOMER>-<ENVIRONMENT>-sso.<ENVIRONMENT>.mykronos.com/
    https://<CUSTOMER>-sso.<ENVIRONMENT>.mykronos.com/

    Note

    These values are not real. Update these values with the actual Identifier and Sign on URL. Contact Kronos Workforce Dimensions Client support team to get these values. You can also refer to the patterns shown in the Basic SAML Configuration section in the Azure portal.

  5. On the Set up single sign-on with SAML page, In the SAML Signing Certificate section, click copy button to copy App Federation Metadata Url and save it on your computer.

    Screenshot shows the Certificate download link.

Create an Azure AD test user

In this section, you'll create a test user in the Azure portal called B.Simon.

  1. From the left pane in the Azure portal, select Azure Active Directory, select Users, and then select All users.
  2. Select New user at the top of the screen.
  3. In the User properties, follow these steps:
    1. In the Name field, enter B.Simon.
    2. In the User name field, enter the username@companydomain.extension. For example, B.Simon@contoso.com.
    3. Select the Show password check box, and then write down the value that's displayed in the Password box.
    4. Click Create.

Assign the Azure AD test user

In this section, you'll enable B.Simon to use Azure single sign-on by granting access to Kronos Workforce Dimensions.

  1. In the Azure portal, select Enterprise Applications, and then select All applications.
  2. In the applications list, select Kronos Workforce Dimensions.
  3. In the app's overview page, find the Manage section and select Users and groups.
  4. Select Add user, then select Users and groups in the Add Assignment dialog.
  5. In the Users and groups dialog, select B.Simon from the Users list, then click the Select button at the bottom of the screen.
  6. If you are expecting a role to be assigned to the users, you can select it from the Select a role dropdown. If no role has been set up for this app, you see "Default Access" role selected.
  7. In the Add Assignment dialog, click the Assign button.

Configure Kronos Workforce Dimensions SSO

To configure single sign-on on Kronos Workforce Dimensions side, you need to send the App Federation Metadata Url to Kronos Workforce Dimensions support team. They set this setting to have the SAML SSO connection set properly on both sides.

Create Kronos Workforce Dimensions test user

In this section, you create a user called Britta Simon in Kronos Workforce Dimensions. Work with Kronos Workforce Dimensions support team to add the users in the Kronos Workforce Dimensions platform. Users must be created and activated before you use single sign-on.

Note

Original Microsoft documentation advises to contact UKG Support via email to create your Azure AD Users. While this option is available please consider the following self-service options.

Manual Process

There are two ways to manually create your Azure AD users in WFD. You can either select an existing user, duplicate them and then update the necessary fields to make that user unique. This process can be time consuming and requires knowledge of the WFD User Interface. The alternative is to create the user via the WFD API which is much quicker. This option requires knowledge of using API Tools such as Postman to send the request to the API instead. The following instructions will assist with importing a prebuilt example into the Postman API Tool.

Setup

  1. Open Postman tool and import the following files:

    a. Workforce Dimensions - Create User.postman_collection.json

    b. AAD to WFD Env Variables.json

  2. In the left-pane, select the Environments button.

  3. Click on AAD_to_WFD_Env_Variables and add the values provided by UKG Support pertaining to your WFD instance.

    Note

    access_token and refresh_token should be empty as these will automatically populate as a result of the Obtain Access Token HTTP Request.

  4. Open the Create Azure AD User in WFD HTTP Request and update highlighted properties within the JSON payload:

    { 
    
    "personInformation": { 
    
       "accessAssignment": { 
    
          "accessProfileName": "accessProfileName", 
    
          "notificationProfileName": "All" 
    
        }, 
    
        "emailAddresses": [ 
    
          { 
    
            "address": "address” 
    
            "contactTypeName": "Work" 
    
          } 
    
        ], 
    
        "employmentStatusList": [ 
    
          { 
    
            "effectiveDate": "2019-08-15", 
    
            "employmentStatusName": "Active", 
    
            "expirationDate": "3000-01-01" 
    
          } 
    
        ], 
    
        "person": { 
    
          "personNumber": "personNumber", 
    
          "firstName": "firstName", 
    
          "lastName": "lastName", 
    
          "fullName": "fullName", 
    
          "hireDate": "2019-08-15", 
    
          "shortName": "shortName" 
    
        }, 
    
        "personAuthenticationTypes": [ 
    
          { 
    
            "activeFlag": true, 
    
            "authenticationTypeName": "Federated" 
    
          } 
    
        ], 
    
        "personLicenseTypes": [ 
    
          { 
    
            "activeFlag": true, 
    
            "licenseTypeName": "Employee" 
    
          }, 
    
          { 
    
            "activeFlag": true, 
    
            "licenseTypeName": "Absence" 
    
          }, 
    
          { 
    
            "activeFlag": true, 
    
            "licenseTypeName": "Hourly Timekeeping" 
    
          }, 
    
          { 
    
            "activeFlag": true, 
    
            "licenseTypeName": "Scheduling" 
    
          } 
    
        ], 
    
        "userAccountStatusList": [ 
    
          { 
    
            "effectiveDate": "2019-08-15", 
    
            "expirationDate": "3000-01-01", 
    
            "userAccountStatusName": "Active" 
    
          } 
    
        ] 
    
      }, 
    
      "jobAssignment": { 
    
        "baseWageRates": [ 
    
          { 
    
            "effectiveDate": "2019-01-01", 
    
            "expirationDate": "3000-01-01", 
    
            "hourlyRate": 20.15 
    
          } 
    
        ], 
    
        "jobAssignmentDetails": { 
    
          "payRuleName": "payRuleName", 
    
          "timeZoneName": "timeZoneName" 
    
        }, 
    
        "primaryLaborAccounts": [ 
    
          { 
    
            "effectiveDate": "2019-08-15", 
    
            "expirationDate": "3000-01-01", 
    
            "organizationPath": "organizationPath" 
    
          } 
    
        ] 
    
      }, 
    
      "user": { 
    
        "userAccount": { 
    
          "logonProfileName": "Default", 
    
          "userName": "userName" 
    
        } 
    
      } 
    
    }
    

    Note

    The personInformation.emailAddress.address and the user.userAccount.userName must both match the targeted Azure AD User you are trying to create in WFD.

  5. In the upper-righthand corner, select the Environments drop-down-box and select AAD_to_WFD_Env_Variables.

  6. Once the JSON payload has been updated and the correct environment variables selected, select the Obtain Access Token HTTP Request and click the Send button. This will leverage the updated environment variables to authenticate to your WFD instance and then cache your access token in the environment variables to use when calling the create user method.

  7. If the authentication call was successful, you should see a 200 response with an access token returned. This access token will also now show in the CURRENT VALUE column in the environment variables for the access_token entry.

    Note

    If an access_token is not received, confirm that all variables in the environment variables are correct. User credentials should be a super user account.

  8. Once an access_token is obtained, select the AAD_to_WFD_Env_Variables HTTP Request and click the Send button. If the request is successful you will receive a 200 HTTP status back.

  9. Login to WFD with the Super User account and confirm the new Azure AD User was created within the WFD instance.

Automated Process

The automated process consists of a flat-file in CSV format which allows the user to prespecify the highlighted values in the payload from the manual API process above. The flat-file is consumed by the accompanying PowerShell script which creates the new WFD users in bulk. The script processes new user creations in batches of 70 (default) which is configurable for optimal performance. The following instructions will walk through the setup and execution of the script.

  1. Save both the AAD_To_WFD.csv and AAD_To_WFD.ps1 files locally to your computer.

  2. Open the AAD_To_WFD.csv file and fill in the columns.

    • personInformation.accessAssignment.accessProfileName: Specific Access Profile Name from WFD instance.

    • personInformation.emailAddresses.address: Must match the User Principle Name in Azure Active Directory.

    • personInformation.personNumber: Must be unique across the WFD instance.

    • personInformation.firstName: User’s first name.

    • personInformation.lastName: User’s last name.

    • jobAssignment.jobAssignmentDetails.payRuleName: Specific Pay Rule Name from WFD.

    • jobAssignment.jobAssignmentDetails.timeZoneName: Timezone format must match WFD instance (i.e. (GMT -08:00) Pacific Time)

    • jobAssignment.primaryLaborAccounts.organizationPath: Organization Path of a specific Business structure in the WFD instance.

  3. Save the .csv file.

  4. Right-Click the AAD_To_WFD.ps1 script and click Edit to modify it.

  5. Confirm the path specified in Line 15 is the correct name/path to the AAD_To_WFD.csv file.

  6. Update the following lines with the values provided by UKG Support pertaining to your WFD instance.

    • Line 33: vanityUrl

    • Line 43: appKey

    • Line 48: client_id

    • Line 49: client_secret

  7. Save and execute the script.

  8. Provide WFD Super User credentials when prompted.

  9. Once completed, the script will return a list of any users that failed to create.

Note

Be sure to check the values provided in the AAD_To_WFD.csv file if it is returned as the result of typos or mismatched fields in the WFD instance. The error could also be returned by the WFD API instance if all users in the batch already exist in the instance.

Test SSO

In this section, you test your Azure AD single sign-on configuration with following options.

  • Click on Test this application in Azure portal. This will redirect to Kronos Workforce Dimensions Sign-on URL where you can initiate the login flow.

  • Go to Kronos Workforce Dimensions Sign-on URL directly and initiate the login flow from there.

  • You can use Microsoft My Apps. When you click the Kronos Workforce Dimensions tile in the My Apps, this will redirect to Kronos Workforce Dimensions Sign-on URL. For more information about the My Apps, see Introduction to the My Apps.

Next steps

Once you configure Kronos Workforce Dimensions you can enforce session control, which protects exfiltration and infiltration of your organization’s sensitive data in real time. Session control extends from Conditional Access. Learn how to enforce session control with Microsoft Defender for Cloud Apps.