Я использую версию 3.4.3 Keycloak. Когда я деактивирую пользователя, используя PUT
и установив для флага enabled
значение false, он больше не может войти в систему. Это именно то, что я хочу. Однако вместо кода состояния HTTP 403 (доступ запрещен) или 401 (неавторизован), который я ожидаю получить при попытке входа в систему деактивированного пользователя, вместо этого я получаю 400 (неверный запрос). Когда я повторно активирую пользователя, используя PUT
и установив флаг enabled
обратно на true
, он может снова войти в систему.
Вот мой curl
скрипт:
token=`cat .file_containing_admins_token`
curl -v -X PUT -H "Content-Type: application/json" -H "Authorization: Bearer $token" --data "{\"enabled\": false}" "http://localhost:8080/auth/admin/realms/[my-realm]/users/[user-id-to-block]"
Документация довольно лаконична в отношении кодов состояния.
Существует также вторая, более конкретная конечная точка API PUT /{realm}/users/{id}/disable-credential-types
. Но там я пропускаю повторное включение учетных данных, что является требованием для моего варианта использования.