Примеры запросов к API для разблокировки пользователя
Получение токена
Запрос:
curl --location 'http://localhost:8080/realms/demo-realm/protocol/openid-connect/token' \ --header 'Content-Type: application/x-www-form-urlencoded' \ --data-urlencode 'client_id=test_unlocking_client' \ --data-urlencode 'client_secret=7J8QxRMSisLAZz5jktTXhbOvSuNGkBk7' \ --data-urlencode 'grant_type=client_credentials'
Ответ:
{
"access_token": "eyJhbGciOiJSUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICJmRVpJc0t3LV9xSG90X2w0anNYS3FjMUNjWGs4dkp1S2FPdjh1TThvNlZ3In0.eyJleHAiOjE2ODcyNTc3OTMsImlhdCI6MTY4NzI1NzQ5MywianRpIjoiZDU4MTQzNWEtMjE4Ni00ZjdkLWE0MzgtYTNiYmM2NDI0ZGIyIiwiaXNzIjoiaHR0cDovL2xvY2FsaG9zdDo4MDgwL3JlYWxtcy9tZmEtdGVzdC1yZWFsbS1hbGxvdy1uby1tZmEiLCJzdWIiOiI0ZWQzZjczMy0wMDhiLTRhMmQtYmNhNS01Y2YxODk0YjAwNDgiLCJ0eXAiOiJCZWFyZXIiLCJhenAiOiJ0ZXN0X3VubG9ja2luZ19jbGllbnQiLCJhY3IiOiIxIiwiYWxsb3dlZC1vcmlnaW5zIjpbIi8qIl0sInJlYWxtX2FjY2VzcyI6eyJyb2xlcyI6WyJvZmZsaW5lX2FjY2VzcyIsImRlZmF1bHQtcm9sZXMtbWZhLXRlc3QtcmVhbG0tYWxsb3ctbm8tbWZhIiwidW1hX2F1dGhvcml6YXRpb24iXX0sInNjb3BlIjoiZW1haWwgcHJvZmlsZSIsImVtYWlsX3ZlcmlmaWVkIjpmYWxzZSwiY2xpZW50SWQiOiJ0ZXN0X3VubG9ja2luZ19jbGllbnQiLCJjbGllbnRIb3N0IjoiMDowOjA6MDowOjA6MDoxIiwicHJlZmVycmVkX3VzZXJuYW1lIjoic2VydmljZS1hY2NvdW50LXRlc3RfdW5sb2NraW5nX2NsaWVudCIsImNsaWVudEFkZHJlc3MiOiIwOjA6MDowOjA6MDowOjEifQ.gF_aMJHKLrPHuERKec_1t268b8HascT3S-L8wVjVJM0W2QIL_--NCkpE51zl2uzoite5icLUa_kyYvfzqhwhx9FdB678ZXq5-D05oebFFrNmQ4LzIA7I7Gf2ZWQxS3JBHyYlP4OK-1fQPYELVBQsQVxpWqzuB8UqwKVmwI6XkI1MA70CkaK__44_g9OOAgr8cHiv-AnMGGoNkad5R0lG2RZD74vW1nTmSXEIh9zv4wFW0Fw2hj8IsdMfRsTzab7x4eWhnrvvXcaIHRgy3hBUFvL_aVjLggEK9w9OdWQ5e61da98bROUrayfza3rhmbIe0Eu9y1Mk-sb_8FEVHvgpOg",
"expires_in": 300,
"refresh_expires_in": 0,
"token_type": "Bearer",
"not-before-policy": 0,
"scope": "email profile"
}
Получение списка пользователей указанной области безопасности
Предварительное условие: пользователь test_user заблокирован.
Запрос:
curl --location 'http://localhost:8080/admin/realms/demo-realm/users' \
--header 'Authorization: Bearer {your-token}
Ответ:
[
{
"id": "f5219b26-ac73-47ef-8c3c-888c6e0e4c49",
"createdTimestamp": 1687175144017,
"username": "test_user",
"enabled": false,
"totp": false,
"emailVerified": false,
"firstName": "",
"lastName": "",
"disableableCredentialTypes": [],
"requiredActions": [],
"notBefore": 0,
"access": {
"manageGroupMembership": true,
"view": true,
"mapRoles": true,
"impersonate": false,
"manage": true
}
}
]
Разблокировка пользователя
Предварительное условие: пользователь test_user заблокирован.
Запрос:
curl --location --request PUT 'http://localhost:8080/admin/realms/demo-realm/users/f5219b26-ac73-47ef-8c3c-888c6e0e4c49' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your-token}
--data '{
"enabled": true
}'
Ответ: 204 No Content.
Запрос на состояние временной блокировки пользователя
Предварительное условие: пользователь был заблокирован в результате брутфорс-атаки.
Запрос:
curl --location 'http://localhost:8080/admin/realms/demo-realm/attack-detection/brute-force/users/f5219b26-ac73-47ef-8c3c-888c6e0e4c49' \
--header 'Authorization: Bearer {your-token}
Ответ:
{
"numFailures": 3,
"disabled": true,
"lastIPFailure": "0:0:0:0:0:0:0:1",
"lastFailure": 1687175896732
}
В случае разблокировки пользователя данные по атакам пользователя будут сброшены:
{
"numFailures": 0,
"disabled": false,
"lastFailure": 0
}