Я перешел в раздел «Аутентификация» > «Политики» и настроил алгоритм хеширования как argon2. Таким образом, когда я создаю «обычный» пароль, он автоматически хэшируется с argon2.

Я сгенерировал хэш, используя argon2, на платформе argon2.online. Параметры, которые я использовал, были такими же, как и в Keycloak по умолчанию:
- Ввод обычного текста: пароль
- Salt: abcd1234
- Коэффициент параллелизма: 1
- Затраты памяти: 7168
- Итерации: 5
- Длина хэша: 32

Я использую следующий код для создания случайного пользователя и последующего входа в систему:
Код: Выделить всё
import keycloak
import json
from datetime import datetime
password = 'password'
argon2_data = {
'plain_text_input': password,
'salt': 'abcd1234',
'parallelism': 1,
'memory_cost': 7168,
'iterations': 5,
'hash_length': 32,
'hash': '$argon2id$v=19$m=7168,t=5,p=1$YWJjZDEyMzQ$M2pBlbaI2O0icDQslGeP1dTAVUxdnzx7GZr9N1Fdd04',
'version': '1.3',
}
argon2_data['hash_parts'] = argon2_data['hash'].split('$')
def create_user():
ts = datetime.now().strftime("%H%M%S")
username = f"john{ts}"
basic_credentials = {
'type': 'password',
'temporary': False,
'value': password,
}
argon2_credentials = {
'type': 'password',
'temporary': False,
'secretData': json.dumps({
'value': argon2_data['hash_parts'][-1],
'salt': argon2_data['hash_parts'][-2],
}),
'credentialData': json.dumps({
'hashIterations': argon2_data['iterations'],
'algorithm': 'argon2',
'additionalParameters': {
'hashLength': [str(argon2_data['hash_length'])],
'memory': [str(argon2_data['memory_cost'])],
'type': ['id'],
'version': [argon2_data['version']],
'parallelism': [str(argon2_data['parallelism'])],
}
})
}
user_data = {
'attributes': {
'custom_key': 'custom_value'
},
'credentials': [
#basic_credentials,
argon2_credentials,
],
'username': username,
'firstName': 'John',
'lastName': 'Doe',
'email': f'{username}@doe.com.br',
'emailVerified': True,
'enabled': True
}
print(user_data)
keycloak.create_user(user_data)
return user_data
user = create_user()
keycloak.test_login(user['username'], password)
Что я могу делать неправильно?
Подробнее здесь: https://stackoverflow.com/questions/798 ... o-keycloak
Мобильная версия