Certificate Enrollment Service

HYPR Workforce Access Client: Windows

πŸ“˜

Beta Feature

This article is subject to change as the feature develops and we make improvements.

HYPR Certificate Enrollment Service is designed to manage authentication certificates for end users enrolling with the HYPR Workforce Access Client and the HYPR Device Manager.

When users add a new device to the Device Manager for a workstation authentication, Control Center will make REST API calls to the Enrollment Service to enroll the certificate on the user's behalf - and then transport this certificate to the user's mobile device.

If the user follows the prompt, they will be taken to the Updating a Key's PIN dialog described in Pairing with a Security Key.

How It Works

  • The HYPR Enrollment Service is a service running on a Windows computer (Windows 10 or Windows Server 2008/2012/2016/2019) hosted on-premises at the customer with network connectivity to Active Directory Certificate Services (ADCS)
  • The service runs under the SYSTEM account
  • The computer on which the service is running will have an Enrollment Agent (Computer) certificate enrolled and stored in the Local Machine certificate store
  • A certificate template named HYPR Enrollment User will be defined for enrolling user certificates; that service will utilize the template to enroll user certificates on behalf of a specified user; the policy for this template will be set to require one signature from an Enrollment Agent
  • The service will continually poll the HYPR CC server for certificate requests by invoking the api/certificate/requests endpoint with a secure API token; the service will attempt to enroll a user certificate on behalf of the specified user for each request
  • The enrollment service uses the CertENROLL (a Microsoft-provided .dll that ships with every MS OS) ActiveX component to enroll user certificates
  • When a userID is presented to the HYPR Enrollment Service, it will attempt to find the user in Active Directory; it will first try the lookup by User Principle Name (UPN), then via the mail attribute (email address)

πŸ‘

One of Us

The server where the Enrollment Service is installed must be joined to the domain and have persistent and reliable network connectivity with a domain controller and the Active Directory Certificate Services (AD CS) server.

πŸ“˜

Private Space

Do not install the Certificate Enrollment Service on the Domain Controller or the AD CS server.
Install the Certificate Enrollment Service on a separate server in the same security tier/level.

Control Center Settings

  • If you have not yet created the Control Center Application you will use in Advanced Mode, go ahead and create it
  • In that Application's Login Settings, Push Notifications must be enabled
  • Generate an API access token (and store it securely) for both that Application and for the Control Center Admin Application before proceeding

HYPR Feature Flags

Changing Feature Flags requires an access token for each affected Application.

The following feature flags must be enabled:

  • WINDOWS_WEB_ENROLLMENT must be enabled on the Global and Application levels
  • These feature flags must be enabled only for the Application:
    • ASYNC_REGISTRATION - Must be enabled before RP_APP_WORKSTATION_ENABLED
    • RP_APP_WORKSTATION_ENABLED
    • VIRTUAL_DESKTOP_INFRASTRUCTURE
    • ENDPOINT_API_SECURITY_TOKEN_DEVICE - Enabled by default
    • ENDPOINT_API_SECURITY_TOKEN_WORKSTATION - Enabled by default

To enable the feature flag on the Application level:

curl --location --request POST 'https://<YOUR CONTROL CENTER URL>/rp/api/versioned/features/toggle/<FEATURE FLAG NAME>/<YOUR RP APP NAME>' \--header 'Connection: keep-alive' \
--header 'Cache-Control: max-age=0' \
--header 'Content-Type: application/json' \
--header 'Accept: */*' \
--header 'Sec-Fetch-Site: same-origin' \
--header 'Sec-Fetch-Mode: cors' \
--header 'Accept-Encoding: gzip, deflate, br' \
--header 'Accept-Language: en-US,en;q=0.9' \
--header 'Authorization: Bearer <YOUR ACCESS TOKEN> \
--data-raw ''

To enable the feature flag at the Global (Control Center) level:

curl --location --request POST 'https://<YOUR CONTROL CENTER URL>/rp/api/versioned/features/toggle/<FEATURE FLAG NAME>' \--header 'Connection: keep-alive' \
--header 'Cache-Control: max-age=0' \
--header 'Content-Type: application/json' \
--header 'Accept: */*' \
--header 'Sec-Fetch-Site: same-origin' \
--header 'Sec-Fetch-Mode: cors' \
--header 'Accept-Encoding: gzip, deflate, br' \
--header 'Accept-Language: en-US,en;q=0.9' \
--header 'Authorization: Bearer <YOUR ACCESS TOKEN>\
--data-raw ''

Certificate Templates

πŸ“˜

Just One Example

Screenshots below were taken using Active Directory (AD) 2008. Your AD may have a different user interface if you're on a newer version.

To enroll certificates on behalf of another user, an Enrollment Agent certificate must be present on the Windows server where the HYPR Enrollment Service is running. In addition, a user template must be defined to allow user certificates to be issued.

