테스트 시스템(3.6.0.beta2-latest)에서 Discourse_id를 활성화하려고 하면 이 메시지가 표시됩니다:
enable_discourse_id: 이 설정을 활성화하기 전에 Discourse ID 자격 증명('discourse_id_client_id' 및 'discourse_id_client_secret')을 구성해야 합니다.
여기서는 OIDC를 위해 로컬 Oauth 서버(keycloak)를 사용하고 있습니다. 두 방식이 서로 간섭을 일으키는 건 아닌지 궁금합니다.
pmusaraj
(Penar Musaraj)
10월 10, 2025, 6:46오후
2
OIDC와 충돌하지는 않을 것으로 생각하지만, 인스턴스가 인터넷에서 접근 불가능하다면 ID 등록이 작동하지 않습니다. Discourse ID ID 제공자는 등록 프로세스를 시작하는 Discourse 인스턴스에 대해 검증 메커니즘을 갖추고 있습니다.
테스트 인스턴스는 forum2.netzwissen.de에서 온라인으로 제공됩니다.
Tealk
10월 17, 2025, 3:25오후
4
두 인스턴스에서 동일한 메시지를 확인했으며, 두 인스턴드 모두 다른 OAuth 연결이 설정되어 있지 않습니다.
pmusaraj
(Penar Musaraj)
10월 17, 2025, 5:10오후
5
이 내용을 별도의 토픽으로 옮겼습니다… 인스턴스에서 /logs에 오류가 표시되는지 확인해 보셨나요? 등록 과정에서 내부적으로 무엇이 작동하지 않는지에 대한 추가적인 세부 정보가 그곳에 출력되어야 합니다.
기술적인 측면에서 좀 더 이해하고 싶습니다.
제 인스턴스에서는 외부 ID 제공자(Keycloak 26)와 함께 OIDC 인증을 사용하고 있습니다. Discourse ID는 매우 유사해 보이며, 단순히 Discourse.org가 호스팅하는 다른 IDP 서버일 뿐입니다. 그리고 오류 메시지(클라이언트 ID 및 시크릿 누락)도 전형적인 OAuth 플로우를 연상시킵니다. 이는 Discourse ID가 추가 IDP 인증 경로로 활성화된다는 뜻인가요? 제 사용 사례에 유용하려면 그렇게 되어야 하니까요. ???
Tealk
10월 17, 2025, 9:36오후
7
이것 하나만, 하지만 비교적 규칙적으로 발생해서 이 주제와는 무관합니다.
Message (2 copies reported)
Sidekiq is consuming too much memory (using: 503.02M) for ‘rpg-foren-app’, restarting
Backtrace
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activesupport-8.0.2.1/lib/active_support/broadcast_logger.rb:130:in block in warn' /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activesupport-8.0.2.1/lib/active_support/broadcast_logger.rb:231:in block in dispatch’
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activesupport-8.0.2.1/lib/active_support/broadcast_logger.rb:231:in each' /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activesupport-8.0.2.1/lib/active_support/broadcast_logger.rb:231:in dispatch’
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activesupport-8.0.2.1/lib/active_support/broadcast_logger.rb:130:in warn' /var/www/discourse/lib/demon/sidekiq.rb:59:in block in rss_memory_check’
/var/www/discourse/lib/demon/sidekiq.rb:53:in each' /var/www/discourse/lib/demon/sidekiq.rb:53:in rss_memory_check’
config/unicorn.conf.rb:132:in `block (2 levels) in reload
’
pmusaraj
(Penar Musaraj)
10월 20, 2025, 1:45오후
8
네, 맞습니다. Discourse ID는 다른 IDP입니다.
@Tealk sidekiq 오류는 무관합니다. 인스턴스의 커밋 해시를 공유해 주시겠어요?
Tealk
10월 20, 2025, 2:11오후
9
네, 여기 있습니다: 3.5.1 (c96aeda334)
좋아요. 그렇다면 공개 액세스 워크플로우의 경우 IDP에서 클라이언트 ID가 필요하고, 비공개 액세스 워크플로우의 경우 클라이언트 ID 및 클라이언트 시크릿이 필요합니다. 또 다른 옵션은 Discourse ID를 로컬 IDP의 외부 아이덴티티 브로커로 추가하는 것입니다. 두 가지 방식 모두 조금 더 정보가 필요합니다 …
pmusaraj
(Penar Musaraj)
10월 20, 2025, 3:47오후
11
네, 각 Discourse 인스턴스는 (내부적으로) 클라이언트 ID와 시크릿을 등록하고 설정합니다.
지금 당신의 인스턴스를 보니 http/https 오류가 발생합니다. ID가 작동하려면 사이트가 https로 제공되어야 합니다. 이것이 아마도 당신의 문제일 것입니다.
@Tealk 사이트가 https에서도 제대로 작동하는지 확인해 주세요.
Tealk
10월 20, 2025, 4:46오후
12
무엇을 개선할 수 있을지 모르겠습니다:
https://rpg-foren.com , https://forum.fedimins.net
기능을 활성화하려고 할 때 콘솔 출력:
XHRPUT
https://rpg-foren.com/admin/site_settings/enable_discourse_connect
[HTTP/2 422 86ms]
PUT
https://rpg-foren.com/admin/site_settings/enable_discourse_connect
Status
422
VersionHTTP/2
Transferred713 B (133 B size)
Referrer Policystrict-origin-when-cross-origin
DNS ResolutionSystem
content-type
application/json; charset=utf-8
date
Mon, 20 Oct 2025 16:47:48 GMT
referrer-policy
strict-origin-when-cross-origin
server
nginx
set-cookie
__profilin=p%3Dt%2Ca%3D2b952b1a24003bab45885b2f0abb5118; path=/; secure; HttpOnly; SameSite=Lax
vary
Accept
x-content-type-options
nosniff
x-discourse-route
admin/site_settings/update
x-discourse-username
Tealk
X-Firefox-Spdy
h2
x-frame-options
SAMEORIGIN
x-permitted-cross-domain-policies
none
x-request-id
88adc2fd-5819-43ba-a25c-c1535e6327b0
x-runtime
0.062926
x-xss-protection
0
Accept
*/*
Accept-Encoding
gzip, deflate, br, zstd
Accept-Language
en-US,en;q=0.5
Connection
keep-alive
Content-Length
29
Content-Type
application/x-www-form-urlencoded; charset=UTF-8
Cookie
_t=XuxyDzVA7lmCVSWxjtAAIW%2FwtC6o755siiDMJCwYXt82sKKXgBhQ3XT%2Bv4qY3Zq9Uhm8tgno959kheQuuslCmZmcqFYo1OeNPpJ9hzAkGBnYzzE1p2JB%2Fu8koGRGk21rMt4KkVE4Kid5aA3MwD8Dxdq3Yz9QYwOwmhsqLuFwzAeZVEIHq5M8Vc0YSCZBcWVDT%2FCfO4tXYar%2FmbTbcwLfM%2BnPuO%2F1C%2BOTMAGcn4sZD1vbO%2BRQn0c97DsQkQ%2B19L3csmzoo73ukkKJaIffKdYeAHFHyTIrhOjZbx0gCmHTxyoOUBEZdWRIBA%3D%3D--%2FGRmW%2FeNXPA2phGJ--x%2B6TQc3f4xd4701z6jk5xg%3D%3D; forced_color_mode=auto; _forum_session=juHIw0FO20X1VyNph%2BOFP4iLJHI9eejVQ6lnEKrnLj48q%2BAXWAo%2FRkjqzMqyaJHc3%2BMPW8asNhmYDYWD7I96tO8qLKUxBXEMl64Wa%2BBYFR5q0lWZL9ojHBnoJ18AQ%2BioiJIluwTfHdTikpLScj%2FLLhstWolVA5FCy7dly%2Fu5GNFIiqsfWDBZASUFClW4BKIS4AIX391GbuMCJT4yeftyGKCq%2FnGWYMSd1dPwVF4UK1YFFkA8vpWBCMSDAYivPvb4IYllod%2B3AirPX3KISYsN6p23qHwW%2Bb3KQ7F7ckuxjUSpivaLZAnw6txMlXlmYuQ6lrr6n6qY25ydFteHL064jh%2Fk%2FxBxtY6HkVyoJcth3h089lcAhagtnVSqQRfH8CAd3Ib1BRgOenJHIiRmLtDlyIk9Ixn3IR8l%2BfOwcW7T1yPAUA%3D%3D--DUchcA0kjxsQ2uDR--U3hXxkDHRaVSKCpqpJt%2FAw%3D%3D; __profilin=p%3Dt%2Ca%3D2b952b1a24003bab45885b2f0abb5118
Discourse-Logged-In
true
Discourse-Present
true
Host
rpg-foren.com
Origin
https://rpg-foren.com
Referer
https://rpg-foren.com/admin/config/login-and-authentication
Sec-Fetch-Dest
empty
Sec-Fetch-Mode
cors
Sec-Fetch-Site
same-origin
TE
trailers
User-Agent
Mozilla/5.0 (X11; Linux x86_64; rv:144.0) Gecko/20100101 Firefox/144.0
X-CSRF-Token
06G-4_PiC_1EPpfr3_C8mWopZKLQrkKfaTVUzSF1fUfi22a5GAoo1CIkHNLF0RdelEI7ehqcj6NY2I8YGe9IfA
X-Requested-With
XMLHttpRequest
순수 Docker 배포이며, 서버에는 프록시나 기타 설정이 없습니다.
Moin
10월 20, 2025, 5:01오후
13
Discourse ID는 이미 안정 버전(stable branch)을 사용하는 포럼에서 작동하나요? 8월 출시 후에 추가된 것으로 알고 있었습니다.
pmusaraj
(Penar Musaraj)
10월 20, 2025, 5:59오후
14
아, 맞습니다. @Tealk 님이 stable 채널을 사용 중이시라면, Discourse ID가 사용 가능해질 때까지 다음 안정판 릴리스를 기다려야 합니다.
또한 DiscourseConnect 는 별개의 기능임을 유의해 주세요.
Tealk
10월 20, 2025, 6:13오후
15
그렇다면 새 기능 페이지가 좀 혼란스럽네요. 특정 기능이 어떤 버전부터 포함되는지 추가할 수 있을까요?
pmusaraj
(Penar Musaraj)
10월 20, 2025, 6:26오후
16
좋은 지적입니다. 이제 What’s New 피드가 안정판(stable)이 아닌 인스턴스에 대해서만 이 항목을 포함하도록 업데이트했습니다(또한 latest에 Discourse ID를 활성화하는 커밋이 있는 경우에만 포함됩니다). What’s New 피드를 새로고침하시면, 안정판 인스턴스에서 이 항목이 더 이상 표시되지 않을 것입니다.
Tealk
10월 20, 2025, 6:36오후
17
네, 이제 뉴스를 더 이상 볼 수 없어요
설정(Settings)에 이미 해당 항목이 있는데, 구현되기 전에 설정이 표시되어야 하나요?
pmusaraj
(Penar Musaraj)
10월 20, 2025, 6:43오후
18
enable_discourse_id 사이트 설정은 사용자에게 존재하지 않아야 합니다. (enable_discourse_connect와 혼동하지 마세요. 이는 별개의 설정입니다.)
Tealk
10월 20, 2025, 6:57오후
19
아, 'connect’였네요. 검색 결과가 나를 오해하게 만들었군요.
이제 인스턴스를 살펴보니 http/https 오류가 발생하고 있습니다. ID가 작동하려면 사이트가 https로 구성되어야 합니다. 이것이 아마도 문제의 원인일 것입니다.
… 흥미롭지만, 그 이유를 이해하지 못하겠습니다. 아마도 개념적 차이가 있는 것 같습니다: Discourse 컨테이너는 SSL 가속기 뒤에 위치해 있으며, https를 통해서만 액세스할 수 있습니다. 하지만 이것은 “외부 ”에서 “내부”로 들어오는 표준 연결에 대한 것입니다. OAuth 사용 사례에서는 Discourse 컨테이너가 “내부 ”에서 “외부”에 있는 IDP로 연결을 시작합니다. Discourse ID로 이 연결을 구성하고 “https”로 강제할 수 있는 옵션을 찾지 못하겠습니다.
자체 IDP를 사용하여 OAuth 설정에 사용되는 고전적인 OIDC 설정과 비교해 보면, 그곳에는 “OpenID Connect discovery document” 설정이 있습니다.
https://....realms/[realm-name]/.well-known/openid-configuration
https 연결 누락으로 인한 문제를 피하려면 Discourse ID에도 이와 유사한 것이 필요하다고 생각합니다. P.S. 제 테스트 인스턴스는 3.6.0.beta2-latest 버전이며, Commits · discourse/discourse · GitHub 입니다.