자체 호스팅 Discourse의 SAML 플러그인

SAML 인증 플러그인 페이지 여기에는 *“SAML 인증은 엔터프라이즈 호스팅 플랜에서만 사용할 수 있습니다.”*라고 명시되어 있습니다.

이것은 제가 자체 호스팅하는 무료 버전의 Discourse에서는 SAML 인증을 사용할 수 없다는 뜻인가요? 이상적으로는 제 Discourse 인스턴스에서 Azure AD 인증을 사용하길 원합니다.

사용할 수 있습니다. 플러그인은 https://github.com/discourse/discourse-saml에서 사용할 수 있습니다.

해당 메시지는 호스팅과 관련이 있습니다. 표준 또는 비즈니스 플랜에서는 SAML 플러그인을 사용할 수 없음을 의미합니다.

다만, Azure-AD에는 SAML이 필요하지 않습니다. 훨씬 더 간단한 설정 방법은 Discourse OpenID Connect (OIDC) 를 참고하세요. 문서 하단에 Azure-AD에 대한 특이사항이 안내되어 있습니다.

즉, 플러그인 디렉토리에 나열된 모든 플러그인을 내 자체 호스팅 무료 디스커스 인스턴스에서 사용할 수 있다는 뜻인가요?

물론이죠! 웹사이트에 나열된 것보다 훨씬 더 많은 official 플러그인을 자유롭게 사용할 수 있습니다. Customization > Theme component 도 꼭 확인해 보세요.

추가 정보를 제공해 주셔서 다시 한번 감사합니다.

즉, 내부 사용자는 Azure AD를 통해 인증/등록을 하고, 외부 사용자는 로컬 계정이나 기타 계정 등록 플러그인을 통해 등록할 수 있도록 하는 것이 목표입니다. 그래서 SAML이 제 첫 번째 생각이었습니다.

OpenID Connect 인증 플러그인을 Azure AD와 함께 사용하여 내부 사용자만 사용할 수 있도록 제한할 수 있을까요?

OpenID Connect와 SAML은 모두 "인증 제공자(authentication provider)"입니다. 사이트에 하나를 설정하면, 기본적으로 사용자는 로컬 로그인 또는 인증 제공자 중 하나를 선택할 수 있습니다. Meta가 좋은 예시인데, 로컬 로그인, Facebook, Google, GitHub 등을 선택할 수 있습니다.

귀하의 경우, 사용자는 로컬 로그인과 OpenID, 또는 로컬 로그인과 SAML 중 하나를 선택하게 됩니다. 설정 환경에서 선호하고 구성하기 쉬운 방식을 선택하시면 됩니다.

로그인 권한은 사용 중인 플러그인이 아니라 Azure AD에서 관리되므로, 두 플러그인 중 어느 것을 사용하든 이 설정을 수행할 수 있습니다.

그런데 외부 사용자에게 이를 숨기는 것은 가능할까요? 고객이 Azure AD를 사용하여 로그인할 수 있다고 생각하고 시도하는 것을 원하지 않습니다.

Azure AD 인증이 유일한 옵션인, 내부 사용자만 아는 별도의 로그인/가입 페이지를 만드는 것은 어떨까요?

CSS를 사용하여 로그인 링크를 숨길 수 있으며, 이렇게 하면 사용자가 링크를 볼 수 없게 됩니다. 이후 내부 사용자를 위해 OpenID 또는 SAML 로그인으로 직접 연결되는 링크를 공유하거나(또는 내부 사이트에 게시) 사용할 수 있습니다. 사용자가 로그인 페이지에 도달할 당시 로그인되어 있지 않기 때문에 해당 사용자가 내부 사용자인지 아닌지를 파악할 수 있는 방법이 없습니다.

혼란을 피하기 위해 버튼 라벨을 변경하는 것도 좋습니다. 예를 들어, 아래 이미지에서는 "내부 사용자"용 버튼에 Discourse Staff라고 표시했습니다. Discourse Staff가 아닌 사용자가 이를 시도한다면, 그건 그들의 문제입니다:

조슈아 - 빠르고 유용한 도움을 주셔서 진심으로 감사드립니다.
정말 감사드리고, 안전하세요!