authentication 모듈)가 처리합니다. 백그라운드 작업이나 별도의 파드는 없습니다. SAML 인증에 따라 ID 공급자(IdP)를 설정한 다음, 아래와 같이 값과 IdP 인증서를 Kubernetes에 넣으세요.
실행 위치
구성
1
IdP에 Overleaf 등록하기
goauthentik 단계별 안내에서 이 항목들의 위치를 확인할 수 있습니다.
2
IdP 인증서를 Secret overleaf-certs에 넣기
Toolkit은 Secret이 이미 있다면 대신 파일을 추가하세요. 모든
data/overleaf/certs/에서 인증서를 읽습니다. Kubernetes에서는 인증서 및 기타 파일에 설명된 대로 /var/lib/overleaf/certs에 마운트된 Secret overleaf-certs에서 가져옵니다.--from-file을 포함하여 삭제 후 다시 만들거나, kubectl -n overleaf edit secret overleaf-certs를 사용합니다.OVERLEAF_SAML_IDP_CERT는 경로를 받으며, 인증서 교체 기간에는 경로의 JSON 목록을 받습니다. PEM 텍스트 자체는 받지 않습니다.3
ConfigMap에 설정 추가하기
30-config.yaml (additions)
OVERLEAF_SAML_* 설정은 환경 변수에 나열되어 있습니다. 그 자체로 시크릿인 설정은 없으므로 모두 ConfigMap에 넣습니다. 키 파일(OVERLEAF_SAML_PRIVATE_KEY, OVERLEAF_SAML_DECRYPTION_PVK)은 overleaf-certs에 넣고, ConfigMap에는 그 경로를 둡니다.4
적용 및 재시작
overleaf-certs에 새 인증서를 넣은 경우에도 이 재시작이 필요합니다.여러 레플리카
IdP는 크로스 사이트POST로 사용자를 ACS URL로 돌려보냅니다. 브라우저는 이 요청에 SameSite=Lax 쿠키를 보내지 않으므로, 요청에는 Overleaf의 세션 쿠키도, Chrome과 Edge에서는 로드 밸런서의 스티키 쿠키도 포함되지 않으며 어느 레플리카에든 도착할 수 있습니다. 기본 설정에서는 문제가 되지 않습니다. 요청을 받은 레플리카가 Redis에 세션을 만들고, 그 이후로는 로드 밸런서가 사용자를 해당 레플리카에 유지합니다.
Kubernetes에서의 테스트
goauthentik를 IdP로 사용하고(HTTP-POST 바인딩, 서명된 어설션 및 응답) HAProxy 뒤에 세 개의 레플리카를 둔 Kubernetes 1.37 환경에서, SAML에 대한 엔드투엔드 테스트(19개 케이스)가 통과했습니다. 테스트 항목은 런치패드에서 만든 첫 관리자의 SAML 로그인,overleaf-certs의 IdP 인증서를 사용한 로그인, 계정 생성 및 재로그인, 그룹에 따른 관리자 매핑과 매핑 없음, 로그인할 때마다 이름과 관리자 플래그 갱신, IdP를 통한 로그아웃, SAML 계정의 비밀번호 규칙, 그리고 정지된 계정입니다. OVERLEAF_SAML_VALIDATE_IN_RESPONSE_TO는 기본값으로 두었습니다.
Q&A
SAML로 로그인하면 바로 “Something went wrong”이 표시됩니다
SAML로 로그인하면 바로 “Something went wrong”이 표시됩니다
답변: SAML 전략이 로드되지 않았습니다. 파드는 여전히 준비 상태가 되므로 각 파드의 web 로그를 확인하세요.흔한 원인:
OVERLEAF_SAML_IDP_CERT가 overleaf-certs에 없는 파일을 가리키는 경우, 불리언 값이 "true" 또는 "false"가 아닌 경우, 또는 잘못된 JSON. EXTERNAL_AUTH에 여러 방식이 나열되어 있으면, 이러한 오류는 SAML 뒤에 오는 방식(ldap, saml, oidc 순서)도 꺼지게 합니다.IdP가 Overleaf에 접근해야 하나요, 아니면 Overleaf가 IdP에 접근해야 하나요?
IdP가 Overleaf에 접근해야 하나요, 아니면 Overleaf가 IdP에 접근해야 하나요?
답변: 로그인과 로그아웃에는 둘 다 필요하지 않습니다. IdP와 Overleaf는 사용자의 브라우저를 통해서만 메시지를 주고받습니다. IdP를 메타데이터 URL로 구성한 경우에만 IdP가
${OVERLEAF_SITE_URL}/saml/meta를 다운로드합니다.
