Discourse를 두 개의 OIDC 제공업체와 연결하는 것이 어떻게 가능한가요?

이 플러그인을 사용하여 GitLab과 Microsoft(Azure)를 연결하는 데 성공했습니다. 참고로: Azure AD 서비스의 경우, secret ID나 값이 아닌 "Application Client ID"를 client id로 사용해야 합니다.

GitLab 그리고 Azure처럼 두 개의 OIDC 제공자를 Discourse에 연결하는 방법은 무엇일까요?

수정: GitLab 로그인을 OAuth2로 작동시키도록 설정했으므로, 제 질문은 이제 더 "이론적"인 것이 되었습니다.

플러그인을 포크하고 이름을 변경하여 두 번 구성할 수 있도록 해야 할 것 같습니다. 또는 포크를 한 뒤 그 서비스 중 하나에 대해 하드코딩하는 방법도 있을 수 있습니다.

Open ID Connect 플러그인이 코어에 병합되고 해당 git 저장소가 아카이브 처리되었기 때문에 포킹이 더 이상 적절하지 않다는 점을 이해하고 있습니다.

그러나 저는 두 개의 애플리케이션(테넌트당 하나의 애플리케이션)을 등록하고 싶습니다. 현재 Open ID Connect 플러그인 하에서 한 테넌트의 애플리케이션 등록이 정상적으로 작동하고 있습니다. 두 번째 애플리케이션의 등록 ID, 시크릿, 디스커버리 URL을 아래 설정에 입력해도 될까요?

이 제목에 대한 해결책은 이전 게시물에 있다고 생각합니다. 두 개의 OIDC를 사용하는 것이 아니라, 하나의 OIDC와 하나의 Microsoft_auth를 사용하시면 됩니다.

microsoft_auth_email_verified는 Microsoft Auth가 이미 구성된 OIDC 플로우처럼 동작하도록 만들지 않습니다. 제 이해로는, 이 설정은 Microsoft에서 제공된 이메일을 기본적으로 검증/신뢰할 수 있는 것으로 취급하도록 Discourse에 지시할 뿐이며, 해당 이메일이 실제로 검증된 경우 계정 연결이나 중복 계정 생성을 방지하는 데 도움이 될 수 있습니다:

버튼 텍스트의 경우, OIDC는 확실히 js.login.oidc 텍스트 네임스페이스에 속합니다:

그리고 Microsoft Auth는 oidc 대신 microsoft_office365 번역 네임스페이스를 사용하는 것으로 보입니다. 예를 들어, 이 버그 리포트에는 en.login.microsoft_office365.name이 언급되어 있습니다:

따라서 Microsoft Auth에 해당하는 텍스트 키 네임스페이스는 oidc가 아닌 microsoft_office365라고 생각합니다.