Account (Self-Service) Registration
CAS provides a modest workflow to handle self-service account registration. Once enabled, the account registration workflow allows users to register accounts with CAS to:
- Provide an initial, customizable set of details such as first name, last name, email to kickstart the account creation request.
- Receive an activation link with instructions via email or text message to verify the account creation request.
- Finalize the account creation request, choose a password, security questions, etc.
- Ultimately, submit the account registration request to an identity manager system for provisioning and follow-up processes.
CAS is NOT, as of this writing, an identity management solution and does not intend to provide features or support capabilities that are typically found in such systems, such as complex provisioning workflows, account lifecycle management, inbound/outbound attribute mappings, etc. While all open-source software can be customized to no end, the capabilities described here ultimately expect one or more systems of record to hold and manage user accounts.
Account registration and sign-up functionality is enabled by including the following dependency in the WAR overlay:
1
2
3
4
5
<dependency>
<groupId>org.apereo.cas</groupId>
<artifactId>cas-server-support-account-mgmt</artifactId>
<version>${cas.version}</version>
</dependency>
1
implementation "org.apereo.cas:cas-server-support-account-mgmt:${project.'cas.version'}"
1
2
3
4
5
6
7
8
9
dependencyManagement {
imports {
mavenBom "org.apereo.cas:cas-server-support-bom:${project.'cas.version'}"
}
}
dependencies {
implementation "org.apereo.cas:cas-server-support-account-mgmt"
}
1
2
3
4
5
6
7
8
9
10
dependencies {
/*
The following platform references should be included automatically and are listed here for reference only.
implementation enforcedPlatform("org.apereo.cas:cas-server-support-bom:${project.'cas.version'}")
implementation platform(org.springframework.boot.gradle.plugin.SpringBootPlugin.BOM_COORDINATES)
*/
implementation "org.apereo.cas:cas-server-support-account-mgmt"
}
Configuration
The following settings and properties are available from the CAS configuration catalog:
cas.account-registration.core.crypto.encryption.key=
The encryption key is a JWT whose length is defined by the encryption key size setting.
|
cas.account-registration.core.crypto.signing.key=
The signing key is a JWT whose length is defined by the signing key size setting.
|
cas.account-registration.core.registration-properties.location=
The location of the resource. Resources can be URLS, or files found either on the classpath or outside somewhere in the file system. In the event the configured resource is a Groovy script, specially if the script set to reload on changes, you may need to adjust the total number ofinotify instances. On Linux, you may need to add the following line to /etc/sysctl.conf : fs.inotify.max_user_instances = 256 . You can check the current value via cat /proc/sys/fs/inotify/max_user_instances .
|
cas.account-registration.core.password-policy-pattern=^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[$@$!%*?&])[A-Za-z\d$@$!%*?&]{8,10}
A String value representing password policy regex pattern. Minimum 8 and Maximum 10 characters at least 1 Uppercase Alphabet, 1 Lowercase Alphabet, 1 Number and 1 Special Character.
|
cas.account-registration.core.crypto.alg=
The signing/encryption algorithm to use.
|
cas.account-registration.core.crypto.enabled=true
Whether crypto operations are enabled.
|
cas.account-registration.core.crypto.encryption.key-size=512
The encryption key size.
|
cas.account-registration.core.crypto.signing.key-size=512
The signing key size.
|
cas.account-registration.core.crypto.strategy-type=ENCRYPT_AND_SIGN
Control the cipher sequence of operations. The accepted values are:
|
cas.account-registration.core.expiration=PT1M
How long in minutes should the registration link remain valid. This settings supports the
|
cas.account-registration.core.include-client-ip-address=true
Whether the registration token will contain the client IP Address.
|
cas.account-registration.core.include-server-ip-address=true
Whether the registration token will contain the server IP Address.
|
cas.account-registration.core.security-questions-count=2
Whether account registration should present security questions and how many, to complete the registration process.
|