Multiple user self-registration flows
You can set up multiple self-registration flows, with features limited only by the capabilities listed in Self-registration.
|
Multiple self-registration flows, and customization of the End User UI beyond what is described in this document (and the noted public Git repository), are not supported. For additional information on customizing the End User UI, refer to the following ForgeRock Git repository: ForgeRock/end-user-ui: Identity Management (End User). |
For example, you may want to set up different portals for regular employees and contractors. You’d configure each portal with different self-registration flows, managed by the same IDM backend. Each portal would use the appropriate registration API.
To prepare for this section, you’ll need a selfservice-registration.json file. You can find a copy in the following directory: /path/to/openidm/samples/example-configurations/self-service.
To avoid errors when using this file, you should either:
-
Copy the following files from the same directory:
selfservice.terms.json
selfservice-termsAndConditions.json -
Delete the
termsAndConditionscode block from the respectiveselfservice-registration*.jsonfiles.
User self-registration is normally coded in the selfservice-registration.json file. In preparation, copy this file to the selfservice-registration*.json to the names shown in the following list:
-
Employee Portal
-
Configuration file:
selfservice-registrationEmployee.json -
URL:
https://localhost:8443/openidm/selfservice/registrationEmployee -
verificationLink:https://localhost:8443/#/registrationEmployee
-
-
Contractor Portal
-
Configuration file:
selfservice-registrationContractor.json -
URL:
https://localhost:8443/openidm/selfservice/registrationContractor -
verificationLink:https://localhost:8443/#/registrationContractor
-
Edit the configuration file for each portal.
-
Modify the
verificationLinkURL associated with each portal as described. -
Edit your access configuration (
conf/access.json), by adding an endpoint for each new self-service registration file, after theselfservice/registrationsection. For example, the following code excerpt would apply to theregistrationEmployeeandregistrationContractorendpoints:{ "pattern" : "selfservice/registrationEmployee", "roles" : "*", "methods" : "read,action", "actions" : "submitRequirements" }, { "pattern" : "selfservice/registrationContractor", "roles" : "*", "methods" : "read,action", "actions" : "submitRequirements" }, -
Modify the functionality of each selfservice-registration*.json file as desired. For guidance, refer to the sections noted in the following table:
Configuring selfservice-registration*.jsonFiles for Different PortalsFeature Code Block Link Social Registration
"socialRegistrationEnabled" : true,Properties requested during self-registration
"registrationProperties" : [ "userName", "givenName", "sn", "mail" ],Terms & Conditions
{ "name" : "termsAndConditions" }Privacy & Consent
{ "name" : "consent", "consentTranslations" : { "en" : "substitute appropriate Privacy & Consent wording", "fr" : "substitute appropriate Privacy & Consent wording, in French" } },reCAPTCHA
{ "name" : "captcha", "recaptchaSiteKey" : "<siteKey>", "recaptchaSecretKey" : "<secretKey>", "recaptchaUri" : "https://www.google.com/recaptcha/api/siteverify" }Email Validation
Security Questions
{ "name" : "kbaSecurityAnswerDefinitionStage", "kbaConfig" : null },If you leave out the code blocks associated with the feature, you won’t refer to that feature in the self-service registration flow. In that way, you can set up different self-service registration flows for the Employee and Contractor portals.
Once you’ve configured both portals, you can make REST calls to both URLs:
https://localhost:8443/openidm/selfservice/registrationEmployee
https://localhost:8443/openidm/selfservice/registrationContractor
For more advice on how you can create custom registration flows, refer to the following public ForgeRock Git repository: Identity Management (End User) - UI.
|
The changes described in this section require changes to the End User UI source code as described in the noted public Git repository. Pay particular attention to the instructions associated with the |