Пароли#
Изменение пароля#
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
– текущий пароль пользователя (только при смене пароля в пользовательском режиме – обязательно передается).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": {}
}
]
}