Discourse와 Keycloak 통합

디스코스를 keycloak와 통합하고 싶습니다. 어떻게 진행해야 할지 조언을 구합니다. 감사합니다.

감사합니다.
Ndacyayisenga

Keycloak은 OpenID Connect를 지원하므로, OpenID Connect Authentication Plugin을 사용하여 통합할 수 있습니다.

몇 년 전에 Discourse 인증 API를 사용하여 Keycloak에 로그인할 수 있도록 Keycloak 플러그인(아이디 프로바이더)을 작성한 적이 있습니다. 최근 Discourse SSO의 변경 사항과 호환되는지 확실하지는 않지만, 해당 부분이 필요하시다면 언젠가 공개할 수 있을 것 같습니다.

@ldywicki 기꺼이 보고 싶습니다

안녕하세요,
Discourse Meta를 여러 번 검색해 보았지만, 찾고 있는 정보를 찾을 수 없었습니다(기존 토론들은 답변이 없거나 내용이 오래된 것 같습니다).

저희는 사용자 관리를 위해 Keycloak를 이미 실행하고 있으며(예: 자체 애플리케이션 사용자 인증에 사용) 이를 활용하고 있습니다.
이제 Discourse 인스턴스를 설정했으며, Keycloak를 SSO 제공자로 사용하고자 합니다.

이 경우 DiscourseConnect를 사용하는 것이 올바른 방법인가요? 아니면 openid 또는 SAML 플러그인이 필요(또는 추가로 필요)한 건가요?
Keycloak 측에서 구성해야 할 사항은 무엇인가요? 표준 구성만으로 충분한지, 아니면 플러그인이 필요한지 궁금합니다.

미리 감사드립니다!
Gunnar

안녕하세요 @gschmid, Discourse Meta에 오신 것을 환영합니다 :wave:

이 경우 가장 좋은 방법은 특정 필요에 따라 OAuth2 Basic 또는 Discourse SAML 플러그인을 사용하는 것입니다.

관련 링크를 아래에 남겨드립니다:

필요하신 경우 기꺼이 도움을 드리겠습니다 :grinning_face_with_smiling_eyes:

알렉산더님,

빠른 답변 감사합니다.

그럼 DiscourseConnect가 전혀 필요 없는 건가요? 그러면 이 도구의 목적은 무엇인가요?

인증 서버(또는 API 또는 유사한 것)에는 Discourse Connect와 호환되는 프로세스가 있어야 합니다(상세 설명은 여기 참고).

Keycloak에는 이 경우 네이티브 지원이 없으므로, 위에서 언급된 플러그인 중 하나를 사용하는 것이 더 권장됩니다.

DiscourseConnect 문서는 알고 있지만, 조각들을 하나로 이어 붙이는 데 실패했습니다. 그냥 궁금해서 여쭤보는 건데, 어떤 인증 서버가 이 기능을 기본적으로 지원하나요?

어쨌든, 이제 추천된 플러그인을 설정해서 실행해 보겠습니다. 다시 한번 감사합니다.

좋아요, 작업의 첫 부분이 완료되었습니다 - GitHub - Code-House/keycloak-discourse: Integration between Keycloak and Discorse.. using Keycloak APIs to do so. · GitHub.
이 저장소에는 “Discourse Connect” 프로토콜을 사용하여 Keycloak이 Discourse에서 신원 정보를 가져오도록 하는 데 필요한 코드가 포함되어 있습니다.

Keycloak는 범용 신원 제공자(identity provider)로, 외부 애플리케이션 인증을 위한 OpenID Connect 호환 엔드포인트를 제공합니다. discourse-openid-connect 플러그인을 사용하여 Keycloak를 Discourse와 연결할 수 있습니다.

Discourse Connect는 다소 다릅니다. 제 이해로는 사용자 관리를 Keycloak에 완전히 위임할 수 있게 해주는데, 이는 초기 단계에서 필요하지 않을 수 있습니다.

참고로, 저는 Discourse를 신원 제공자로 사용하여 Keycloak가 작동하도록 하는 통합을 만든 적이 있습니다. 제가 본 바로는 Keycloak에서 Discourse Connect 호환 엔드포인트를 구현하는 것이 가능해 보이지만, 그것은 또 다른 이야기입니다. :wink:

Discourse Connect는 조금 다릅니다. 제 이해로는 사용자 관리를 Keycloak에 완전히 위임할 수 있어, 처음에는 필요하지 않을 수 있습니다.

사실 저는 바로 이런 기능이 필요한데, 이에 대한 직관적인 솔루션이 없는 것 같아 OIDC 플러그인으로 시도해 보고 있습니다.

Keycloak에 대해 이러한 유형의 통합을 제공할 수 있습니다. keycloak 내부의 다른 API(로그인 프로토콜)를 확장해야 합니다. 7월에 완료하도록 상기시켜 주세요. :wink:

안녕하세요 @ldywicki, Keycloak Identity provider 모듈의 최신 버전을 컴파일했는데, 최신 Discourse와 최신 Keycloak 버전 모두와 호환되지 않는 것 같습니다. 이 부분에 대해 업데이트를 제공해 주실 수 있을까요? :blush:
수고 많으셨습니다!

Danir 씨,

이 추가 항목을 업데이트할 수는 있지만, 시간이 좀 필요합니다. 이사 직전에 연락을 주셨기 때문에, 최신 Keycloak의 상태를 확인하고 테스트하는 데 시간이 좀 걸릴 것 같습니다.

@ldywicki
Keycloak Spinup은 바닐라 Keycloak와 무엇이 다른가요?

저는 Docker를 통해 원래의 Keycloak를 설치했습니다.
콘솔에 오류 메시지가 전혀 없는데, Keycloak로 인증을 마친 후 로그인 화면에서 끝없이 회전하는 로딩 표시기가 나타납니다.

원인을 찾을 수가 없습니다. 도움을 주십시오.