InfoGrab Docs

싱글 사인온 구성

요약

사용자는 조직의 싱글 사인온(SSO) 프로바이더를 통해 Teleport에 로그인할 수 있습니다. 이 가이드는 Teleport 싱글 사인온 통합과 관련된 주요 개념을 설명합니다. 아이덴티티 프로바이더와 Teleport를 통합하려면 아이덴티티 프로바이더 통합을 읽어보세요.

사용자는 조직의 싱글 사인온(SSO) 프로바이더를 통해 Teleport에 로그인할 수 있습니다. 인프라가 사용자를 인증하고, 권한을 부여하고, 감사하는 방식을 중앙화하면서 사용자 관리를 위한 조직의 기존 프로세스를 유지할 수 있습니다.

이 가이드는 Teleport 싱글 사인온 통합과 관련된 주요 개념을 설명합니다.

Tip

아이덴티티 프로바이더와 Teleport를 통합하려면 아이덴티티 프로바이더 통합을 읽어보세요.

Teleport의 SSO 사용 방법#

SSO 프로바이더에 애플리케이션으로 Teleport 클러스터를 등록할 수 있습니다. 사용자가 Teleport에 로그인하면 SSO 프로바이더가 자체 인증 플로우를 실행한 후 Teleport 클러스터에 HTTP 요청을 보내 인증이 완료되었음을 알립니다.

Teleport는 단기 인증서를 발급하여 사용자를 인프라에 인증합니다. 사용자가 SSO 인증 플로우를 완료하면 Teleport는 사용자에게 단기 인증서를 발급합니다. Teleport는 또한 Auth Service 백엔드에 임시 사용자를 만듭니다.

임시 사용자 리소스#

사용자가 SSO 인증 플로우를 완료하면 Teleport는 사용자를 위한 임시 user 리소스를 만듭니다.

사용자가 tsh login으로 Teleport에 로그인할 때 Teleport가 만드는 user의 TTL을 구성할 수 있습니다. Teleport는 30시간의 제한을 적용합니다(기본값은 12시간).

Teleport 감사 로그에서 임시 사용자에 대한 정보가 포함된 user.create 타입의 이벤트를 볼 수 있습니다.

임시 사용자 리소스를 검사하려면 어떻게 하나요?

tctl 명령을 사용하여 SSO 통합을 통해 생성된 임시 user 리소스를 검사할 수 있습니다:

# tsh로 클러스터에 로그인하여 tctl을 원격으로 사용할 수 있습니다.
$ tsh login --proxy=example.teleport.sh
$ tctl get users/<username>

다음은 GitHub 사용자 myuser가 Teleport에 인증하기 위해 GitHub에 로그인했을 때 생성된 임시 user 리소스의 예입니다. 이 리소스는 생성 후 12시간 후에 만료됩니다. created_by 필드는 리소스가 Teleport의 GitHub SSO 통합에 의해 생성되었음을 나타냅니다:

kind: user
metadata:
  expires: "2022-06-15T04:02:34.586688054Z"
  id: 0000000000000000000
  name: myuser
spec:
  created_by:
    connector:
      id: github
      identity: myuser
      type: github
    time: "2022-06-14T16:02:34.586688441Z"
    user:
      name: system
  expires: "0001-01-01T00:00:00Z"
  github_identities:
  - connector_id: github
    username: myuser
  roles:
  - editor
  - access
  - auditor
  status:
    is_locked: false
    lock_expires: "0001-01-01T00:00:00Z"
    locked_time: "0001-01-01T00:00:00Z"
  traits:
    github_teams:
    - my-team
    kubernetes_groups: null
    kubernetes_users: null
    logins:
    - root
version: v2

SSO 사용자를 위한 인증서#

임시 사용자를 만드는 것과 함께 Teleport는 성공적으로 인증된 SSO 사용자의 머신에 SSH 및 X.509 인증서를 발급합니다. 이를 통해 SSO 사용자는 Teleport가 영구적인 기록을 만들지 않아도 클러스터에 인증할 수 있습니다.

X.509 인증서에서 예를 들어 Subject 필드는 임시 user 리소스에 정의된 것과 동일한 정보를 포함합니다. 이를 통해 Teleport는 클러스터의 리소스에 접근할 때 인증된 사용자에 대한 RBAC 규칙을 시행할 수 있습니다.

다음은 GitHub SSO 통합을 통해 Teleport 클러스터에 로그인한 GitHub 사용자 myuser에 대해 Teleport가 발급한 인증서의 Subject 필드입니다:

