systemBehaviorConfigurations:
antiPhishingCodeEnabled: trueaccountManagement:
referralSystemEnabled: true
multifactorAuthenticationreferralProperty:
multifactorAuthSystemEnabledreferralCodeLength: true8
defaultLanguageISOCode referralStartBonus: "en"0
limitForInputInvalidOneTimeToken registrationBonus: 550
defaultCountryISOCodemultifactorAuthentication: "UA"
userTypeToRegister: "regular_user"
multifactorAuthSystemEnabled: true
passwordRestrictions:
passwordSimilaritypasswordValidationStrategy:
enableduppercaseRequired: true
minPasswordSimilarityValuespecialSymbolsRequired: 0.15true
passwordSimilarity:
passwordsForSimilarityCount: 5 #min-1
limitForPasswordHistoryenabled: true
enabledminPasswordSimilarityValue: false0.15
maxPasswordHistoryCountpasswordsForSimilarityCount: 5
limitForInputInvalidPassword: 5
permissionRestrictionregistration:
permissionRestrictionDurationAfterRecoverySecurityInMillisemailRegistrationEnabled: true
phoneRegistrationEnabled: 172800000true
permissionRestrictionDurationAfterChangeSecurityInMillisregistrationViaInviteLinkEnabled: 86400000true
permissionRestrictionDurationAfterPasswordOperationInMillisregistrationWithVerificationEnabled: 86400000true
userAvatarPropertyoauth2:
widthSizefacebook: 400true
heightSizegoogle: 400true
accountManagement:
referralPropertydefaultLanguageISOCode: "en"
defaultCountryISOCode: "UA"
referralCodeLength: 8limitForInputInvalidOneTimeToken: 5
limitForPasswordHistory:
referralStartBonusenabled: 0false
registrationBonusmaxPasswordHistoryCount: 505
registrationuserAvatarProperty:
emailRegistrationEnabledwidthSize: true400
phoneRegistrationEnabledheightSize: true400
antiPhishingCodeEnabled -> Add anti registrationViaInviteLinkEnabled:phishing true
code to profile api registrationViaFacebook:to true
user who have email. registrationViaGoogle:User true
can add anti phishing registrationWithVerificationEnabled:code true
for invite:
inviteNewUser: true
accountManagement is our main section. Here are the configurations that affect the behavior of our project
referralSystemEnabled
...
multifactorAuthentication
This config is responsible for setting MFA (multi-factor authentication).
We have three different MFA steps.
- phone
- google Authenticator.
If this value -> true, MFA is enabled in our system. The user must introduce tokens to those endpoints that require tokens from users. All tokens you can find in
profile-api/service/src/main/java/com/knubisoft/service/enums/OneTimeTokenType.java
The user must request the tokens they have enabled for MFA. emailToken, PhoneNumberToken, googleAuthenticatorToken.
When registering, if we have MFA enabled, the system will prompt him to enable MFA step depending on the userKey under which he registers. If he registers using email, he will be prompted to enable emailMfaStep. The same goes for the phone.
Importantly! If we have MFA disabled, we disable a certain part of the endpoints that depend on this setting.
This is to obtain tokens for the login operation and restore security.
In this case, we will have a one-step login. Also, the user will not be able to restore security for the phone, e-mail, and Google Authenticator.
Endpoints:
- PUT /api/v1/account/password → Change user password
- PUT /api/v1/account/mobile → Endpoint for changing phone number
- POST /api/v1/account/mobile Endpoint for binding phone number to account
- PUT /api/v1/account/email → Endpoint for changing email
- POST /api/v1/account/emailEndpoint → for binding email to account
- PUT /api/v1/account/antiPhishingCode → Change anti-phishing code
- POST /api/v1/account/antiPhishingCode → Add anti-phishing code
- POST /api/v1/account/mobile/removing → Endpoint to remove phone number from account
- POST /api/v1/account/googleAuthenticator → Endpoint for binding Google Authenticator to account
- POST /api/v1/account/googleAuthenticator/removing → Endpoint to remove Google Authenticator from account
- POST /api/v1/account/email/removing → Endpoint to remove email from account
- POST /api/v1/account/password/recovery/verification → Password recovery verification
- POST /api/v1/login/verification → Endpoint to complete login
- POST /api/v1/account/security/recovery/verification → Verify that security recovery operation can be performed
- defaultLanguageISOCode
Displaying information in a specific language
limitForInputInvalidOneTimeToken
limitForInputInvalidPassword
...
his account.
endpoint that work from this config:
POST endpoint for add or change anti phishing code → /api/v1/account/antiPhishingCode
POST endpoint for send token for add or change anti phishing code → /api/v1/token/antiPhishingCode/changing
referralSystemEnabled -> Referral system in ProfileApi that awards bonuses to users if someone used their referral code during registration.
Used when registering a user
multifactorAuthSystemEnabled -> Multi factor authentication during login flow.
this configuration enables multi factor authentication.
multi factor authentication is presented for:
- email
- phone number
- google authenticator.
The user can enable the selection of the option for multi factor authentication during authorization(login). In this case, user must request a token from our system for authentication.
endpoint that work from this config:
POST endpoint for send tokens for MFA authorization → /api/v1/token/login
POST endpoint for complete MFA authorization → /api/v1/login/verification
GET endpoint for get enabled MFA steps for user → /api/v1/account/details/mfa
POST endpoint for adding google authenticator to user account → /api/v1/account/googleAuthenticator
POST endpoint for removing google authenticator from user account → /api/v1/account/googleAuthenticator/removing
POST endpoint for enabling email MFA → /api/v1/account/email/mfa/enabling
POST endpoint for enabling phone number MFA → /api/v1/account/mobile/mfa/enabling
POST endpoint for disabling email MFA → /api/v1/account/email/mfa/disabling
POST endpoint for disabling phone number MFA → /api/v1/account/mobile/mfa/disabling
POST endpoint for sending a token to disabling MFA step (EMAIL, PHONE, GOOGLE) → /api/v1/token/mfa/disabling
POST endpoint for sending a token to a new key during user key recovery → /api/v1/token/userKeys/recovery/newKey
POST endpoint for user key recovery verification → /api/v1/token/userKeys/recovery/verification
passwordValidationStrategy
Configuration for password validation.
uppercaseRequired: Upper case for password validation. Password must Contains at least 1 Upper case
specialSymbolsRequired: Special symbols for password validation. Password must Contains at least 1 Special symbols (!@ # $ % ^ & * ( ) _ - + = )
defaultCountryISOCode
If we do not have Geolite included, then by default all users will have Location of Ukraine
userTypeToRegister
Type of user during registration.
passwordSimilarity
passwordSimilarity. This setting is responsible for password similarity. If this configuration is enabled, then when entering a new password/password recovery, it takes the number of previous passwords set using passwordsForSimilarityCount and checks them for similarity.
Compare two passwords for similarity.
* If similarityValue more than 0.15 (85%) passwords are similar.
* If similarityValue less or equal 0.15 passwords are different.
limitForPasswordHistory
maxPasswordHistoryCount: 5
This setting controls how many recent passwords will be stored.
userAvatarProperty
Avatar size(height and weight).
referralProperty:
referralCodeLength: 8 -> Referral code length
referralStartBonus: 0 -> Starting value of bonuses.
registrationBonus: 50 -> Bonus when registering with a referral code.
registration:
emailRegistrationEnabled: true -> Pattern. Registration by e-mail only
phoneRegistrationEnabled: true -> Pattern. Registration by phone only.
registrationViaInviteLinkEnabled: true -> Registration is only an invitation from another user. Always email.
registrationViaFacebook: true
registrationViaGoogle: true
registrationWithVerificationEnabled: true -> Standard registration.
invite:
inviteNewUser: true -> Access for an authorized user to create invitations for new user registration.
deviceManagement:
enabled: true
If this configuration is enabled, the device from which he registered is added to the user device white list. If the user logs in through another device, a message about the new device will be sent to him.
Endpoints that depend on this setting.
@DELETE("/api/v1/account/devices/{deviceId}")
deleteDevice
@GET("/api/v1/account/devices")
getAllUserDevices
...