여기 사람들에게 일주일을 허비하게 하는 믿음이 있습니다. Mac에는 로그인 전이라는 하나의 순간만 있고 VPN 클라이언트는 그때 시작하거나 하지 않는다는 믿음입니다. 실제로 기기에는 네트워크 접근이 중요한 순간이 적어도 셋 있고, 그 순간에 누가 자격 증명을 보유할 수 있는지가 이들을 구분합니다. 로그인 항목에서 시작되는 클라이언트는 그중 정확히 하나만 다루며, 그것이 마지막입니다.

설정 하나가 부팅 전체를 다룬다는 신화

제품 페이지를 다시 읽고 그 기능이 어느 단계를 가리키는지 보십시오. 로그인 시 시작이라고 적힌 체크상자는 로그인 항목을 뜻하며, 이는 사용자 세션이 생긴 뒤에 실행됩니다. 요청 시 연결이라고 적힌 체크상자는 트래픽이 규칙과 일치할 때 클라이언트가 연결을 연다는 뜻이고, 이 경우에도 클라이언트와 자격 증명이 사용 가능해야 합니다.

둘 다 부팅 과정에는 닿지 않습니다. 공급업체가 제거하는 것을 잊은 제한이 아니라 운영 체제가 허용하는 범위입니다. 볼륨이 잠금 해제되기 전에는 클라이언트를 시작할 실행 중인 시스템이 없고, 로그아웃 후에는 사용자의 비밀이 세션과 함께 사라집니다. 두 개의 별개 벽이며, 어느 쪽도 다른 체크상자에 굴복하지 않습니다.

단계를 분리하면 원래 질문의 모양이 바뀝니다. VPN이 로그인 전에 시작되는지 묻는 대신 세 가지 구체적 순간 중 어느 것이 동작해야 하는지 묻고, 그러면 각각의 주인이 다르다는 것을 알게 됩니다. 암호화 스택, 네트워크 확장, 또는 사용자 세션입니다.

각 단계에서 실제로 일어나는 일

부팅은 암호화된 볼륨으로 시작하며, 어떤 범용 작업에도 쓸 수 있는 시스템이 생기기 전에 잠금을 해제해야 합니다. 그 해제는 제한된 자격 증명 집합을 가진 제한된 컨텍스트에서 이루어지며, Apple은 유효한 해제 없이는 암호화된 데이터에 접근할 수 없다고 분명히 문서화합니다.

다음은 로그인 창입니다. 시스템은 실행 중이지만 아직 사용자 세션이 없습니다. 사용자가 로그아웃했다면 사용자 컨텍스트 확장은 이미 종료되었고, 전역 시스템 확장은 여전히 실행 중일 수 있지만 실행 중인 것과 VPN에 필요한 자격 증명을 보유하는 것은 다릅니다.

그다음 세션이 오고, 여기서 일반 클라이언트는 로그인 키체인을 읽고, 두 번째 요소를 요구하고, 푸시된 경로를 적용할 수 있습니다. 사람들이 로그인 전이라고 설명하는 기능 대부분은 실제로 이 단계이며, 로그인 전이 아니라 세션 초반에 활성화됩니다.

StageWhat it can useWhat it cannot do
FileVault unlockCredentials supplied at the console to unlock the volumeRun an ordinary VPN app or read a user keychain
Login windowSystem context, possibly a joined networkUse a user secret that only exists after login
User sessionLogin keychain, interactive MFA, full client featuresExist before the volume unlocks

launch daemon이 부재한 사용자를 위해 로그인할 수 없는 이유

상승된 권한은 문제를 해결할 것 같지만 해결하지 못합니다. launch daemon은 뒤에 사용자 세션이 없는 시스템 프로세스로 실행되므로 잠금을 해제할 키체인도, 요청에 답할 사람도 없습니다. 소켓을 열고 파일을 읽을 수는 있지만, 자격 증명을 소유한 사용자가 되는 것은 할 수 없습니다. 권한은 정체성이 아니며, 바로 이 지점에서 둘이 혼동됩니다.

사람들이 그 틈에서 만드는 것은 비밀번호가 들어 있는 스크립트이며, 이는 처음의 문제보다 더 나쁜 문제입니다.

요구 사항의 정직한 버전은 더 좁습니다. 아무도 없는 동안 기기가 보호된 리소스에 도달해야 한다면, 그 리소스가 받아들이는 정체성은 사람 없이 기기가 보유할 수 있는 것이어야 합니다. 기기 인증서, 시스템 키체인의 자격 증명, 또는 두 번째 요소가 누군가 주머니 속 전화로 가는 푸시가 아닌 계정입니다. 그 정체성을 의도적으로 설계하면 단계 질문은 대개 스스로 답이 나옵니다.

Windows의 로그인 전 기능은 그대로 옮겨지지 않습니다

Windows에는 일부 원격 접속 제품을 위한 문서화된 로그인 전 접근 방식이 있고, 이름이 능력보다 더 잘 이동합니다. Windows 배포 안내서에 설명된 기능은 같은 공급업체가 macOS에서 동등한 것을 구현하는지에 대해 아무것도 알려주지 않습니다.

Mac 하드웨어, macOS 버전, 클라이언트 버전, 그리고 실제로 사용하는 인증 방식을 포함한 진술을 요구하십시오. 일반적인 지원 주장은 충분하지 않습니다. 동작과 미동작의 차이가 흔히 그 네 가지 중 하나에 있기 때문입니다.

공급업체가 답할 수 없다면 그것이 답입니다. 배포 중에 틈을 발견하는 대신 세션 단계를 계획하고 무인 상황을 위한 대안을 설계하십시오.

대신 무엇을 요구할지

요구 사항을 단계의 언어로 쓰십시오. 어떤 리소스가, 누구에게 필요한지, 어떤 컨텍스트에서, 연결이 아직 없을 때 얼마나 허용 가능한 지연으로?

답이 로그인한 뒤 터널이 필요한 사용자라면 요청 시 연결과 시작 항목으로 충분하고 저렴합니다. 답이 밤에 재부팅되어 보고해야 하는 기기라면 설계에는 지원되는 디스크 잠금 해제 경로, 기기 정체성, 그리고 네트워크가 끝내 올라오지 않을 때도 동작하는 복구 절차가 필요합니다. 답이 터널에 의존하는 조직 로그인이라면 로그인, 정체성, VPN 설계를 따로 사는 것이 아니라 함께 만들어야 합니다.

Apple의 FileVault 문서가 잠금 해제 단계의 올바른 출발점입니다. 그 뒤의 모든 것은 클라이언트와 정체성의 문제이며, 구매 전에 공급업체 진술로 정리되어야 합니다.

관련 글