<?xml version="1.0" encoding="UTF-8"?>
<!--
~ The contents of this file are subject to the terms of the Common Development and
~ Distribution License (the License). You may not use this file except in compliance with the
~ License.
~
~ You can obtain a copy of the License at legal/CDDLv1.0.txt. See the License for the
~ specific language governing permission and limitations under the License.
~
~ When distributing Covered Software, include this CDDL Header Notice in each file and include
~ the License file at legal/CDDLv1.0.txt. If applicable, add the following below the CDDL
~ Header, with the fields enclosed by brackets [] replaced by your own identifying
~ information: "Portions copyright [year] [name of copyright owner]".
~
~ Copyright 2015-2016 ForgeRock AS.
-->
<!DOCTYPE ServicesConfiguration
PUBLIC "=//iPlanet//Service Management Services (SMS) 1.0 DTD//EN"
"jar://com/sun/identity/sm/sms.dtd">
<ServicesConfiguration>
<Service name="selfService" version="1.0">
<Schema
serviceHierarchy="/DSAMEConfig/selfService"
i18nFileName="selfService"
revisionNumber="1"
resourceName="selfService"
i18nKey="self-service-description">
<Organization>
<AttributeSchema name="KeyAliasValidator" type="validator" syntax="string">
<DefaultValues>
<Value>org.forgerock.openam.selfservice.config.KeyAliasValidator</Value>
</DefaultValues>
</AttributeSchema>
<!-- General configuration -->
<AttributeSchema name="selfServiceEncryptionKeyPairAlias"
type="single"
syntax="string"
resourceName="encryptionKeyPairAlias"
i18nKey="encryption.key.pair.alias"
validator="KeyAliasValidator"
order="0">
<ExampleValue>
<Value>selfserviceenctest</Value>
</ExampleValue>
</AttributeSchema>
<AttributeSchema name="selfServiceSigningSecretKeyAlias"
type="single"
syntax="string"
resourceName="signingSecretKeyAlias"
i18nKey="signing.secret.key.alias"
validator="KeyAliasValidator"
order="10">
<ExampleValue>
<Value>selfservicesigntest</Value>
</ExampleValue>
</AttributeSchema>
<AttributeSchema name="selfServiceCaptchaSiteKey"
type="single"
syntax="string"
resourceName="captchaSiteKey"
i18nKey="captcha.site.key"
order="20">
<IsOptional/>
</AttributeSchema>
<AttributeSchema name="selfServiceCaptchaSecretKey"
type="single"
syntax="string"
resourceName="captchaSecretKey"
i18nKey="captcha.secret.key"
order="30">
<IsOptional/>
</AttributeSchema>
<AttributeSchema name="selfServiceCaptchaVerificationUrl"
type="single"
syntax="string"
resourceName="captchaVerificationUrl"
i18nKey="captcha.verification.url"
order="40">
<IsOptional/>
<DefaultValues>
<Value>https://www.google.com/recaptcha/api/siteverify</Value>
</DefaultValues>
</AttributeSchema>
<AttributeSchema name="selfServiceKBAQuestions"
type="list"
syntax="string"
resourceName="kbaQuestions"
i18nKey="kba.questions"
order="50">
<IsOptional/>
<DefaultValues>
<Value>1|en|What is the name of your favourite restaurant?</Value>
<Value>2|en|What was the model of your first car?</Value>
<Value>3|en|What was the name of your childhood pet?</Value>
<Value>4|en|What is your mother's maiden name?</Value>
</DefaultValues>
</AttributeSchema>
<AttributeSchema name="selfServiceMinimumAnswersToDefine"
type="single"
syntax="number_range" rangeStart="0" rangeEnd="30"
resourceName="minimumAnswersToDefine"
i18nKey="minimum.answers.to.define"
order="60">
<IsOptional/>
<DefaultValues>
<Value>1</Value>
</DefaultValues>
</AttributeSchema>
<AttributeSchema name="selfServiceMinimumAnswersToVerify"
type="single"
syntax="number_range" rangeStart="0" rangeEnd="50"
resourceName="minimumAnswersToVerify"
i18nKey="minimum.answers.to.verify"
order="70">
<IsOptional/>
<DefaultValues>
<Value>1</Value>
</DefaultValues>
</AttributeSchema>
<AttributeSchema name="selfServiceValidQueryAttributes"
type="list"
syntax="string"
resourceName="validQueryAttributes"
i18nKey="valid.query.attributes"
order="80">
<IsOptional/>
<DefaultValues>
<Value>uid</Value>
<Value>sn</Value>
<Value>givenName</Value>
<Value>mail</Value>
</DefaultValues>
</AttributeSchema>
<!-- User registration -->
<AttributeSchema name="selfServiceUserRegistrationEnabled"
type="single"
syntax="boolean"
resourceName="userRegistrationEnabled"
i18nKey="user.registration.enabled"
order="90">
<BooleanValues>
<BooleanTrueValue i18nKey="i18nTrue">true</BooleanTrueValue>
<BooleanFalseValue i18nKey="i18nFalse">false</BooleanFalseValue>
</BooleanValues>
<DefaultValues>
<Value>false</Value>
</DefaultValues>
</AttributeSchema>
<AttributeSchema name="selfServiceUserRegistrationCaptchaEnabled"
type="single"
syntax="boolean"
resourceName="userRegistrationCaptchaEnabled"
i18nKey="user.registration.captcha.enabled"
order="100">
<IsOptional/>
<BooleanValues>
<BooleanTrueValue i18nKey="i18nTrue">true</BooleanTrueValue>
<BooleanFalseValue i18nKey="i18nFalse">false</BooleanFalseValue>
</BooleanValues>
<DefaultValues>
<Value>false</Value>
</DefaultValues>
</AttributeSchema>
<AttributeSchema name="selfServiceUserRegistrationEmailVerificationEnabled"
type="single"
syntax="boolean"
resourceName="userRegistrationEmailVerificationEnabled"
i18nKey="user.registration.email.verification.enabled"
order="110">
<IsOptional/>
<BooleanValues>
<BooleanTrueValue i18nKey="i18nTrue">true</BooleanTrueValue>
<BooleanFalseValue i18nKey="i18nFalse">false</BooleanFalseValue>
</BooleanValues>
<DefaultValues>
<Value>true</Value>
</DefaultValues>
</AttributeSchema>
<AttributeSchema name="selfServiceUserRegistrationKbaEnabled"
type="single"
syntax="boolean"
resourceName="userRegistrationKbaEnabled"
i18nKey="user.registration.kba.enabled"
order="120">
<IsOptional/>
<BooleanValues>
<BooleanTrueValue i18nKey="i18nTrue">true</BooleanTrueValue>
<BooleanFalseValue i18nKey="i18nFalse">false</BooleanFalseValue>
</BooleanValues>
<DefaultValues>
<Value>false</Value>
</DefaultValues>
</AttributeSchema>
<AttributeSchema name="selfServiceUserRegistrationTokenTTL"
type="single"
syntax="number_range" rangeStart="0" rangeEnd="2147483647"
resourceName="userRegistrationTokenTTL"
i18nKey="user.registration.token.ttl"
order="130">
<IsOptional/>
<DefaultValues>
<Value>900</Value>
</DefaultValues>
</AttributeSchema>
<AttributeSchema name="selfServiceUserRegistrationEmailSubject"
type="list"
syntax="string"
resourceName="userRegistrationEmailSubject"
i18nKey="user.registration.email.subject"
order="140">
<IsOptional/>
<DefaultValues>
<Value>en|Registration email</Value>
</DefaultValues>
</AttributeSchema>
<AttributeSchema name="selfServiceUserRegistrationEmailBody"
type="list"
syntax="string"
resourceName="userRegistrationEmailBody"
i18nKey="user.registration.email.body"
order="150">
<IsOptional/>
<DefaultValues>
<Value>en|&lt;h2&gt;Click on this &lt;a href=&quot;%link%&quot;&gt;link&lt;/a&gt; to register.&lt;/h2&gt;</Value>
</DefaultValues>
</AttributeSchema>
<AttributeSchema name="selfServiceUserRegistrationValidUserAttributes"
type="list"
syntax="string"
resourceName="userRegistrationValidUserAttributes"
i18nKey="user.registration.valid.user.attributes"
order="160">
<IsOptional/>
<DefaultValues>
<Value>mail</Value>
<Value>inetUserStatus</Value>
<Value>sn</Value>
<Value>username</Value>
<Value>userPassword</Value>
<Value>kbaInfo</Value>
<Value>givenName</Value>
</DefaultValues>
</AttributeSchema>
<AttributeSchema name="selfServiceUserRegistrationDestination"
type="single_choice"
syntax="string"
resourceName="userRegisteredDestination"
i18nKey="user.registration.destination"
order="161">
<ChoiceValues>
<ChoiceValue i18nKey="user.registration.destination.default">default</ChoiceValue>
<ChoiceValue i18nKey="user.registration.destination.login">login</ChoiceValue>
<ChoiceValue i18nKey="user.registration.destination.auto-login">auto-login</ChoiceValue>
</ChoiceValues>
<DefaultValues>
<Value>default</Value>
</DefaultValues>
</AttributeSchema>
<!-- Forgotten password -->
<AttributeSchema name="selfServiceForgottenPasswordEnabled"
type="single"
syntax="boolean"
resourceName="forgottenPasswordEnabled"
i18nKey="forgotten.password.enabled"
order="170">
<BooleanValues>
<BooleanTrueValue i18nKey="i18nTrue">true</BooleanTrueValue>
<BooleanFalseValue i18nKey="i18nFalse">false</BooleanFalseValue>
</BooleanValues>
<DefaultValues>
<Value>false</Value>
</DefaultValues>
</AttributeSchema>
<AttributeSchema name="selfServiceForgottenPasswordCaptchaEnabled"
type="single"
syntax="boolean"
resourceName="forgottenPasswordCaptchaEnabled"
i18nKey="forgotten.password.captcha.enabled"
order="180">
<IsOptional/>
<BooleanValues>
<BooleanTrueValue i18nKey="i18nTrue">true</BooleanTrueValue>
<BooleanFalseValue i18nKey="i18nFalse">false</BooleanFalseValue>
</BooleanValues>
<DefaultValues>
<Value>false</Value>
</DefaultValues>
</AttributeSchema>
<AttributeSchema name="selfServiceForgottenPasswordEmailVerificationEnabled"
type="single"
syntax="boolean"
resourceName="forgottenPasswordEmailVerificationEnabled"
i18nKey="forgotten.password.email.verification.enabled"
order="190">
<IsOptional/>
<BooleanValues>
<BooleanTrueValue i18nKey="i18nTrue">true</BooleanTrueValue>
<BooleanFalseValue i18nKey="i18nFalse">false</BooleanFalseValue>
</BooleanValues>
<DefaultValues>
<Value>true</Value>
</DefaultValues>
</AttributeSchema>
<AttributeSchema name="selfServiceForgottenPasswordKbaEnabled"
type="single"
syntax="boolean"
resourceName="forgottenPasswordKbaEnabled"
i18nKey="forgotten.password.kba.enabled"
order="200">
<IsOptional/>
<BooleanValues>
<BooleanTrueValue i18nKey="i18nTrue">true</BooleanTrueValue>
<BooleanFalseValue i18nKey="i18nFalse">false</BooleanFalseValue>
</BooleanValues>
<DefaultValues>
<Value>false</Value>
</DefaultValues>
</AttributeSchema>
<AttributeSchema name="selfServiceForgottenPasswordTokenTTL"
type="single"
syntax="number_range" rangeStart="0" rangeEnd="2147483647"
resourceName="forgottenPasswordTokenTTL"
i18nKey="forgotten.password.token.ttl"
order="210">
<IsOptional/>
<DefaultValues>
<Value>900</Value>
</DefaultValues>
</AttributeSchema>
<AttributeSchema name="selfServiceForgottenPasswordEmailSubject"
type="list"
syntax="string"
resourceName="forgottenPasswordEmailSubject"
i18nKey="forgotten.password.email.subject"
order="220">
<IsOptional/>
<DefaultValues>
<Value>en|Forgotten password email</Value>
</DefaultValues>
</AttributeSchema>
<AttributeSchema name="selfServiceForgottenPasswordEmailBody"
type="list"
syntax="string"
resourceName="forgottenPasswordEmailBody"
i18nKey="forgotten.password.email.body"
order="230">
<IsOptional/>
<DefaultValues>
<Value>en|&lt;h2&gt;Click on this &lt;a href=&quot;%link%&quot;&gt;link&lt;/a&gt; to reset your password.&lt;/h2&gt;</Value>
</DefaultValues>
</AttributeSchema>
<!-- Forgotten username -->
<AttributeSchema name="selfServiceForgottenUsernameEnabled"
type="single"
syntax="boolean"
resourceName="forgottenUsernameEnabled"
i18nKey="forgotten.username.enabled"
order="240">
<BooleanValues>
<BooleanTrueValue i18nKey="i18nTrue">true</BooleanTrueValue>
<BooleanFalseValue i18nKey="i18nFalse">false</BooleanFalseValue>
</BooleanValues>
<DefaultValues>
<Value>false</Value>
</DefaultValues>
</AttributeSchema>
<AttributeSchema name="selfServiceForgottenUsernameCaptchaEnabled"
type="single"
syntax="boolean"
resourceName="forgottenUsernameCaptchaEnabled"
i18nKey="forgotten.username.captcha.enabled"
order="250">
<IsOptional/>
<BooleanValues>
<BooleanTrueValue i18nKey="i18nTrue">true</BooleanTrueValue>
<BooleanFalseValue i18nKey="i18nFalse">false</BooleanFalseValue>
</BooleanValues>
<DefaultValues>
<Value>false</Value>
</DefaultValues>
</AttributeSchema>
<AttributeSchema name="selfServiceForgottenUsernameKbaEnabled"
type="single"
syntax="boolean"
resourceName="forgottenUsernameKbaEnabled"
i18nKey="forgotten.username.kba.enabled"
order="260">
<IsOptional/>
<BooleanValues>
<BooleanTrueValue i18nKey="i18nTrue">true</BooleanTrueValue>
<BooleanFalseValue i18nKey="i18nFalse">false</BooleanFalseValue>
</BooleanValues>
<DefaultValues>
<Value>false</Value>
</DefaultValues>
</AttributeSchema>
<AttributeSchema name="selfServiceForgottenUsernameEmailUsernameEnabled"
type="single"
syntax="boolean"
resourceName="forgottenUsernameEmailUsernameEnabled"
i18nKey="forgotten.username.email.username.enabled"
order="270">
<IsOptional/>
<BooleanValues>
<BooleanTrueValue i18nKey="i18nTrue">true</BooleanTrueValue>
<BooleanFalseValue i18nKey="i18nFalse">false</BooleanFalseValue>
</BooleanValues>
<DefaultValues>
<Value>true</Value>
</DefaultValues>
</AttributeSchema>
<AttributeSchema name="selfServiceForgottenUsernameShowUsernameEnabled"
type="single"
syntax="boolean"
resourceName="forgottenUsernameShowUsernameEnabled"
i18nKey="forgotten.username.show.username.enabled"
order="280">
<IsOptional/>
<BooleanValues>
<BooleanTrueValue i18nKey="i18nTrue">true</BooleanTrueValue>
<BooleanFalseValue i18nKey="i18nFalse">false</BooleanFalseValue>
</BooleanValues>
<DefaultValues>
<Value>false</Value>
</DefaultValues>
</AttributeSchema>
<AttributeSchema name="selfServiceForgottenUsernameTokenTTL"
type="single"
syntax="number_range" rangeStart="0" rangeEnd="2147483647"
resourceName="forgottenUsernameTokenTTL"
i18nKey="forgotten.username.token.ttl"
order="290">
<IsOptional/>
<DefaultValues>
<Value>900</Value>
</DefaultValues>
</AttributeSchema>
<AttributeSchema name="selfServiceForgottenUsernameEmailSubject"
type="list"
syntax="string"
resourceName="forgottenUsernameEmailSubject"
i18nKey="forgotten.username.email.subject"
order="300">
<IsOptional/>
<DefaultValues>
<Value>en|Forgotten username email</Value>
</DefaultValues>
</AttributeSchema>
<AttributeSchema name="selfServiceForgottenUsernameEmailBody"
type="list"
syntax="string"
resourceName="forgottenUsernameEmailBody"
i18nKey="forgotten.username.email.body"
order="310">
<IsOptional/>
<DefaultValues>
<Value>en|&lt;h2&gt;Your username is &lt;span style=&quot;color:blue&quot;&gt;%username%&lt;/span&gt;.&lt;/h2&gt;</Value>
</DefaultValues>
</AttributeSchema>
<!-- Profile management -->
<AttributeSchema name="selfServiceProfileProtectedUserAttributes"
type="list"
syntax="string"
resourceName="profileProtectedUserAttributes"
i18nKey="profile.protected.user.attributes"
order="320">
<IsOptional/>
</AttributeSchema>
<!-- Advanced configuration -->
<AttributeSchema name="selfServiceUserRegistrationConfirmationUrl"
type="single"
syntax="url"
resourceName="userRegistrationConfirmationUrl"
i18nKey="user.registration.confirmation.url"
order="330">
<IsOptional/>
<DefaultValues>
<Value>@SERVER_PROTO@://@SERVER_HOST@:@SERVER_PORT@/@SERVER_URI@/XUI/?realm=${realm}#register/</Value>
</DefaultValues>
</AttributeSchema>
<AttributeSchema name="selfServiceForgottenPasswordConfirmationUrl"
type="single"
syntax="url"
resourceName="forgottenPasswordConfirmationUrl"
i18nKey="forgotten.password.confirmation.url"
order="340">
<IsOptional/>
<DefaultValues>
<Value>@SERVER_PROTO@://@SERVER_HOST@:@SERVER_PORT@/@SERVER_URI@/XUI/?realm=${realm}#passwordReset/</Value>
</DefaultValues>
</AttributeSchema>
<AttributeSchema name="selfServiceUserRegistrationServiceConfigClass"
type="single"
syntax="string"
resourceName="userRegistrationServiceConfigClass"
i18nKey="user.registration.service.config.class"
order="350">
<IsOptional/>
<DefaultValues>
<Value>org.forgerock.openam.selfservice.config.flows.UserRegistrationConfigProvider</Value>
</DefaultValues>
</AttributeSchema>
<AttributeSchema name="selfServiceForgottenPasswordServiceConfigClass"
type="single"
syntax="string"
resourceName="forgottenPasswordServiceConfigClass"
i18nKey="forgotten.password.service.config.class"
order="360">
<IsOptional/>
<DefaultValues>
<Value>org.forgerock.openam.selfservice.config.flows.ForgottenPasswordConfigProvider</Value>
</DefaultValues>
</AttributeSchema>
<AttributeSchema name="selfServiceForgottenUsernameServiceConfigClass"
type="single"
syntax="string"
resourceName="forgottenUsernameServiceConfigClass"
i18nKey="forgotten.username.service.config.class"
order="370">
<IsOptional/>
<DefaultValues>
<Value>org.forgerock.openam.selfservice.config.flows.ForgottenUsernameConfigProvider</Value>
</DefaultValues>
</AttributeSchema>
</Organization>
</Schema>
</Service>
</ServicesConfiguration>