Subject: L=myuser/street=teleport.example.com/postalCode={"github_teams":["my-team"],"kubernetes_groups":null,"kubernetes_users":null,"logins":["root"]}, O=access, O=editor, O=auditor, CN=myuser/1.3.9999.1.7=teleport.example.com

사용자는 GitHub 팀 my-team에 속해 있으며, 이 Teleport 클러스터는 해당 팀을 Teleport의 access, editor, auditor 역할에 매핑합니다.

인증서 Subject 검사하기

SSO를 통해 Teleport에 로그인한 후 사용자에게 발급된 X.509 인증서의 내용을 검사하려면 다음 명령을 실행하세요:

$ TELEPORT_CLUSTER=<your cluster>
$ SSO_USER=<your username within your SSO provider>
$ openssl x509 -text -in ~/.tsh/keys/${TELEPORT_CLUSTER}/${SSO_USER}-x509.pem | grep "Subject:"

다음 명령으로 Teleport 사용자에게 발급된 SSH 인증서를 검사할 수 있습니다:

$ ssh-keygen -L -f ~/.tsh/keys/${TELEPORT_CLUSTER}/${SSO_USER}-ssh/${TELEPORT_CLUSTER}-cert.pub

SSO를 통한 로그인#

사용자는 --auth 플래그를 사용하여 프로바이더를 지정함으로써 다음과 유사한 명령을 실행하여 SSO 프로바이더를 통해 Teleport에 로그인할 수 있습니다:

# 이 명령은 자동으로 기본 웹 브라우저를 열고 사용자가
# SSO 프로바이더와 함께 로그인 프로세스를 진행하도록 안내합니다.
$ tsh login --proxy=proxy.example.com --auth=github

이 명령은 브라우저 창을 열고 사용자가 터미널에서 SSO 플로우를 완료하기 위해 방문할 수 있는 URL을 표시합니다:

If browser window does not open automatically, open it by clicking on the link:
http://127.0.0.1:45235/055a310a-1099-43ea-8cf6-ffc41d88ad1f

Teleport는 사용자가 인증할 때까지 최대 3분 동안 기다립니다. 인증이 성공하면 Teleport는 SSH 및 X.509 인증서를 검색하여 ~/.tsh/keys/<clustername> 디렉터리에 저장합니다. 이 도구는 또한 SSH 에이전트가 실행 중인 경우 SSH 인증서를 에이전트에 추가합니다.

싱글 사인온 구성

원문 보기
요약

사용자는 조직의 싱글 사인온(SSO) 프로바이더를 통해 Teleport에 로그인할 수 있습니다. 이 가이드는 Teleport 싱글 사인온 통합과 관련된 주요 개념을 설명합니다. 아이덴티티 프로바이더와 Teleport를 통합하려면 아이덴티티 프로바이더 통합을 읽어보세요.

사용자는 조직의 싱글 사인온(SSO) 프로바이더를 통해 Teleport에 로그인할 수 있습니다. 인프라가 사용자를 인증하고, 권한을 부여하고, 감사하는 방식을 중앙화하면서 사용자 관리를 위한 조직의 기존 프로세스를 유지할 수 있습니다.

이 가이드는 Teleport 싱글 사인온 통합과 관련된 주요 개념을 설명합니다.

Tip

아이덴티티 프로바이더와 Teleport를 통합하려면 아이덴티티 프로바이더 통합을 읽어보세요.

Teleport의 SSO 사용 방법#

SSO 프로바이더에 애플리케이션으로 Teleport 클러스터를 등록할 수 있습니다. 사용자가 Teleport에 로그인하면 SSO 프로바이더가 자체 인증 플로우를 실행한 후 Teleport 클러스터에 HTTP 요청을 보내 인증이 완료되었음을 알립니다.

Teleport는 단기 인증서를 발급하여 사용자를 인프라에 인증합니다. 사용자가 SSO 인증 플로우를 완료하면 Teleport는 사용자에게 단기 인증서를 발급합니다. Teleport는 또한 Auth Service 백엔드에 임시 사용자를 만듭니다.

임시 사용자 리소스#

사용자가 SSO 인증 플로우를 완료하면 Teleport는 사용자를 위한 임시 user 리소스를 만듭니다.

사용자가 tsh login으로 Teleport에 로그인할 때 Teleport가 만드는 user의 TTL을 구성할 수 있습니다. Teleport는 30시간의 제한을 적용합니다(기본값은 12시간).

Teleport 감사 로그에서 임시 사용자에 대한 정보가 포함된 user.create 타입의 이벤트를 볼 수 있습니다.

임시 사용자 리소스를 검사하려면 어떻게 하나요?

