Hi Isura,

Any detail about the error response with relevant error codes ?



*Harsha Thirimanna*
Associate Tech Lead; WSO2, Inc.; http://wso2.com
* <http://www.apache.org/>*
*email: **[email protected]* <[email protected]>* cell: +94 71 5186770 *
*twitter: **http://twitter.com/ <http://twitter.com/afkham_azeez>*
*harshathirimannlinked-in: **http:
<http://lk.linkedin.com/in/afkhamazeez>**//www.linkedin.com/pub/harsha-thirimanna/10/ab8/122
<http://www.linkedin.com/pub/harsha-thirimanna/10/ab8/122>*

*Lean . Enterprise . Middleware*


On Thu, Jun 9, 2016 at 10:46 AM, Dilan Udara Ariyaratne <[email protected]>
wrote:

> Hi Isura,
>
> According to the REST API Guidelines that we have defined across all the
> products,
> following suggestions can be made regarding the resource paths that you
> have proposed.
>
> [1] Base-path "accountrecovery" has two words in it and they can be
> separated by a dash, i.e. as "account-recovery".
> [2] It seems that path "rest" does not make any sense as a resource, so it
> can be removed.
> [3] Also, all the underscore signs included in processiong-functions like
> "reset_password" and resource-paths like "security_questions_response"
> could be replaced with a dash (-).
>
> Regards,
> Dilan.
>
> *Dilan U. Ariyaratne*
> Senior Software Engineer
> WSO2 Inc. <http://wso2.com/>
> Mobile: +94766405580 <%2B94766405580>
> lean . enterprise . middleware
>
>
> On Wed, Jun 8, 2016 at 1:02 PM, Isura Karunaratne <[email protected]> wrote:
>
>> Identity Management Recovery API improvements.
>>
>> In Identity Server 5.3.0, we are going to implement Identity Management
>> recovery APIs as rest resources. In current implementations of IS5.0.0,
>> IS5.1.0 we have soap APIs for recovery scenarios. [1].
>>
>> Captcha validation is coupled with recovery flows in existing soap API
>> implementation and we have improved Java API to decouple to the captcha
>> validation from recovery flows in new implementations. [4]
>> Existing soap APIs.Recover with Notification [2]
>>
>>    -
>>
>>    getCaptcha() -­ Generates a captcha.
>>    -
>>
>>    verifyUser() -­ Validates the captcha answer and username and returns
>>    a new key.
>>    -
>>
>>    sendRecoveryNotification() -­ Send an email notification with a
>>    confirmation code to the user. Need to provide the key from the previous
>>    call.
>>    -
>>
>>    getCaptcha() ­- Generates a captcha when the user clicks on the URL.
>>    -
>>
>>    verifyConfirmationCode() -­ Validates the captcha answer and
>>    confirmation code. This returns a key.
>>    -
>>
>>    updatePassword -­ Updates the password in the system. Need to provide
>>    the key from the previous call, new password and returns the status of the
>>    update, true or false.
>>
>> Recover with Secret Questions[3]
>>
>>    -
>>
>>    getCaptcha() ­- Generates a captcha.
>>    -
>>
>>    verifyUser() ­- Validates the captcha answer and username and returns
>>    a new key.
>>    -
>>
>>    getUserChallengeQuestionIds() ­- Retrieve the claim URI IDs specified
>>    for the user with the generated key. Need to provide the key from the
>>    previous call.
>>    -
>>
>>    getUserChallengeQuestion() ­- Retrieve the user’s challenge question
>>    for the specified claim URI ID from the previous call. Need to provide the
>>    key from the previous call.
>>    -
>>
>>    verifyUserChallengeAnswer() ­- Validates the answer and confirmation
>>    code for the specified question. Need to provide the key from the previous
>>    call.
>>    -
>>
>>    updatePassword() ­- Updates the password in the system. Need to
>>    provide the key from the previous call, the new password and return the
>>    status of the update, i.e. true or false.
>>
>>
>>
>>
>>
>> New APIs
>> Recover with Notification
>>
>>    -
>>
>>    sendRecoveryNotification() : validate user and returns a new key
>>    through a notification.
>>    -
>>
>>    updatePassword() : Updates the password in the system. Need to
>>    provide the key from notification, new password
>>
>>
>> Recover with Secret Questions
>>
>>    -
>>
>>    intiateUserChallengeQuestion(); ­validate user and returns a question
>>    to answer with a secret code
>>    -
>>
>>    verifyUserChallengeAnswer(); validate secret code and answer for the
>>    question in previous step. Return a new question with new secret until
>>    minimum number of questions are answered.
>>    -
>>
>>    updatePassword(); Updates the password in the system. Need to provide
>>    the key from notification, new password
>>
>>
>>
>> New APIs for Multiple Questions at once
>>
>>    -
>>
>>    getAllChallegeQuestions(); validate user and returns all questions to
>>    answer with a secret code
>>    -
>>
>>    validateAllChallengeAnswers(); validate code and all answers and
>>    return a code if success
>>    -
>>
>>    updatePassword();Updates the password in the system. Need to provide
>>    the key from notification, new password
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>> [1] https://docs.wso2.com/display/IS510/Password+Recovery
>>
>> [2]
>> https://docs.wso2.com/display/IS510/Password+Recovery#PasswordRecovery-Recoveryusingnotifications
>>
>> [3]
>> https://docs.wso2.com/display/IS510/Password+Recovery#PasswordRecovery-Recoveryusingchallengequestions
>>
>> [4] [Architecture] Decouple capcha validation from Recovery flows
>>
>>
>>
>> Sample Requests
>> Send Email Notification
>>
>> POST accountrecovery/rest/notification/notify
>> <https://localhost:9443/accountrecovery/rest/notification/notify>
>>
>>
>> Request Body
>>
>>  {
>>
>> "userName": "testuser",
>>
>> "tenantDomain": "carbon.super",
>>
>>              "userStoreDomain": "PRIMARY"
>>
>> }
>>
>>
>> If notifications are internally managed,
>>
>> Response Body
>>
>> HTTP 200
>>
>>
>> If notifications are externally managed,
>>
>> Response Body
>>
>> {
>>
>> "user": {
>>
>> "userName": "testuser",
>>
>> "userStoreDomain": "PRIMARY",
>>
>> "tenantDomain": "carbon.super"
>>
>> },
>>
>> "key": "f75da810-3478-47f4-80e5-c37556392015"
>>
>> }
>>
>>
>>
>>
>>
>> *Reset Password.*
>>
>> PUT /accountrecovery/rest/notification/reset_password
>>
>> Request Body
>>
>> {
>>
>> "user": {
>>
>> "userName": "test",
>>
>> "userStoreDomain": "PRIMARY",
>>
>> "tenantDomain": "carbon.super"
>>
>> },
>>
>> "code": "e4d6041b-2ea7-4dc1-9ae2-b8e9686e1d12",
>>
>> "password": "12345"
>>
>> }
>>
>>
>> Response Body
>>
>> HTTP 200
>>
>>
>>
>>
>>
>> Initiate User Challenge Question
>>
>> PUT /accountrecovery/rest/questions/initiate
>>
>>
>>
>> Request Body
>>
>> {
>>
>> "userName": "admin",
>>
>> "userStoreDomain": "PRIMARY",
>>
>> "tenantDomain": "carbon.super"
>>
>> }
>>
>>
>>
>> Response body
>>
>> {
>>
>>    "question": "City where you were born ?",
>>
>>    "questionSetId": "http://wso2.org/claims/challengeQuestion1";,
>>
>>    "code": "786f63b6-d0b7-4bd7-991e-12e97e4602e3",
>>
>>    "status": "INCOMPLETE"
>>
>> }
>>
>>
>>
>>
>> Validate User Challenge Question,
>>
>> POST /accountrecovery/security_questions_response
>>
>> Request Body
>>
>> {
>>
>> "user": {
>>
>> "userName": "admin",
>>
>> "userStoreDomain": "PRIMARY",
>>
>> "tenantDomain": "carbon.super"
>>
>> },
>>
>> "key": "12454125-15145-45554155",
>>
>> "code": "fbc8e9e0-e6fd-4a75-8502-f03e5836930f",
>>
>> "answer": "colombo"
>>
>> }
>>
>>
>>
>> Response body
>>
>> {
>>
>>    "question": "what is your favourite food ?",
>>
>>    "questionSetId": "http://wso2.org/claims/challengeQuestion2";,
>>
>>    "code": "786f63b6-d0b7-4bd7-991e-12e97e4602e3",
>>
>>    "status": "INCOMPLETE"
>>
>> }
>>
>> This should be repeated until status becomes complete.
>>
>>
>>
>> Response body
>>
>> {
>>
>>   “status” : “COMPLETE”,
>>
>>   “key” : "3225d2dd-f5fa-44ca-9aa1-d1c32748b569"
>>
>> }
>>
>>
>>
>> Thanks
>> Isura
>>
>>
>> --
>> Isura Dilhara Karunaratne
>> Senior Software Engineer
>>
>> Mob +94 772 254 810
>>
>>
>> _______________________________________________
>> Architecture mailing list
>> [email protected]
>> https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture
>>
>>
>
> _______________________________________________
> Architecture mailing list
> [email protected]
> https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture
>
>
_______________________________________________
Architecture mailing list
[email protected]
https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture

Reply via email to