Primer inicio de sesión para un usuario usando API KEY

Hola a todos:

Estoy usando Discourse como backend, pero no hay ninguna intervención de la interfaz de usuario de Discourse. Para usar la API, estoy utilizando el nombre de usuario y una clave de API global para realizar la solicitud.
Me encuentro con un problema: cada vez que se crea un nuevo usuario en mi proveedor de OIDC (Keycloak), no puedo usar su nombre de usuario en mi API. Discourse no reconoce al usuario.
Intenté depurar esto y me di cuenta de que Discourse también crea un usuario cuando un usuario inicia sesión correctamente desde OIDC por primera vez y muestra un banner en la interfaz de usuario que indica que la cuenta se creó correctamente. A partir de entonces, puedo usar el nombre de usuario para acceder a la API.
Quiero automatizar este flujo sin necesidad de la interfaz de usuario. Básicamente, quiero decir que si se crea un usuario en mi plataforma OIDC, entonces, sin usar la interfaz de usuario, debería poder usar su nombre de usuario y la clave de API global para realizar mi solicitud. Estoy abierto a acceder a API adicionales.

Cualquier pista será útil.
¡Gracias de antemano!

Como sospechas, necesitarás crear el usuario con la API. Sync DiscourseConnect user data with the sync_sso route podría ayudar. Si no, consulta Search results for 'create user api' - Discourse Meta, o quizás la buena y vieja Ingeniería inversa de la API de Discourse

3 Me gusta

DiscourseConnect no funcionará en mi caso, porque en un momento dado solo se puede usar OIDC o Discourse Connect. Intenté hacer ingeniería inversa de la API de Discourse.
La URL es:- https://smallidea.co/u

Tiene el siguiente payload:-
{
name: testuser
email: test@xxxxxx.com
username:discoursetestuser3
password_confirmation:2290e67e2f59d6b9a0edbc735cef0e1d
challenge:598d41761746371257a4c89d5ac61260
timezone:Asia/Calcutta
}

No puedo entender los parámetros “password_confirmation” y “challenge”. ¿Alguna idea de qué es esto?
Ambos parámetros son dinámicos y no hay un valor fijo que pueda pasar. Es aleatorio.