내 인스턴스에서 Discourse ID가 활성화되지 않습니다

Penar님,

먼저 제 설정에 대한 세부 사항을 명확히 해야 할 것 같습니다. 표준 배포 방식과는 약간 차이가 있습니다.

  • 중앙 로드 밸런서(https://www.haproxy.org/)가 여러 웹 서비스(단순히 Discourse뿐만이 아닙니다)의 SSL 가속기로 역할을 수행합니다. 인터넷에서 이러한 서비스 중 어느 하나로도 HTTPS를 통해서만 접근이 가능합니다. HTTP에서 HTTPS로의 전환은 로드 밸런서 자체에서 수행되며, 참고 자료로 https://www.haproxy.com/blog/redirect-http-to-https-with-haproxy를 확인해 주세요.
  • haproxy는 프론트엔드 요청을 암호화 없이 비공개 네트워크(10.x.x.x)의 백엔드로 전달합니다. 이 트래픽은 도커 호스트의 로컬 nginx에서 종료됩니다.
  • nginx는 요청을 web_only 컨테이너의 HTTP 소켓으로 전달합니다. proxy_pass ``http://unix``:/mnt/data/discourse/shared/web-only/nginx.http.sock
    (web_only.yml과 data.yml을 사용하는 2컨테이너 구성을 사용하고 있습니다. 참고 자료로 templates/web.socketed.template.yml을 확인해 주세요)

모든 HTTPS 암호화가 컨테이너 외부에서 수행되므로 SiteSetting.force_https는 필요하지 않습니다. 이미 Discourse OpenID Connect (OIDC) 플러그인을 기반으로 자체 IDP를 사용하여 OAuth를 적용하고 있습니다. Discourse OIDC 플러그인에는 “well-known” OpenID Connect discovery document 설정이 포함되어 있습니다. 제 경우: https://login.netzwissen.de/realms/netzwissen/.well-known/openid-configuration

만약 Discourse ID가 Discourse 컨테이너 인스턴스와 Discourse ID IDP 간의 링크에 대해 유사한 기능을 구현한다면 문제가 되지 않을 것입니다. "Discourse ID"가 고정된 IDP를 사용하므로, HTTPS 접두사를 포함하여 이러한 "well-known URL"을 하드코딩할 수도 있습니다.