|
@@ -246,40 +246,62 @@ |
|
|
}, |
|
|
}, |
|
|
|
|
|
|
|
|
{ |
|
|
{ |
|
|
"comment": "as user, approve email request, still not logged in", |
|
|
|
|
|
|
|
|
"comment": "as user, approve email request, fails without TOTP token", |
|
|
"request": { |
|
|
"request": { |
|
|
"session": "userSession", |
|
|
"session": "userSession", |
|
|
"uri": "auth/approve/{{userInbox.[0].ctx.confirmationToken}}", |
|
|
"uri": "auth/approve/{{userInbox.[0].ctx.confirmationToken}}", |
|
|
"entity": [{"name": "account", "value": "user-multifactor_auth"}] |
|
|
"entity": [{"name": "account", "value": "user-multifactor_auth"}] |
|
|
}, |
|
|
}, |
|
|
"response": { |
|
|
"response": { |
|
|
"store": "remainingApprovals", |
|
|
|
|
|
|
|
|
"status": 422, |
|
|
|
|
|
"check": [ {"condition": "json.has('err.totpToken.required')"} ] |
|
|
|
|
|
} |
|
|
|
|
|
}, |
|
|
|
|
|
|
|
|
|
|
|
{ |
|
|
|
|
|
"comment": "as user, approve email request with TOTP token, now logged in", |
|
|
|
|
|
"request": { |
|
|
|
|
|
"session": "userSession", |
|
|
|
|
|
"uri": "auth/approve/{{userInbox.[0].ctx.confirmationToken}}", |
|
|
|
|
|
"entity": [ |
|
|
|
|
|
{"name": "account", "value": "user-multifactor_auth"}, |
|
|
|
|
|
{"name": "totpToken", "value": "{{authenticator_token authenticator.totpKey}}"} |
|
|
|
|
|
] |
|
|
|
|
|
}, |
|
|
|
|
|
"response": { |
|
|
|
|
|
"sessionName": "userSession", |
|
|
|
|
|
"session": "token" |
|
|
|
|
|
} |
|
|
|
|
|
}, |
|
|
|
|
|
|
|
|
|
|
|
{ |
|
|
|
|
|
"comment": "remove email from contacts, fails because TOTP token is required", |
|
|
|
|
|
"request": { |
|
|
|
|
|
"uri": "users/{{userAccount.name}}/policy/contacts/email/user-multifactor_auth@example.com", |
|
|
|
|
|
"method": "delete" |
|
|
|
|
|
}, |
|
|
|
|
|
"response": { |
|
|
|
|
|
"status": 422, |
|
|
"check": [ |
|
|
"check": [ |
|
|
{"condition": "json.getUuid() == null"}, |
|
|
|
|
|
{"condition": "json.getMultifactorAuth() != null"}, |
|
|
|
|
|
{"condition": "json.getMultifactorAuth().length == 1"}, |
|
|
|
|
|
{"condition": "json.getMultifactorAuth()[0].getInfo() == '{\"masked\": true}'"} |
|
|
|
|
|
|
|
|
{"condition": "json.has('err.totpToken.invalid')"} |
|
|
] |
|
|
] |
|
|
} |
|
|
} |
|
|
}, |
|
|
}, |
|
|
|
|
|
|
|
|
{ |
|
|
{ |
|
|
"comment": "approve (1st) authenticator request, logged in", |
|
|
|
|
|
|
|
|
"comment": "send TOTP token", |
|
|
"request": { |
|
|
"request": { |
|
|
"uri": "auth/authenticator", |
|
|
"uri": "auth/authenticator", |
|
|
"entity": { |
|
|
"entity": { |
|
|
"account": "{{userAccount.name}}", |
|
|
"account": "{{userAccount.name}}", |
|
|
"token": "{{authenticator_token authenticator.totpKey}}" |
|
|
|
|
|
|
|
|
"token": "{{authenticator_token authenticator.totpKey}}", |
|
|
|
|
|
"authenticate": true |
|
|
} |
|
|
} |
|
|
}, |
|
|
|
|
|
"response": { |
|
|
|
|
|
"sessionName": "userSession", |
|
|
|
|
|
"session": "token" |
|
|
|
|
|
} |
|
|
} |
|
|
}, |
|
|
}, |
|
|
|
|
|
|
|
|
{ |
|
|
{ |
|
|
"comment": "remove email from contacts", |
|
|
|
|
|
|
|
|
"comment": "remove email from contacts after sending TOTP token, succeeds", |
|
|
"request": { |
|
|
"request": { |
|
|
"uri": "users/{{userAccount.name}}/policy/contacts/email/user-multifactor_auth@example.com", |
|
|
"uri": "users/{{userAccount.name}}/policy/contacts/email/user-multifactor_auth@example.com", |
|
|
"method": "delete" |
|
|
"method": "delete" |
|
@@ -442,28 +464,36 @@ |
|
|
"entity": [{"name": "account", "value": "user-multifactor_auth"}] |
|
|
"entity": [{"name": "account", "value": "user-multifactor_auth"}] |
|
|
}, |
|
|
}, |
|
|
"response": { |
|
|
"response": { |
|
|
"store": "remainingApprovals", |
|
|
|
|
|
"check": [ |
|
|
|
|
|
{"condition": "json.getUuid() == null"}, |
|
|
|
|
|
{"condition": "json.getMultifactorAuth() != null"}, |
|
|
|
|
|
{"condition": "json.getMultifactorAuth().length == 1"}, |
|
|
|
|
|
{"condition": "json.getMultifactorAuth()[0].getInfo() == '{\"masked\": true}'"} |
|
|
|
|
|
|
|
|
"status": 422, |
|
|
|
|
|
"check": [ {"condition": "json.has('err.totpToken.required')"} ] |
|
|
|
|
|
} |
|
|
|
|
|
}, |
|
|
|
|
|
|
|
|
|
|
|
{ |
|
|
|
|
|
"comment": "approve SMS request with TOTP token, logged in", |
|
|
|
|
|
"request": { |
|
|
|
|
|
"session": "userSession", |
|
|
|
|
|
"uri": "auth/approve/{{smsInbox.[0].ctx.confirmationToken}}", |
|
|
|
|
|
"entity": [ |
|
|
|
|
|
{"name": "account", "value": "user-multifactor_auth"}, |
|
|
|
|
|
{"name": "totpToken", "value": "{{authenticator_token authenticator.totpKey}}"} |
|
|
] |
|
|
] |
|
|
|
|
|
}, |
|
|
|
|
|
"response": { |
|
|
|
|
|
"sessionName": "userSession", |
|
|
|
|
|
"session": "token" |
|
|
} |
|
|
} |
|
|
}, |
|
|
}, |
|
|
|
|
|
|
|
|
{ |
|
|
{ |
|
|
"comment": "approve (2nd) authenticator request, logged in", |
|
|
|
|
|
|
|
|
"comment": "send TOTP token prior to removing authenticator", |
|
|
"request": { |
|
|
"request": { |
|
|
"uri": "auth/authenticator", |
|
|
"uri": "auth/authenticator", |
|
|
"entity": { |
|
|
"entity": { |
|
|
"account": "{{userAccount.name}}", |
|
|
"account": "{{userAccount.name}}", |
|
|
"token": "{{authenticator_token authenticator.totpKey}}" |
|
|
|
|
|
|
|
|
"token": "{{authenticator_token authenticator.totpKey}}", |
|
|
|
|
|
"authenticate": true |
|
|
} |
|
|
} |
|
|
}, |
|
|
|
|
|
"response": { |
|
|
|
|
|
"sessionName": "userSession", |
|
|
|
|
|
"session": "token" |
|
|
|
|
|
} |
|
|
} |
|
|
}, |
|
|
}, |
|
|
|
|
|
|
|
|