Adicionando SSO após muitos usuários já terem se cadastrado -- como migrá-los?

Sim! Consegui criar um script que percorre todos os usuários do Discourse e os importa com o hash de sua senha em nossa plataforma.

Em breve, poderemos permitir que qualquer pessoa que tenha um fórum Discourse adicione também Eventos, Videoconferência, Mídia e mais, com o Discourse residindo na aba “Discuss”. Você pode ver o resultado em https://intercoin.app

Basicamente, transformando qualquer instalação do Discourse em uma rede social moderna, à la Facebook. Trabalhamos por anos nesses recursos e agora queremos integrá-los de perto com o Discourse e o WordPress também. Assim, as pessoas podem combinar WordPress, Discourse e Qbix e auto-hospedar toda a sua comunidade.

Mas tenho duas questões restantes.

  1. No Qbix, nós fazemos o hash da senha no cliente, pelo menos com sha1(senha + userId) antes de enviá-la ao servidor. Mesmo quando é https. Fazemos isso para que o servidor ou qualquer MITM NUNCA tenha a senha, para reutilizá-la em vários sites. Mas o Discourse simplesmente envia a senha para o servidor. Então, tivemos que desativar esse hash no lado do cliente. É possível fazer algumas iterações de hash_pbkdf2 no lado do cliente e o restante no lado do servidor? Tentei e não parece alinhar:
php > $password = 'abc';
php > $salt = 'def';
php > $a = hash_pbkdf2('sha256', $password, $salt, 64000, 64, false);
php > $b = hash_pbkdf2('sha256', $password, $salt, 1, 64, false);
php > $c = hash_pbkdf2('sha256', $password, $b, 63999, 64, false);
php > echo $a;
9d7a21ae4113bea06d81e0c486f45ab778bb739f19f7a6a305d8401918a9d8a1
php > echo $c;
f42af6861ebcf8560b027276e0d02ad46502636045486057d81be7c4c4aa630e
  1. Seria possível usar o Discourse apenas como um Provedor de SSO, em vez de usar nosso site como provedor de SSO? Então, os hosts de fóruns Discourse seriam ainda mais propensos a expandi-lo com recursos do Qbix, já que o login permaneceria exatamente o mesmo, e do lado do Discourse. Facebook, Google e o que mais. Existe alguma documentação sobre que tipo de informação o Discourse Connect retorna como Provedor de SSO para nosso site consumidor? Ele inclui coisas como a foto que podemos baixar, primeiro nome, último nome e nome de usuário, pelo menos?