Миграция пользователей drupal для аутентификации в firebase - PullRequest
0 голосов
/ 17 июня 2019

Я пытаюсь перенести пользователей из Drupal 8 в аутентификацию firebase.

Я пытался следовать инструкциям на https://firebase.google.com/docs/auth/admin/import-users#import_users_with_md5_sha_and_pbkdf_hashed_passwords.

Пользователи успешно импортируют, но пароль не работает, когда я пытаюсь войти в систему. После обращения к коду Drupal у меня возникает ощущение, что механизм хеширования sha512, предоставляемый firebase, не выполняет те же действия, что и drupal делает, чтобы определить хэш пароля.

Данные в базе данных drupal для одного пользователя (это данные dev, а не реальный пользователь) пароль: $ S $ EF // ORKHHZKG9L4UEUUNycm0v5HatfjQxkxbKn19BiYMsPxi3u68

Прочитав код друпала, я определил следующее

$ S $ = SHA512

"E" = 16 раундов

"F // ORKH" = соль

"HZKG9L4UEUUNycm0v5HatfjQxkxbKn19BiYMsPxi3u68" = хэш

Это было взято отсюда: https://api.drupal.org/api/drupal/core%21lib%21Drupal%21Core%21Password%21PhpassHashedPassword.php/class/PhpassHashedPassword/8.7.x

Соответствующий код Go для импорта:

  users := []*auth.UserToImport{
    (&auth.UserToImport{}).
    UID("00048ebbb178d47f674f48485205235c").
    Email("CPIZFTPX@mailinator.com").
    PasswordHash([]byte("HZKG9L4UEUUNycm0v5HatfjQxkxbKn19BiYMsPxi3u68")).
    PasswordSalt([]byte("F//ORKH")),
  }

  h := hash.SHA512{
    Rounds: 16,
  }

  result, err := client.ImportUsers(context.Background(), users, auth.WithHash(h))

Итак ... учитывая все вышесказанное, я думаю, проблема в том, что код drupal усекает строку, которая фактически хранится в базе данных, до 55 символов. Вы можете увидеть это в последней строке метода crypt в коде drupal (URL вставлен выше).

Кто-нибудь успешно перенес пользователей Drupal 8 в Firebase? Если так, я хотел бы знать, какой шаг я пропускаю. Если нет, то какое-то подтверждение моих находок поможет мне в здравом уме.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...