Drupal SSO가 잘못된 사용자 세션을 생성합니다

안녕하세요,
저희는 Drupal의 SSO를 사용 중인데, 의도하지 않은 동작이 발생하고 있습니다. 현재 사용자의 세션과 별도로 모든 사용자가 저희 Drupal 서버에 로그인된 것으로 표시됩니다. 이로 인해 커뮤니티 내에서 다른 기기에 로그인된 것으로 보인다는 점을 본인 계정으로 인식하지 못해 많은 우려와 혼란이 생기고 있습니다.

이 기능을 비활성화할 수 있는지, 아니면 특정 IP를 제외하여 최근 사용된 기기 목록에서 저희 서버를 숨길 수 있는지 알려 주실 수 있을까요?

외부 SSO 제공자를 사용한다고 해서 이 목록에 표시되지 않습니다.

확인하신 내용은 사용자 API 키 생성 등 다른 요인으로 인해 발생한 결과일 수 있습니다.

Drupal 사이트가 Discourse의 SSO 제공자로 사용되는 경우 이 문제를 이전에 본 적이 있습니다. 다른 SSO 제공자와는 유사한 문제를 본 적이 없습니다. SSO에 사용 중인 Drupal 모듈이 있나요? 있다면 어디서 찾을 수 있는지 알려주실 수 있을까요?

CSS를 사용하여 “최근 사용된 기기” 섹션을 숨길 수 있습니다. 이 방법은 문제를 해결하는 좋은 임시 방편이 될 수 있습니다.

.control-group.pref-auth-tokens {
    display: none;
}

저희는 Discourse Forum Integration contrib 모듈을 사용하고 있습니다: Client Challenge

팁 주셔서 감사합니다. CSS를 사용하여 일시적으로 이를 숨겼습니다. 하지만 사용자가 최근 사용된 장치를 계속 볼 수 있도록 목록에서 저희 서버만 선택적으로 숨길 수 있는 설정이 있는지 알면 좋겠습니다.

Drupal 개발자에게 문의하시는 것을 추천드립니다. 해당 모듈의 마지막 업데이트가 2015년으로 보이며, 지원되는 Discourse 버전은 1.2.0.beta5(2015년 1월에 출시됨)로 명시되어 있습니다. 여전히 작동하는 것을 보니 다행이지만, 일부 사소한 문제가 있는 것은 놀라운 일이 아닙니다.

위에서 링크된 Drupal 모듈은 Drupal 7에만 사용 가능하며, Drupal 7은 2021년 11월에 수명(EOL)이 종료됩니다. (내일은 아니지만, 충분히 가까운 시점입니다.)

네, 감사합니다. 저희도 알고 있습니다(그리고 저희 사이트가 방금 런칭했는데, 기분이 썩 좋지는 않네요 :disappointed_relieved:)

Drupal Discourse 모듈을 간단히 살펴봤습니다. 문제가 발생하는 원인은 명확하지 않지만, SSO 로그인 시 User Agent와 Client IP가 사용자의 값이 아니라 Drupal 서버의 값으로 설정되고 있습니다. 이는 drupal_goto 메서드의 동작 방식과 관련이 있을 수 있습니다.

모듈에서 발견한 한 가지 사항은, Drupal에서 Discourse 콘텐츠를 표시하기 위한 일부 기능을 제공한다는 것입니다. 이를 위해 쿼리 문자열에 API 자격 증명을 포함하여 Discourse에 API 요청을 보내고 있습니다. 이러한 유형의 API 인증은 Discourse에서 비추천(deprecated)되었습니다. 가까운 시일 내에 이러한 유형의 요청이 더 이상 작동하지 않게 될 것입니다. Drupal 사이트에서 Discourse 콘텐츠를 표시하기 위해 이 모듈을 사용 중이라면, 이 문제에 대해 좀 더 자세히 살펴볼 필요가 있을 수 있습니다.

이 모듈은 2015년에 마지막으로 업데이트되었습니다. 최근 업데이트된 Drupal Discourse SSO 모듈이 있습니다: Client Challenge. 이 모듈은 SSO 기능만 제공하는 것으로 보입니다. Drupal 사이트에 Discourse 콘텐츠를 추가하는 코드는 없는 것 같습니다.

Simon, 추가 정보를 공유해 주셔서 감사합니다. 실제로 그렇게 하고 있습니다. 블로그 댓글 섹션에서 사용자들이 토론을 할 수 있도록 Discourse 주제를 사용하고 있으며, 해당 주제의 내용은 Drupal의 블로그 글에도 함께 표시됩니다.

API 인증 비추천(deprecation)에 대해 더 자세히 알아볼 수 있는 올바른 장소가 맞을까요? Discourse REST API Documentation

다시 한번 감사합니다!

네, 해당 주제의 시작 부분에 제시된 POST 요청 예시에는 필요한 정보가 포함되어 있습니다. Drupal Discourse 모듈을 헤더 기반 인증으로 수정하려면 코드에 아주 작은 변경 사항만 적용하면 됩니다.

Discourse 사이트가 최신 상태라면, Discourse 관리 대시보드에서 API 요청에 대해 비추천되는 인증 방법을 사용하고 있다는 경고가 표시되어 있을 가능성이 높습니다.