- 위험: 사용자가 확인이 필요한 이메일 수신
- 확인 이메일이 만료되는가요?
- 영향 받는 사용자 목록 생성
- 사용자가 차단되었을 때 어떻게 보이나요?
- 자체 관리형 GitLab 인스턴스의 관리자로서 알아야 할 내용은 무엇인가요?
- 관리자이지만 계정에 액세스할 수 없는 경우 어떻게 해야 하나요?
- 자체 관리형 인스턴스의 모든 사용자를 강제로 확인하는 방법은 무엇인가요?
- LDAP 사용자에 대해 어떻게 되나요?
GitLab 13.2로 업데이트: 이메일 확인 문제
GitLab 13.0.1 보안 릴리즈에서는 사용자가 이메일 확인 프로세스를 우회할 수 있는 보안 문제에 대해 설명했습니다. 해당 공지에서는 모든 영향을 받는 설치를 최대한 빨리 최신 버전으로 업그레이드할 것을 강력히 권장했습니다.
자체 관리형 인스턴스에서 여러 이메일 주소를 가진 사용자가 코드를 커밋하고 로그인하는 데 문제가 발생할 수 있습니다. 자세한 정보는 다음 해결 및 종료된 보안 문제를 참조하십시오.
위험: 사용자가 확인이 필요한 이메일 수신
GitLab 13.2로 업데이트하는 과정에서 보안 문제의 조건을 충족하는 계정에 대해 백그라운드 마이그레이션이 실행됩니다. 해당 사용자는 _미확인_으로 표시됩니다.
미확인 사용자에게 초기 이메일이 보내져 문제에 대해 설명합니다. 그 후 5분 이내에 사용자가 해당 이메일 주소를 다시 확인할 수 있는 링크가 포함된 두 번째 이메일이 전송됩니다.
확인 이메일이 만료되는가요?
이 재확인 이메일의 링크는 기본적으로 하루 후에 만료됩니다. 만료된 링크를 선택한 사용자는 새로운 재확인 이메일을 요청하도록 안내받습니다. 사용자는 http://gitlab.example.com/users/confirmation/new
에서 새로운 재확인 이메일을 요청할 수 있습니다.
영향 받는 사용자 목록 생성
다양한 방법을 사용하여 업그레이드 전후에 영향 받는 사용자 목록을 생성할 수 있습니다.
GitLab 13.2로 업그레이드 전
다음 코드를 사용하여 다음 조건을 충족하는 사용자를 검색합니다:
- 현재 확인된 상태인 사용자.
- 동일한
confirmed_at
시간을 가진 사용자. - 부가적인 이메일 주소도 가지고 있는 사용자.
emails_and_users_that_will_be_unconfirmed = Email.joins(:user).merge(User.active).where('emails.confirmed_at IS NOT NULL').where('emails.confirmed_at = users.confirmed_at').where('emails.email <> users.email')
GitLab 13.2로 업그레이드 후
다음 코드를 사용하여 다음 조건을 충족하는 사용자를 검색합니다:
- 현재 확인되지 않은 상태인 사용자.
- 업그레이드 날짜 이후 미확인 상태인 사용자.
User.where(confirmed_at: nil).where('LENGTH(confirmation_token) = 32')
사용자가 차단되었을 때 어떻게 보이나요?
사용자는 “계속하려면 이메일 주소를 확인해야 합니다”라는 메시지를 받을 수 있습니다. 사용자가 로그인을 시도할 때 이 메시지는 404 또는 422 오류 코드를 포함할 수 있습니다.
참고: 우리는 미래 릴리즈에서 미검증 사용자의 로그인 경험을 개선하길 희망합니다.
영향을 받는 사용자가 Git 리포지토리에 코드를 커밋할 때 다음 메시지가 표시될 수 있습니다:
Your account has been blocked. Fatal: Could not read from remote repository
# 또는
Your primary email address is not confirmed.
사용자가 이 메시지를 보게 되면, 관리자에 의해 차단되었음을 확인하세요. 영향을 받는 사용자가 이 메시지를 보게 되면, 코드를 커밋하기 전에 이메일 주소를 확인해야 합니다.
자체 관리형 GitLab 인스턴스의 관리자로서 알아야 할 내용은 무엇인가요?
다음 옵션이 사용자를 도울 수 있습니다:
- 사용자가 수신한 이메일을 통해 이메일 주소를 확인할 수 있습니다.
- 사용자는
https://gitlab.example.com/users/confirmation/new
로 이동하여 이메일 주소를 직접 확인할 수 있습니다.
관리자로서, 관리 영역에서 사용자를 확인할 수도 있습니다.
관리자이지만 계정에 액세스할 수 없는 경우 어떻게 해야 하나요?
관리자이지만 이메일 주소를 확인할 수 없는 경우 Rails 콘솔 세션을 사용하여 GitLab 인스턴스에 로그인하십시오. 연결한 후 다음 명령을 실행하여 관리자 계정을 확인하세요:
admin = User.find_by_username "root" # 귀하의 관리자 사용자 이름으로 대체하십시오
admin.confirmed_at = Time.zone.now
admin.save!
자체 관리형 인스턴스의 모든 사용자를 강제로 확인하는 방법은 무엇인가요?
관리자이고 시스템의 모든 사용자를 강제로 확인하려는 경우 Rails 콘솔 세션을 사용하여 GitLab 인스턴스에 로그인하십시오. 연결한 후 다음 명령을 실행하여 모든 사용자 계정을 확인하세요:
User.where('LENGTH(confirmation_token) = 32').where(confirmed_at: nil).find_each { |u| u.confirmed_at = Time.now; u.save }
경고: 이 섹션에서 설명한 명령은 이메일 주소를 제대로 확인하지 않은 사용자를 활성화할 수 있습니다.
LDAP 사용자에 대해 어떻게 되나요?
LDAP 사용자는 다음 조건이 모두 충족되면 확인된 상태로 유지됩니다:
- “사용자 이메일 확인 사인업” 옵션이 false로 설정되어 있어야 합니다.
- 첫 번째 로그인이 사용자 LDAP 자격 증명을 기반으로 합니다.
- 사용자가 나중에 보조 이메일 주소를 추가하고 확인했어야 합니다.
참고: 확인 타임스탬프(기본 vs. 보조)가 다릅니다.
사용자는 배경 마이그레이션이 확인되지 않도록 유지됩니다 만약 다음 조건 중 하나라도 해당되는 경우:
- 그들이 GitLab을 통해 계정을 만듭니다.
- 그들이 기본 이메일 주소를 교체하고 이를 확인합니다.
- linked 보안 문제로 인해
confirmed_at
타임스탬프가 동일한 두 개의 이메일 주소가 있습니다. - LDAP가 소개되고 사용자의 기본 이메일 주소가 LDAP에 있는 것과 일치합니다.