πŸ‘

Domain Administrator

DA privileges are required to create, configure, and deploy certificate templates.

Create the HYPR Enrollment Agent Template

  1. On a Windows server with the Active Directory Certificate Services (ADCS) role configured, run MMC and load the Certificate Templates snap-in.
  2. Right-click the Enrollment Agent (Computer) template and choose the All Tasks β†’ Duplicate Template menu option.
1920
  1. Name the new template HYPR Enrollment Agent.
1920
  1. Select the Security tab to display the current access control list for the template.
1920
  1. To tighten the access controls on the template, click Add… and add an entry for the computer where the HYPR Enrollment Service will be running.
1920 1920 1920
  1. Check the Allow column's box next to Enroll, then click Apply to save the template.

Create the HYPR Enrollment User Template

  1. Duplicate an existing template (see Creating a Custom Certificate Template) and name it HYPR Enrollment User. This is the template that will be used to issue user certificates.
1920
  1. Select the Issuance Requirements tab.
  2. Check This number of authorized signatures and give it a value of 1.
  3. Set the Application Policy to Certificate Request Agent.
  4. Click Apply to save the template.
1920
  1. Load the Certification Authority snap-in into MMC.
  2. Choose the Certificate Templates node.
  3. Right-click and select the New β†’ Certificate Template to Issue menu option.
  4. Select the HYPR Enrollment Agent and HYPR Enrollment User templates from the list.
  5. Click OK to publish the certificate templates for use.
1908

Deploy the HYPR Enrollment Agent Template

  1. On the Windows server where the HYPR Enrollment Service is running, deploy the Enrollment Agent certificate to the Local Machine certificate store. Run certlm.msc.
  2. Right-click Personal and choose Certificates.
  3. Right-click and choose All Tasks β†’ Request New Certificate.
1280
  1. Continue to click Next until the following dialog is displayed.
1280
  1. Choose the HYPR Enrollment Template and click Enroll to deploy the Enrollment Agent certificate to the Windows server.

Configuring Active Directory (AD) Users

Before a user can start the web registration flow, their AD user account must be configured as follows:.

  1. In the management console, click Start.
  2. Navigate to Active Directory Users and Computers.
  3. In the top menu, click View -> Advanced Features.
  4. Select the user that you will invite to register.
  5. Under the General tab, enter the user's email address into the E-mail field.
  6. Click the Attribute Editor.
  7. Scroll down, click the mail attribute, and enter the user’s email address.

Installation

The Enrollment Service is distributed as an MSI installer package. The file name is HyprEnrollmentService_x64.msi. The installer has no user interface – it is intended to be installed by an IT professional on a server, where a GUI may not be available. Installation parameters must be passed on the msiexec command line.

🚧

Private Space

Do not install the Enrollment Service on the Domain Controller or the AD CS server, but on a separate server in the same security tier/level.

πŸ‘

Administrator

Local Administrator or Domain Administrator privileges are required to install the HYPR Certificate Enrollment Service.

Installation Parameters

ParameterDescriptionType
HYPRAPITOKENAPI Token that Enrollment Service will use to access the HYPR server. Must be generated for the Control Center Admin application. Note that this is a traditional API Token, and not a Workstation Installation Token.Required
HYPRHASHSSL/TLS public key pinning hash. This value can be obtained from the hypr.json file included when you download HYPR Passwordless (Workforce Access Client).Required
HYPRRPURL of the HYPR server (e.g. https://bank.hypr.com/rp).Required
HYPRLOGLEVELLog level to the Enrollment Service (5 = Debug, 6 = Trace, other values should be avoided). Default is 5 if not specified.Optional
HYPRPROXYSERVERProxy server address and port (e.g., proxy.foobar.com:8080 or 12.34.56.78:8888).Optional
HYPRTEMPLATETemplate that the Enrollment Service will use to request user certificates. Defaults to HYPREnrollmentUser if not specified.Optional
HYPRPROXYBYPASSSubnets and/or hosts that should bypass the proxy.Optional

Installation Example

@if "%1%"=="" goto USAGE
@if not exist "%1%" goto USAGE

set RP="https://<YOUR CONTROL CENTER URL>/rp"
set HASH="<SSL/TLS PUBLIC KEY PINNING HASH>"
set APITOKEN="<YOUR CONTROL CENTER ADMIN RP APP ACCESS TOKEN>"
set TEMPLATE="<CERTIFICATE TEMPLATE NAME>"

msiexec /i %1 /qn /norestart /L*V install.log HYPRRP=%RP% HYPRHASH=%HASH% HYPRAPITOKEN=%APITOKEN% HYPRTEMPLATE=%TEMPLATE%

@exit /b 0

:USAGE
@echo Usage: install "<PATH TO MSI>"
@exit /b 1

See Installation Parameters for more details.