tctl 명령을 사용하여 SSO 통합을 통해 생성된 임시 user 리소스를 검사할 수 있습니다:

# tsh로 클러스터에 로그인하여 tctl을 원격으로 사용할 수 있습니다.
$ tsh login --proxy=example.teleport.sh
$ tctl get users/<username>

다음은 GitHub 사용자 myuser가 Teleport에 인증하기 위해 GitHub에 로그인했을 때 생성된 임시 user 리소스의 예입니다. 이 리소스는 생성 후 12시간 후에 만료됩니다. created_by 필드는 리소스가 Teleport의 GitHub SSO 통합에 의해 생성되었음을 나타냅니다:

kind: user
metadata:
  expires: "2022-06-15T04:02:34.586688054Z"
  id: 0000000000000000000
  name: myuser
spec:
  created_by:
    connector:
      id: github
      identity: myuser
      type: github
    time: "2022-06-14T16:02:34.586688441Z"
    user:
      name: system
  expires: "0001-01-01T00:00:00Z"
  github_identities:
  - connector_id: github
    username: myuser
  roles:
  - editor
  - access
  - auditor
  status:
    is_locked: false
    lock_expires: "0001-01-01T00:00:00Z"
    locked_time: "0001-01-01T00:00:00Z"
  traits:
    github_teams:
    - my-team
    kubernetes_groups: null
    kubernetes_users: null
    logins:
    - root
version: v2

SSO 사용자를 위한 인증서#

임시 사용자를 만드는 것과 함께 Teleport는 성공적으로 인증된 SSO 사용자의 머신에 SSH 및 X.509 인증서를 발급합니다. 이를 통해 SSO 사용자는 Teleport가 영구적인 기록을 만들지 않아도 클러스터에 인증할 수 있습니다.

X.509 인증서에서 예를 들어 Subject 필드는 임시 user 리소스에 정의된 것과 동일한 정보를 포함합니다. 이를 통해 Teleport는 클러스터의 리소스에 접근할 때 인증된 사용자에 대한 RBAC 규칙을 시행할 수 있습니다.

다음은 GitHub SSO 통합을 통해 Teleport 클러스터에 로그인한 GitHub 사용자 myuser에 대해 Teleport가 발급한 인증서의 Subject 필드입니다:

Subject: L=myuser/street=teleport.example.com/postalCode={"github_teams":["my-team"],"kubernetes_groups":null,"kubernetes_users":null,"logins":["root"]}, O=access, O=editor, O=auditor, CN=myuser/1.3.9999.1.7=teleport.example.com

사용자는 GitHub 팀 my-team에 속해 있으며, 이 Teleport 클러스터는 해당 팀을 Teleport의 access, editor, auditor 역할에 매핑합니다.

인증서 Subject 검사하기

SSO를 통해 Teleport에 로그인한 후 사용자에게 발급된 X.509 인증서의 내용을 검사하려면 다음 명령을 실행하세요:

$ TELEPORT_CLUSTER=<your cluster>
$ SSO_USER=<your username within your SSO provider>
$ openssl x509 -text -in ~/.tsh/keys/${TELEPORT_CLUSTER}/${SSO_USER}-x509.pem | grep "Subject:"

다음 명령으로 Teleport 사용자에게 발급된 SSH 인증서를 검사할 수 있습니다:

$ ssh-keygen -L -f ~/.tsh/keys/${TELEPORT_CLUSTER}/${SSO_USER}-ssh/${TELEPORT_CLUSTER}-cert.pub

SSO를 통한 로그인#

사용자는 --auth 플래그를 사용하여 프로바이더를 지정함으로써 다음과 유사한 명령을 실행하여 SSO 프로바이더를 통해 Teleport에 로그인할 수 있습니다:

# 이 명령은 자동으로 기본 웹 브라우저를 열고 사용자가
# SSO 프로바이더와 함께 로그인 프로세스를 진행하도록 안내합니다.
$ tsh login --proxy=proxy.example.com --auth=github

이 명령은 브라우저 창을 열고 사용자가 터미널에서 SSO 플로우를 완료하기 위해 방문할 수 있는 URL을 표시합니다:

If browser window does not open automatically, open it by clicking on the link:
http://127.0.0.1:45235/055a310a-1099-43ea-8cf6-ffc41d88ad1f

Teleport는 사용자가 인증할 때까지 최대 3분 동안 기다립니다. 인증이 성공하면 Teleport는 SSH 및 X.509 인증서를 검색하여 ~/.tsh/keys/<clustername> 디렉터리에 저장합니다. 이 도구는 또한 SSH 에이전트가 실행 중인 경우 SSH 인증서를 에이전트에 추가합니다.