비밀번호 없는 로그인은 WebAuthn을 활용하여 Teleport를 위한 비밀번호 없는 및 사용자 이름 없는 인증을 제공합니다.
전제 조건
-
실행 중인 Teleport 클러스터 버전 이상. Teleport를 시작하려면, 가입하기 위해 무료 평가판에 등록하거나 데모 환경 설정하기를 참조하세요.
-
tctl
관리 도구와tsh
클라이언트 도구.tctl
과tsh
다운로드에 대한 지침은 설치를 방문하세요.
- Teleport는 WebAuthn에 대해 구성되어 있어야 합니다. 두 번째 요소: WebAuthn 가이드를 참조하세요.
- WebAuthn 및 상주 키를 지원하는 하드웨어 장치. 대안으로, 생체 인식 / Touch ID가 있는 Mac 또는 Windows Hello(Windows 10 19H1 이상)를 지원하는 장치를 사용할 수 있습니다.
- WebAuthn 지원을 갖춘 웹 브라우저. 브라우저가 WebAuthn을 지원하는지 확인하려면 WebAuthn 호환성 페이지를 확인하세요.
- Touch ID를 위해서는 서명되고 공증된
tsh
버전이 필요합니다. 이는 Homebrew에서 설치한 버전이나 소스에서 컴파일한 버전은 작동하지 않음을 의미합니다. macOS tsh 인스톨러 다운로드. - 당신의 Teleport 클러스터에 연결할 수 있는지 확인하려면,
tsh login
으로 로그인한 다음 현재 자격 증명을 사용하여tctl
명령어를 실행할 수 있는지 확인하십시오. 예를 들어:클러스터에 연결하고tsh login --proxy=teleport.example.com --user=email@example.comtctl status클러스터 teleport.example.com
버전 16.2.0
CA 핀 sha256:abdc1245efgh5678abdc1245efgh5678abdc1245efgh5678abdc1245efgh5678
tctl status
명령어를 실행할 수 있다면, 현재 자격 증명을 사용하여 작업대에서 후속tctl
명령어를 실행할 수 있습니다. 자신의 Teleport 클러스터를 호스팅하는 경우, Teleport 인증 서비스를 호스팅하는 컴퓨터에서 전체 권한으로tctl
명령어를 실행할 수도 있습니다.
WebAuthn을 지원하는 Teleport 클러스터는 자동으로 비밀번호 없는 로그인 기능을 지원합니다.
1단계/2단계. 등록
tsh
를 사용하여 비밀번호 없는 장치를 등록하세요:
tsh mfa add장치 유형 선택 [TOTP, WEBAUTHN, TOUCHID]: WEBAUTHN
장치 이름 입력: bio
비밀번호 없는 로그인 허용 [YES, NO]: YES
*등록된* 보안 키를 탭하세요
*새로운* 보안 키를 탭하세요
MFA 장치 "bio"가 추가되었습니다.
장치 유형으로 WEBAUTHN
또는 TOUCHID
중 하나를 선택할 수 있습니다. "비밀번호 없는 로그인 허용"에 대해 YES
라고 답해야 합니다.
하드웨어 장치를 사용하는 경우 비밀번호 없는 등록이 상주 키 슬롯을 차지합니다. 상주 키는 인증자(즉, 인증에 사용되는 장치)에서 지속적인 메모리에 저장되는 발견 가능한 자격 증명이라고도 합니다. 반대로, MFA 키는 인증자에 의해 암호화되고 Teleport Auth Server에 저장됩니다. 장치 유형과 관계없이 비밀번호 없는 등록은 일반 MFA에도 사용될 수 있습니다.
비밀번호 없는 방식에만 의존할 계획이라면, 여러 장치를 등록하는 것이 좋습니다. 포터블 하드웨어 장치가 이상적이며, tsh
, Teleport 웹 UI 및 여러 컴퓨터 간에 공유할 수 있습니다.
Touch ID 등록은 애플리케이션별로 격리됩니다. tsh
에 대한 Touch ID 등록은 Chrome 또는 Safari에서 만든 등록과 다릅니다. 여러 애플리케이션에서 동일한 Touch ID 장치를 등록하여 모든 애플리케이션에서 비밀번호 없는 로그인에 접근할 수 있습니다.
2단계/2단계. 인증
비밀번호 없는 자격 증명을 사용하여 인증하세요:
tsh login --proxy=example.com --auth=passwordless보안 키를 탭하세요
> 프로필 URL: https://example.com
로그인된 사용자: codingllama
클러스터: example.com
역할: access, editor
로그인이: codingllama
Kubernetes: 활성화됨
유효 기간: 2021-10-04 23:32:29 -0700 PDT [유효 기간 12시간0분0초]
확장: permit-agent-forwarding, permit-port-forwarding, permit-pty
tsh login --proxy=example.com --auth=passwordless보안 키를 탭하세요
> 프로필 URL: https://example.com
로그인된 사용자: codingllama
클러스터: example.com
역할: access, editor, reviewer
로그인이: codingllama
Kubernetes: 활성화됨
유효 기간: 2021-10-04 23:32:29 -0700 PDT [유효 기간 12시간0분0초]
확장: permit-agent-forwarding, permit-port-forwarding, permit-pty
완전히 비밀번호 없는 클러스터는 기본적으로 비밀번호 없는 로그인을 허용하므로 --auth=passwordless
가 필요하지 않습니다. 비밀번호 없는 로그인 기능을 기본값으로 활성화하는 방법을 배우려면 다음 섹션을 확인하세요.
Teleport 웹 UI에서도 비밀번호 없는 로그인을 실행할 수 있습니다. 그렇게 하려면 웹 UI에서 비밀번호 없는 링크를 찾으세요.
선택 사항: 비밀번호 없는 로그인 기본 활성화
비밀번호 없는 로그인 애호가는 클러스터에서 비밀번호 없는 로그인을 기본값으로 활성화할 수 있습니다. 이 구성은 비밀번호 없는 장치가 등록되지 않은 사용자에 대해서도 Teleport의 동작을 변경하므로 기존 사용자는 첫 번째 비밀번호 없는 등록을 얻기 위해 tsh login --proxy=example.com --auth=local
을 사용하여 인증해야 할 수 있습니다.
비밀번호 없는 로그인 기능을 기본값으로 활성화하려면 클러스터 구성에 connector_name: passwordless
를 추가하세요:
인증 서버 teleport.yaml
파일:
auth_service:
authentication:
type: local
second_factor: on
webauthn:
rp_id: example.com
connector_name: passwordless # 비밀번호 없는 기본값
cap.yaml
파일을 생성하거나 tctl get cluster_auth_preference
를 사용하여 기존 구성을 가져옵니다:
kind: cluster_auth_preference
version: v2
metadata:
name: cluster-auth-preference
spec:
type: local
second_factor: "on"
webauthn:
rp_id: example.com
connector_name: passwordless # 비밀번호 없는 기본값
구성을 업데이트합니다:
tctl create -f cap.yaml클러스터 인증 기본 설정이 업데이트되었습니다.
cap.yaml
파일을 생성하거나 tctl get cluster_auth_preference
를 사용하여 기존 구성을 가져옵니다:
kind: cluster_auth_preference
version: v2
metadata:
name: cluster-auth-preference
spec:
type: local
second_factor: "on"
webauthn:
rp_id: example.com
connector_name: passwordless # 비밀번호 없는 기본값
구성을 업데이트합니다:
tctl create -f cap.yaml클러스터 인증 기본 설정이 업데이트되었습니다.
문제 해결
"비밀번호 없는 로그인 허용"이 나타나지 않음
tsh mfa add
중에 "비밀번호 없는 로그인 허용" 프롬프트가 보이지 않으면 이전 버전의 tsh
를 사용하고 있을 수 있습니다. 설치 페이지에서 최신 tsh
를 다운로드하세요.
하드웨어 장치를 사용할 수 없음
tsh
는 비밀번호 없는 등록을 위해 특정 기능을 갖춘 하드웨어 장치에 대해서만 프롬프트를 표시합니다. 장치가 깜빡이지 않으면 비밀번호 없는 로그인 기능을 지원하지 않을 수 있습니다.
아래는 요구 사항의 비포괄적인 목록입니다:
- 장치는 WebAuthn을 지원해야 합니다(때때로 FIDO2 또는 CTAP2라고도 함).
- 장치는 사용자 검증이 가능해야 합니다(생체 인식 또는 PIN).
- 장치에는 PIN이 설정되어 있어야 합니다.
- 장치에 지문이 등록되어 있어야 합니다(생체 인식의 경우). 이는 일반적으로 PIN 및 지문을 모두 의미합니다.
tsh
는 하드웨어 장치에 접근하기 위해 내장된 libfido2에 의존하고 있습니다. Linux에서 실행 중인 경우 장치에 접근하기 위한 필요한 udev 규칙이 누락되었을 수 있습니다. libfido2 설치 지침을 따라 보시기 바랍니다. 필요한 udev 규칙을 제공할 수 있습니다.
Touch ID를 사용할 수 없음
Touch ID에 문제가 있는 경우 최신 독립형 tsh
버전을 사용하고 있는지 확인하세요. macOS tsh 인스톨러 다운로드.
Touch ID 지원은 Touch ID 센서와 Secure Enclave가 있는 Mac이 필요합니다. 또한 macOS >= 10.15 (macOS Catalina)가 필요합니다.
$ tsh touchid diag
명령을 실행하여 요구 사항을 확인할 수 있습니다. 유능한 장치와 tsh
바이너리는 아래와 유사한 출력을 보여야 합니다:
tsh touchid diag컴파일 지원이 있습니까? true
서명이 있습니까? true
권한이 있습니까? true
LAPolicy 테스트를 통과했습니까? true
Secure Enclave 테스트를 통과했습니까? true
Touch ID가 활성화되었습니까? true
Windows Webauthn을 사용할 수 없음
tsh
를 위한 Windows Webauthn 지원은 Windows 10 19H1 이상이 필요합니다.
$ tsh webauthnwin diag
명령을 실행하여 요구 사항을 확인할 수 있습니다. 유능한 장치와 tsh
바이너리는 다음 출력을 보여야 합니다:
tsh webauthnwin diagWebauthWin 사용 가능: true
컴파일 지원: true
DLL API 버전: 4
플랫폼 UV가 있습니까? true
등록 성공: true
로그인 성공: true
비밀번호 없는 로그인 기능 비활성화
클러스터에 비밀번호 없는 로그인 접근을 금지하려면 구성에 passwordless: false
를 추가하세요:
인증 서버 teleport.yaml
파일:
# /etc/teleport.yaml에서의 코드 조각:
auth_service:
authentication:
type: local
second_factor: on
webauthn:
rp_id: example.com
passwordless: false # 비밀번호 없는 로그인 비활성화
cap.yaml
파일을 생성하거나 tctl get cluster_auth_preference
를 사용하여 기존 구성을 가져옵니다:
kind: cluster_auth_preference
version: v2
metadata:
name: cluster-auth-preference
spec:
type: local
second_factor: "on"
webauthn:
rp_id: example.com
passwordless: false # 비밀번호 없는 로그인 비활성화
구성을 업데이트합니다:
tctl create -f cap.yaml클러스터 인증 기본 설정이 업데이트되었습니다.
cap.yaml
파일을 생성하거나 tctl get cluster_auth_preference
를 사용하여 기존 구성을 가져옵니다:
kind: cluster_auth_preference
version: v2
metadata:
name: cluster-auth-preference
spec:
type: local
second_factor: "on"
webauthn:
rp_id: example.com
passwordless: false # 비밀번호 없는 로그인 비활성화
구성을 업데이트합니다:
tctl create -f cap.yaml클러스터 인증 기본 설정이 업데이트되었습니다.
MFA 장치가 패스키로 변경된 이유는 무엇인가요?
MFA 인증기가 갑자기 패스키로 나열되기 시작했다면, 이는 항상 패스키였기 때문입니다. 특정 장치나 애플리케이션(Chrome 또는 Safari Touch ID 키 등)은 Teleport의 지시에 관계없이 항상 패스키로 생성됩니다.
등록 중 인증자가 credProps 확장으로 응답하거나 비밀번호 없는 로그인을 성공적으로 수행하면, Teleport는 이전에 그렇지 않았다면 자동으로 이를 패스키로 표시합니다.