PingFederate Server

Setting up self-service registration

PingFederate leverages the HTML Form Adapter to deliver a secure and easy-to-use customer authentication, registration, and profile management solution.

About this task

A typical self-service registration setup involves five components:

  • A PingDirectory installation (step 1)

  • An authentication policy contract (step 2)

  • A local identity profile (step 3)

  • An HTML Form Adapter instance (step 4)

  • An IdP authentication policy (step 5)

For this consumer registration use case, users complete a self-service registration process to create their accounts, then access resources protected by multiple service providers.

During registration, a user provides an email address, first and last name, password, and, optionally, a mobile phone number. The email address is the user identifier. All attributes are sent to the service providers, which the partner agreements specify. You have already created a specific object class in the directory to store the user information. The object class name is aPerson, and the LDAP attributes are mail, givenName, sn, and mobile.

Steps

  1. Install PingDirectory. Refer to Installing the PingDirectory Suite of Products in the PingDirectory documentation.

  2. Create an authentication policy contract.

    1. Go to Authentication > Policies > Policy Contracts.

    2. On the Policy Contracts page, click Create New Contract.

    3. On the Contract Info tab, enter a name for the authentication policy. Click Next.

    4. On the Contract Attributes tab, extend the authentication policy contract by entering the firstName, lastName, mobileNumber, and SAML_SUBJECT (email address) attributes in the Extend the Contract field.

      (Optional) You can add other attributes.

    5. After each entry, click Add. When you are finished, click Next.

    6. On the Summary tab, review your changes.

    7. Click Save.

      Learn more in Managing policy contracts.

  3. Create a local identity profile using the Authentication > Policies > Local Identity Profiles configuration wizard.

    1. On the Local Identity Profiles page, click Create New Profile.

    2. On the Profile Info tab, enter a name in the Local Identity Profile Name field.

    3. In the Authentication Policy Contract list, select the authentication policy (from step 2). Select the Enable Registration checkbox. Click Next.

    4. On the Authentication Sources tab, click Next.

    5. On the Fields tab, click Create New Field.

    6. In the Field Configuration page, on the Field Configuration tab, define four local identity fields. Enter the information described in the following table.

      Local Identity Profile fields and entries
      Type ID Label Parameters

      Email

      lipEmail

      Email address

      Select the Required checkbox.

      Text

      lipFirstName

      First name

      Select the Required checkbox.

      Text

      lipLastName

      Last name

      Select the Required checkbox.

      Phone

      lipMobile

      Mobile number

      No parameters are required.

      Screen capture of the local identity profile field configuration page. There are fields for ID, Label, and Type. There are also Read-Only, which is selected, Required, and Mask Log Values checkboxes in the Parameters section.
    7. After each field entry, click Next. On the Summary tab, review your changes. Click Done.

    8. Repeat steps 3e - 3g until the fields are entered.

      As needed, select the Mask Log Values checkbox for any of the four local identity fields and Mask all OGNL-expression generated log values checkbox. The latter applies to all local identity fields.

    9. On the Fields tab of the Local Identity Profile page, specify an ID field as the unique ID for your configuration and click the corresponding Unique ID. Click Next.

    10. On the Email Verification tab, click Next.

    11. On the Registration tab, click Next.

    12. On the Data Store Configuration tab, click Configure Data Store.

    13. On the Data Store tab of the Data Store Configuration page, select the LDAP datastore that been set up to connect to your PingDirectory in the Data Store list. Click Next.

    14. On the LDAP Configuration tab, specify the branch of your directory hierarchy where you want PingFederate to store customer identities in the Base DN field and the LDAP attributes to be associated with fields defined in this local identity profile under Attribute.

    15. On the Identity Creation tab, define the RDN pattern in the Relative DN Pattern field and select your object, such as class such as class aPerson for this sample use case, from the Object Class list.

      The pattern is as follows.

      attribute1=value1[, …​, attributeN=valueN]

      If you want to use the ${entryUUID} variable variable to guarantee the uniqueness of the relative DNs for all users, you must use it with the {entryUUID} LDAP attribute.

    entryUUID=${entryUUID}

    1. On the Data Store Mapping tab, configure the mapping between the local identity profile fields and datastore attributes. Refer to the following table.

      Mapping entries for local identity profile fields and datastore attributes
      Field Data Store Attribute

      lipEmail

      mail

      lipFirstName

      givenName

      lipLastName

      sn

      lipMobile

      mobile

    2. On the Summary tab, click Done.

  4. Configure an HTML Form Adapter instance for customer identities.

    1. Go to Authentication > Integration > IdP Adapters.

    2. Create a new HTML Form Adapter instance or reuse an existing one by clicking its name.

    3. On the IdP Adapter tab in the Password Credential Validator Instance section, add the LDAP Username Password Credential Validator instance that has been set up to validate credentials stored on your PingDirectory.

    4. On the IdP Adapter tab, select the newly created local identity profile in the Local Identity Profile list.

    5. Complete the rest of the configuration and save all changes.

  5. Create an IdP authentication policy.

    1. Go to Authentication > Policies > Policies.

    2. Click Add Policy.

    3. On the Policy page, enter a name in the Name field.

    4. Select the HTML Form Adapter instance (configured in step 4) under Policy.

      1. For its Fail path, select Done.

      2. For its Success path, select the local identity profile (created in step 3).

    5. Click Local Identity Mapping underneath the selected local identity profile, which opens the Inbound Mapping & Contract Fulfillment configuration wizard.

    6. On the Inbound Mapping & Contract Fulfillment Inbound Mapping page, configure the pf.local.identity.unique.id built-in local identity field for the registration process.

      At runtime, PingFederate fulfills the value of the pf.local.identity.unique.id built-in local identity field based on this configuration and passes the value to PingDirectory.

      PingDirectory uses this value to determine whether such identity has already been created. The pf.local.identity.unique.id field value should therefore be mapped from the subject identifier of the preceding authentication source, namely the username attribute from the HTML Form Adapter.

      For this use case, configure the Inbound Mapping page as shown in the following table.

      Inbound Mapping Fulfillment Source Value

      pf.local.identity.unique.id

      Adapter

      username

    7. On the Attribute Sources & User Lookup tab, click Next.

  6. On the Contract Fulfillment tab, fulfill the authentication policy contract with values from this local identity profile as follows:

    Outbound Contract Fulfillment Source Value

    subject

    Local Identity

    lipEmail

    firstName

    Local Identity

    lipFirstName

    lastName

    Local Identity

    lipLastName

    mobileNumber

    Local Identity

    lipMobile

    1. On the Issuance Criteria tab, click Next.

    2. On the Summary tab, click Done.

    3. On the Policy page, click Done.

    4. Select the IdP Authentication Policies checkbox.

      Other IdP authentication policies, if any, are enabled as well.

    5. Click Save to retain your changes.

  7. Map the authentication policy contract to the applicable Browser SSO connections, OAuth grant-mapping configuration, or both.

Result

You have now successfully set up self-service registration. When users sign on through this HTML Form Adapter instance, they can complete a self-service registration process to create their accounts by using the Register now link at the bottom of the Sign On page.

Screen capture of a sample sign-on page

If a user chooses to register, the HTML Form Adapter redirects the user to the registration page. Based on the configuration of this sample use case as illustrated in the following registration screen capture.

Screen capture of a sample registration page