Discourse ID와 2FA

@JammyDodger, 최근 무료 인스턴스를 위해 계정을 등록했습니다:

거기서 t/227972에서 설명하는 것과 동일한 문제를 겪고 있는 것 같습니다:

대부분의 문서에서는 이것이 기본적으로 활성화되어 있어야 한다고 표시하고 있습니다:

그러나 활성화할 옵션조차 없고, 기본적으로 활성화되어 있지도 않습니다:

이 게시글을 여기로 옮겼습니다. 원래 #contribute:bug에 작성한 내용과는 다른 문제이기 때문입니다.

Discourse ID는 OAuth2를 사용하지 않습니다. 실질적으로는 SSO 제공자(SSO provider)로 기능하고 있으며, 이는 다른 개념입니다.

2FA를 설정하려면 SSO 제공자인 ID에서 설정해야 합니다. 구체적으로는 https://id.discourse.com/my/preferences/security에서 설정할 수 있습니다.

@jomaxro, 감사합니다. 아마도 저를 혼란스럽게 한 부분은 enforce_second_factor를 "all"로 설정하려고 했음에도 불구하고, "로컬 로그인이 비활성화되어 있으면 2FA를 강제할 수 없습니다"라는 안내를 받아 설정할 수 없었던 점인 것 같습니다. 이 주제가 너무 벗어난 것이 아니라면, 이 문제를 해결하는 방법은 무엇인가요?

좋은 질문입니다… 하지만 저도 정확한 답을 알지 못합니다. 답변을 아는 팀원을 찾아보도록 하겠습니다!

팀으로부터 정정을 받았습니다. Discourse ID는 실제로 내부적으로 OAuth2를 사용하더군요. 죄송합니다. 다른 프로토콜을 사용한다고 생각했습니다.


질문하신 내용에 대해 말씀드리자면, 외부 로그인에서는 2FA를 지원하지 않습니다. 확인하신 메시지에 명시된 바와 같이, 로컬 로그인이 활성화되지 않으면 2FA를 강제할 수 없습니다. 2FA 관리 및 강제 적용은 외부 로그인 제공자(Discourse ID의 경우 이 제공자가 해당되며, 이는 모든 외부 제공자에 적용됩니다)에 의존합니다.

@jomaxro, 그렇다면 무료 시범 플랜에서는 해당 설정을 수정할 수 없다는 뜻인가요? 아니면 Discourse ID를 어떤 방식으로든 연결을 끊을 수 있나요?

확인하고 싶은데, 무료 체험판을 말씀하시는 건지, 아니면 무료 플랜을 말씀하시는 건가요?

@jomaxro, 죄송합니다. 무료 플랜인 것 같습니다:

우리에게 질문입니다: IdP(신원 제공자)가 사용자가 MFA(다중 인증)를 수행했는지 여부에 대한 정보를 SP(서비스 제공자)로 전달합니까?

U2F / FIDO와 유사한 메커니즘을 생각하고 있습니다. 이 경우 프로그램은 자격 증명에 대해 예상/요구되는 사용자 상호작용 수준에 대한 장치를 증명할 수 있는 요청을 할 수 있습니다.

Discourse ID… 또는 마찬가지로 다른 IdP(SAML? oAuth2? OIDC?)가 이 정보를 SP로 전달한다면, 이는 우리가 잠재적으로 활용할 수 있는 정보가 될 것입니다.

만약 그렇지 않다면, 이 보증을 확보하기 위해 연동 로그인 이후에 MFA를 구현해야 하는 상황에 처하게 됩니다.

이를 수행하는 표준적인 방법은 OIDC를 통해입니다. 현재 Discourse ID는 오직 OAuth2만을 사용하여 구축되어 있습니다. MFA 플래그를 지원하려면 프로바이더 계층에서 OIDC를 구현하고, 이를 요구하는 클라이언트를 위해 MFA 값을 왕복으로 전달해야 합니다.

여러 가지 복잡한 사항이 있습니다:

  • Discourse 코어에서는 특정 사용자 유형(스태프 또는 전체 사용자)에 대해서만 2FA를 요구할 수 있는 옵션이 있습니다. ID를 통해 유사한 기능이 지원될 가능성이 높습니다.
  • ID는 Google/Apple/Facebook/Github을 통한 로그인을 허용합니다. 하지만 이러한 서비스들은 사용자가 로그인 시 2FA를 완료했는지를 신뢰할 수 있게 알려주지 않습니다… ID 계층에서 2FA를 구현해야 하고, 일부 사용자는 이중 2FA를 요구해야 할 수도 있어 이상적이지 않습니다.
  • 아이덴티티 프로바이더 계층(즉, 로컬 인스턴스가 아닌 곳)에서의 2FA는 모든 소비자(소비 측 시스템)에게 충분한가요? 일반적으로는 그렇다고 생각하지만, 이를 확정하기 전에 좀 더 조사가 필요합니다.