API 키를 사용하는 사용자의 첫 로그인

안녕하세요,

저는 Discourse를 백엔드 전용으로 사용하고 있으며, Discourse UI는 전혀 사용하지 않습니다. API를 호출할 때 사용자 이름과 전역 API 키를 사용하고 있습니다.

현재 한 가지 문제가 있습니다. 제 OIDC 제공자(Keycloak)에 새 사용자가 생성되면, 해당 사용자의 사용자 이름을 API 요청에 사용할 수 없습니다. Discourse가 사용자를 인식하지 못합니다.

디버깅을 해본 결과, 사용자가 OIDC를 통해 처음 로그인에 성공하면 Discourse가 사용자를 생성하고, UI에 "계정이 성공적으로 생성되었습니다"라는 배너가 표시되는 것을 확인했습니다. 이 과정이 완료된 후에야 비로소 사용자 이름을 사용해 API를 호출할 수 있었습니다.

UI를 사용하지 않고 이 흐름을 자동화하고 싶습니다. 즉, OIDC 플랫폼에 사용자가 생성되면 UI를 거치지 않고 해당 사용자의 사용자 이름과 전역 API 키를 사용해 API 요청을 보낼 수 있도록 하고 싶습니다. 추가 API 호출도 괜찮습니다.

도움이 될 만한 단서가 있다면 알려주시면 감사하겠습니다.

감사합니다!

추측하신 대로, API를 통해 사용자를 생성해야 합니다. Sync DiscourseConnect user data with the sync_sso route 이 도움이 될 수 있습니다. 도움이 되지 않는다면 Search results for 'create user api' - Discourse Meta 를 참고하거나, 아니면 예전부터 존재해 온 Discourse API 역공학 문서를 확인해 보세요.

제 경우 DiscourseConnect는 작동하지 않습니다. 왜냐하면 특정 시점에 OIDC와 Discourse Connect 중 하나만 사용할 수 있기 때문입니다. 저는 discourse API를 역공학으로 분석해 보았습니다.
URL은 다음과 같습니다: https://smallidea.co/u

해당 페이로드에는 다음이 포함되어 있습니다:
{
name: testuser
email: test@xxxxxx.com
username:discoursetestuser3
password_confirmation:2290e67e2f59d6b9a0edbc735cef0e1d
challenge:598d41761746371257a4c89d5ac61260
timezone:Asia/Calcutta
}

"password_confirmation"과 “challenge” 매개변수를 이해하지 못하고 있습니다. 이것이 무엇인지 아는 분 계신가요?
이 두 매개변수 모두 동적이며, 전달할 수 있는 고정된 값이 없습니다. 이는 랜덤 값입니다.