Пароли#
Изменение пароля#
POST https://login.company.com/blitz/api/v3/users/{instanceId}/pswd
Изменение пароля. Чтобы узнать значение instanceId для пользователя, необходимо предварительно вызвать методом GET сервис получения атрибутов пользователя.
Необходимые разрешения: blitz_api_usec_chg или blitz_api_sys_usec_chg.
При смене пароля в пользовательском режиме необходимо передать заголовки с IP‑адресом пользователя и
User-Agent.В сценарии самостоятельной смены пользователем пароля в Личном кабинете возможен сброс сессий пользователя. При этом может быть нежелательно, чтобы произошел выход пользователя с текущего устройства/браузера. Для того, чтобы указать Blitz Identity Provider, что определенное устройство необходимо сохранить по результатам успешной смены пароля (не делать с него логаут), необходимо в вызов сервиса смены пароля передать от приложения заголовок
IB-CI-UA-IDс идентификатором текущего устройства пользователя.Совет
Идентификатор текущего устройства пользователя можно получить из маркера идентификации.
Для отправки письма на английском языке укажите заголовок
Accept-Language: en(актуально только для версииv3).
current– текущий пароль пользователя (только при смене пароля в пользовательском режиме – обязательно передается).
Примечание
Если у пользователя нет пароля, то есть значение свойства hasNoPassword равняется true, параметр current не нужен.
password– новый пароль пользователя (необязательный параметр). Если параметр не задан, то Blitz Identity Provider самостоятельно сгенерирует новый пароль.resetSessions– в случае если параметр не указан или указан в значенииtrue, то при смене пароля будут аннулированы все сессии пользователя и удалены запомненные устройства. Если необходимо только сменить пароль без сброса сессий, то необходимо явно указать параметр в значенииfalse.sendPswdToAttr– имя атрибута с телефонным номером для отправки пользователю пароля (необязательный параметр). Если параметр задан, то пользователю на телефон из указанного атрибута будет отправлена SMS с паролем.
В случае успешного вызова Blitz Identity Provider -
HTTP 204 No Content.Если смена пароля завершилась ошибкой - сообщение об ошибке:
HTTP 401 Unauthorizedв случае ошибки контроля доступа - неправильный маркер доступа или неправильный текущий пароль пользователя.HTTP 400 Bad Request- новый пароль не удовлетворяет требованиям парольной политики.
Примеры
POST /blitz/api/v3/users/Mzg…J1/pswd HTTP/1.1
Content-Type: application/json
X-Forwarded-For: 200.200.100.100
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_5)…
Authorization: Bearer wzb…Tw
IB-CI-UA-ID: {SHA256}rVWFmwgRKWeW_flH4CA4yuW7OhKZ32Da94m0kzwWsVs
{
"current": "QWErty123",
"password": "P@$$w0rd",
"resetSessions": false
}
POST /blitz/api/v3/users/Mzg…J1/pswd HTTP/1.1
Content-Type: application/json
Authorization: Bearer qwa…Ez
{
"password": "P@$$w0rd",
"resetSessions": true
}
POST /blitz/api/v3/users/Mzg…J1/pswd HTTP/1.1
Content-Type: application/json
Authorization: Bearer qwa…Ez
{
"sendPswdToAttr": "phone_number"
}
curl -v --location --request POST 'https://demo.identityblitz.com/blitz/api/v3/users/YnVpbHQtaW46a2dhdnJpbG92QGlkYmxpdHoucnU6MTcxMDU5ODgyODY3MjU0ODg2NA/pswd' \
--header 'Content-Type: application/json' \
--header 'Accept-Language: en' \
--header 'Authorization: Bearer ...' \
--data-raw '{"password": "nN2L98Nu1234"}'
{
"type": "security_error",
"error": "invalid_credential",
"desc": "Wrong subject identifier or current password"
}
{
"type": "security_error",
"error": "bad_access_token",
"desc": "BEARER_AUTH: CRID does not match"
}
{
"type": "input_error",
"error": "wrong_values",
"errors": [
{
"type": "input_error",
"error": "password_policy_violated",
"desc": "Password's length must be greater than 6",
"pos": "password",
"params": {
"rule": "to_short",
"low": 6
}
}
]
}
{
"type": "input_error",
"error": "password_policy_violated",
"desc": "Failed to update password\n",
"pos": "password",
"params": {
"rule": "id_store"
}
}
{
"type": "input_error",
"error": "wrong_values",
"errors": [
{
"type": "input_error",
"error": "password_policy_violated",
"desc": "Password doesn't match enough symbols groups",
"pos": "password",
"params": {
"rule": "not_enough_groups",
"no_matched_groups": [
{
"desc": "password.policy.desc.digits",
"min_number_symbols": 1
},
{
"desc": "password.policy.desc.capital",
"min_number_symbols": 1
},
{
"desc": "password.policy.desc.special",
"min_number_symbols": 1
}
]
}
}
]
}
{
"type": "input_error",
"error": "wrong_values",
"errors": [
{
"type": "input_error",
"error": "password_policy_violated",
"desc": "Password found in previous used ones",
"pos": "password",
"params": {
"rule": "in_password_history"
}
}
]
}
{
"type": "input_error",
"error": "wrong_values",
"errors": [
{
"type": "input_error",
"error": "password_policy_violated",
"desc": "A new password can't be the same as the current",
"pos": "password",
"params": {
"rule": "eq_current"
}
}
]
}
{
"type": "input_error",
"error": "wrong_values",
"errors": [
{
"type": "input_error",
"error": "password_policy_violated",
"desc": "There are not enough new characters in a new password",
"pos": "password",
"params": {
"rule": "not_enough_new_chars",
"minNew": 5
}
}
]
}
{
"type": "input_error",
"error": "wrong_values",
"errors": [
{
"type": "input_error",
"error": "password_policy_violated",
"desc": "Password contains a word from the stop dictionary",
"pos": "password",
"params": {
"rule": "in_stop_dic",
"stop_word": "qwerty"
}
}
]
}
{
"type": "input_error",
"error": "wrong_values",
"errors": [
{
"type": "input_error",
"error": "password_policy_violated",
"desc": "Password found in a password dictionary",
"pos": "password",
"params": {
"rule": "in_password_dic"
}
}
]
}
{
"type": "input_error",
"error": "wrong_values",
"errors": [
{
"type": "input_error",
"error": "password_policy_violated",
"desc": "Password is too young",
"pos": "password",
"params": {
"rule": "too_young",
"minAgeInSec": 86400
}
}
]
}
{
"type": "input_error",
"error": "wrong_values",
"errors": [
{
"type": "input_error",
"error": "wrong_value",
"desc": "Wrong mobile attribute 'phone_number_wrong'",
"pos": "sendPswdToAttr"
}
]
}
{
"type": "input_error",
"error": "wrong_values",
"errors": [
{
"type": "input_error",
"error": "wrong_value",
"desc": "User not contains mobile attribute 'phone_number'",
"pos": "sendPswdToAttr"
}
]
}
Изменение пароля ведомого аккаунта#
POST https://login.company.com/blitz/api/v2/users/{subjectId}/password
Изменение пароля ведомой учетной записи пользователя с помощью ведущей учетной записи пользователя. subjectId – идентификатор (sub) ведомой учетной записи.
В запрос должен быть добавлен заголовок с маркером доступа на разрешение с именем blitz_change_password, полученным ведущей учетной записью. Ведущий пользователь может вызвать смену пароля ведомого только в том случае, если ранее ведущему пользователю было дано право на изменение пароля change_password.
Атрибут value со значением нового пароля, которое должно соответствовать требованиям настроенной парольной политики.
При успешной смене пароля - статус
HTTP 200 (OK).При наличии ошибки - описание полученной ошибки.
Пример
POST /blitz/api/v2/users/c574a512-3704-4576-bc3a-3fe28b636e85/password HTTP/1.1
Authorization: Bearer cNwIX…Tg
Content-Type: application/json
{"value":"QWErty1234"}
{
"errors": [
{
"code": "access_denied",
"desc": "Not enough rights: change_password",
"params": {}
}
]
}