GitLab을 SSO 프로바이더로 사용한 인증
SSO에 GitLab을 사용하여 Teleport 접근을 구성하는 방법
이 가이드는 특정 사용자 그룹에게 자격 증명을 발급하도록 GitLab 을 구성하는 방법을 다룹니다. 역할 기반 접근 제어(RBAC)와 함께 사용하면 관리자가 다음과 같은 정책을 정의할 수 있습니다: "DBA" 그룹의 구성원만 PostgreSQL 데이터베이스에 접근할 수 있습니다. "ProductionKubernetes"의 구성원만 프로덕션 Kubernetes 클러스터에 접근할 수 있습니다. 개발자는 프로덕션 서버에 절대 SSH 접근을 하면 안 됩니다. 작동 방식 # Teleport cluster를 GitLab에 애플리케이션으로 등록한 다음, 애플리케이션에 대한 정보를 Teleport에 제공하는 authentication connector 리소스를 생성할 수 있습니다. 사용자가 Teleport에 로그인하면 GitLab가 자체 인증 플로우를 실행한 후, 인증이 완료되었음을 알리기 위해 Teleport cluster에 HTTP 요청을 보냅니다. Teleport는 수명이 짧은 인증서를 발급하여 사용자를 인프라에 인증합니다. 사용자가 SSO 인증 플로우를 완료하면 Teleport는 사용자에게 수명이 짧은 TLS 및 SSH 인증서를 발급합니다. 또한 Teleport는 Auth Service 백엔드에 임시 사용자를 생성합니다. Teleport role은 사용자의 인증서에 인코딩됩니다. 사용자에게 Teleport role을 할당하기 위해 Auth Service는 authentication connector 내의 role mapping 을 검사하며, 이는 GitLab의 사용자 데이터를 하나 이상의 Teleport role 이름과 연결합니다. 사전 요구 사항 # 사용자가 할당된 최소 두 개의 GitLab 그룹. 아래 예제에서는 두 개의 서브그룹 admin 과 dev 가 있는 company 라는 그룹을 가정합니다. oidc 리소스를 유지 관리할 수 있는 접근 권한이 있는 Teleport 역할. 기본 editor 역할에서 사용 가능합니다. 실행 중인 Teleport Enterprise 클러스터. Teleport를 시작하려면 무료 체험판에 가입 하거나 데모 환경을 구성 하세요. tctl and tsh clients. Installing `tctl` and `tsh` clients Teleport 클러스터의 버전을 확인합니다. tctl and tsh clients는 Teleport 클러스터 버전보다 최대 한 개의 메이저 버전까지만 뒤처질 수 있습니다. Proxy Service의 /v1/webapi/find 로 GET 요청을 보내고 JSON 쿼리 도구를 사용하여 클러스터 버전을 확인합니다. teleport.example.com:443 를 Teleport Proxy Service의 웹 주소로 바꿉니다: $ TELEPORT_DOMAIN=teleport.example.com:443 $ TELEPORT_VERSION="$(curl -s https://$TELEPORT_DOMAIN/v1/webapi/find | jq -r '.server_version')" 사용 중인 플랫