이미 여기에서 언급했듯이, Discourse가 SCIM 프로토콜을 지원하면 훌륭한 기능이 될 것이라 생각합니다. SCIM은 IETF가 RFC7644와 RFC7643를 통해 제안한 표준으로, 간단한 REST API를 통해 사용자/그룹 관리 솔루션을 제공하기 위한 목적으로 설계되었습니다. 우리의 사용 사례는 Keycloak와 같은 SCIM 클라이언트 역할을 하는 별도 서비스를 통해 사용자 신원 및 그룹 멤버십을 관리하는 것입니다. 이때 Discourse는 SCIM 서비스 제공자 역할을 하게 됩니다. 기존 SSO 및 중앙 집중식 계정 생성 기능 외에도 다음과 같은 장점이 있습니다:
사용자를 그룹에 할당;
여러 앱에서 사용자 정보를 즉시 변경;
SSO에서 사용자가 제거될 때 해당 사용자를 삭제;
표준 방식으로 사용자 또는 그룹 목록을 조회;
…
우리는 SCIM 구현을 위해 NLNet의 NGI로부터 일부 자금을 지원받았습니다. 제안서와 관련 작업에 대한 내용은 우리 포럼의 여기에서 읽을 수 있습니다. 당분간은 Discourse 플러그인으로 첫 번째 솔루션을 구현해 보려 하지만, 궁극적으로는 Discourse 코어에 이를 통합하는 것이 좋겠습니다. 여러분의 의견과 생각을 들려주세요!
매핑은 여전히 매우 단순하며, 사용자와 그룹의 기본 필드만 작동합니다. Keycloak SCIM 플러그인으로 테스트해 보았으며, Keycloak에서 사용자를 추가/수정하면 Discourse에서 해당 사용자가 생성/업데이트되는 것을 확인할 수 있습니다. Keycloak SCIM 플러그인은 여기에서 찾을 수 있습니다:
피드백을 환영합니다 우리 환경에서 Keycloak를 사용하여 더 많은 테스트를 진행할 예정이며, authentik으로도 테스트해보고 싶습니다.