Infograb logo
Okta 서비스를 호스티드 통합으로 설정하기

Teleport는 사용자 프로필, 그룹 및 애플리케이션과 같은 Okta 조직의 리소스를 가져오고 접근 권한을 부여할 수 있습니다. Teleport는 Okta 사용자를 기반으로 사용자 계정을 프로비저닝할 수 있으며, Okta 애플리케이션은 Teleport의 애플리케이션 접근 UI를 통해 접근할 수 있으며, 이러한 애플리케이션에 대한 접근 권한 및 사용자 그룹은 Teleport의 RBAC 및 접근 요청을 통해 관리할 수 있습니다.

이 가이드는 Okta 서비스를 Teleport 호스티드 통합으로 설정하는 데 도움을 줄 것입니다.

Warning

Okta 통합을 활성화하면 Teleport가 Okta에서 앱 및 그룹 할당에 대한 소유권을 가지게 되며, Teleport RBAC 구성을 기반으로 Okta 내에서 변경할 수 있습니다.

특히, Okta 앱에 대한 접근 권한은 Teleport 역할의 app_labels로 관리되므로, 통합을 활성화하기 전에 사용자가 와일드카드 앱 레이블이 있는 역할을 가지고 있지 않은지 확인해야 하며, 그렇지 않으면 해당 사용자가 모든 Okta 애플리케이션에 할당될 수 있습니다.

통합의 범위를 제한하려면 Okta 접근 토큰을 앱 및 그룹의 하위 집합으로 제한할 수 있으며, Okta 리소스 세트를 사용할 수 있습니다.

Teleport는 선언적 상태 접근 방식을 사용하여 Okta 애플리케이션 그룹 할당을 관리합니다. Teleport를 통해 할당이 생성된 후 Okta UI를 통해 제거되면, Teleport는 상태를 재평가하고 Teleport의 RBAC 구성에 의해 정의된 상태와 일치하도록 Okta UI 변경 사항을 덮어쓸 수 있습니다.

필수 조건

  • 실행 중인 Teleport 클러스터. Teleport를 시작하려면 가입하여 무료 평가판을 이용해 보십시오.

  • tctl 관리자 도구 및 tsh 클라이언트 도구.

    tctltsh 다운로드에 대한 지침은 설치 를 방문하십시오.

  • 연결이 가능한지 확인하기 위해 tsh login 으로 로그인한 다음, 현재 자격 증명을 사용하여 tctl 명령어를 실행할 수 있는지 확인하십시오. 예를 들어:
    tsh login --proxy=teleport.example.com --user=email@example.com
    tctl status

    클러스터 teleport.example.com

    버전 17.0.0-dev

    CA 핀 sha256:abdc1245efgh5678abdc1245efgh5678abdc1245efgh5678abdc1245efgh5678

    클러스터에 연결할 수 있고 tctl status 명령어를 실행할 수 있다면, 현재 자격 증명을 사용하여 워크스테이션에서 후속 tctl 명령어를 실행할 수 있습니다.
    자신의 Teleport 클러스터를 호스팅하는 경우, Teleport Auth Service를 호스팅하는 컴퓨터에서 전체 권한으로 tctl 명령어를 실행할 수도 있습니다.
  • Okta API 토큰이 생성된 Okta 조직이 필요합니다. Okta API 토큰 생성하기

Okta API 토큰은 이를 생성한 사용자의 권한을 상속받습니다. 이러한 권한은 사용자 정의 관리자 역할을 사용하여 제어할 수 있으며, API 토큰을 생성할 사용자를 할당할 수 있습니다. Teleport Okta API 서비스를 위해 이 토큰을 관리할 전담 사용자를 만드는 것을 권장합니다.

사용자 정의 역할

사용자는 다음 최소 권한이 할당된 사용자 정의 관리자 역할을 가져야 합니다:

사용자 권한

  • 사용자 및 해당 세부정보 보기
  • 사용자의 그룹 구성원 자격 편집
  • 사용자의 애플리케이션 할당 편집

그룹 권한

  • 그룹 관리

애플리케이션 권한

  • 애플리케이션 추가 및 구성 (설치에만 필요)
  • 애플리케이션 및 해당 세부정보 보기
  • 애플리케이션의 사용자 할당 편집

그룹 구성원 관리 역할

사용자는 API 토큰을 생성할 수 있도록 "그룹 구성원 관리"(Group Membership Admin) 역할도 할당받아야 합니다. API 토큰이 생성된 후에는 이 역할을 해제할 수 있습니다.

리소스 세트 (선택 사항)

Okta 통합을 그룹 및 애플리케이션 리소스의 하위 집합으로 제한하려면, Okta 리소스 세트를 사용할 수 있습니다.

리소스 세트가 효과를 얻으려면 사용자는 "그룹 구성원 관리자" 역할이 해제되어야 하며, 리소스 세트는 앞서 생성된 사용자 정의 역할과 연관되어야 합니다.

Okta 리소스 세트를 사용할 때 따라야 할 규칙 세트가 있습니다.

애플리케이션 리소스 규칙:

  • 통합 등록 중 "모든 애플리케이션"을 선택해야 합니다. Teleport가 새 SAML 애플리케이션을 생성하거나 기존 애플리케이션을 검증하려고 시도하기 때문입니다.
  • 통합 등록이 완료된 후, 리소스 세트는 애플리케이션의 하위 집합으로 제한될 수 있지만, "Teleport $cluster" 애플리케이션이 포함되는지에 대한 특별한 주의가 필요합니다. 그렇지 않으면 Teleport가 사용자를 동기화할 수 없습니다.

그룹 리소스 규칙:

  • 그룹의 하위 집합을 선택한 경우, Teleport는 "모두"(Everyone) 내장 그룹을 "Teleport $cluster" 애플리케이션에 할당할 수 없습니다. 이 경우 "모두" 내장 그룹을 "Teleport $cluster" SAML 애플리케이션에 수동으로 할당해야 합니다. 그렇지 않으면 Teleport가 사용자를 동기화할 수 없습니다.

사용자 리소스 규칙:

  • 사용자 리소스는 리소스 세트에 의해 제한되어서는 안 됩니다. "모든 사용자"를 선택해야 합니다.

호스티드 Okta 통합 등록하기

호스티드 통합은 Teleport 인스턴스 내부에서 실행되며, 외부 프로세스로 실행되지 않습니다. 이를 통해 별도의 Teleport 노드를 프로비전하고 관리할 필요 없이 통합을 실행할 수 있으며, Teleport 자체가 내부적으로 통합의 설정, 구성 및 정리를 관리합니다.

이는 관리자에게 편리할 뿐만 아니라, 자가 호스팅 통합보다 더 높은 수준의 자동화를 가능하게 합니다.

Okta의 경우, 호스티드 모드에서 통합을 실행하면 SCIM을 통한 사용자(및 기타 리소스) 프로비저닝을 지원할 수 있습니다. SCIM은 시스템 간 리소스를 프로비전하기 위한 프로토콜이며, SCIM 서비스를 실행하면 Okta가 Teleport에서 사용자 계정을 프로비전하고 거의 실시간으로 사용자 프로필 변경 사항을 푸시할 수 있습니다. 이는 Okta 통합이 변경 사항을 끌어오는 것을 기다릴 필요가 없음을 의미합니다.

등록 과정

Okta 호스티드 통합 등록 시 다음 작업이 자동으로 수행됩니다:

  1. 상위 Okta 조직에 Teleport $clustername 이라는 Okta SAML 애플리케이션을 생성합니다.
  2. 새 SAML 애플리케이션에 Okta Everyone 그룹을 할당합니다.
  3. 새 SAML 애플리케이션에 대한 IdP 메타데이터를 다운로드합니다.
  4. Teleport 클러스터에 okta-integration 라는 새로운 SAML 인증 커넥터를 생성합니다.
  5. 새로운 Teleport $clustername Okta SAML 애플리케이션에 할당된 Okta 사용자로부터 사용자 풀을 가져오도록 Okta 통합을 구성합니다.
  6. Okta 사용자, 애플리케이션 및 그룹을 Teleport로 동기화하는 호스티드 Okta 통합을 시작합니다.

Teleport Identity가 활성화된 경우, 등록 과정은 Okta SAML 애플리케이션에 대한 SCIM 프로비저닝 활성화 과정을 안내합니다.

Note

okta-integration 이라는 SAML 커넥터가 이미 존재하는 경우, 등록 과정은 이 커넥터를 채택하고 가리키는 Okta SAML 애플리케이션을 사용하려고 시도합니다.

이 채택 과정은 SAML 커넥터가 15.0.0 이전의 Teleport 버전으로 생성되었거나 수동으로 생성된 경우 실패합니다. 이 경우, 최선의 방법은 기존 SAML 커넥터를 삭제하거나 이름을 변경하고 통합 등록이 새로운 커넥터를 생성하도록 하는 것입니다.

등록 방법

Teleport 웹 UI에 방문하여 화면 상단 메뉴 바에서 Access Management를 클릭합니다.

왼쪽 사이드바에서 Enroll New Integration을 클릭하여 "Enroll New Integration" 페이지로 이동합니다:

Okta 타일을 선택하면 Teleport가 다음과 같은 정보를 요청합니다.

  • Okta 조직 URL, 및
  • 위에 설명된 OKta API 토큰.

계속하려면 Connect를 클릭합니다.

초기 등록이 완료되면 Teleport Identity가 사용 가능하면, 등록 워크플로우가 SCIM 프로비저닝을 활성화하는 방법을 안내합니다.

액세스 목록 동기화 구성

Teleport Identity가 활성화된 경우, 등록 워크플로우는 사용자 그룹과 직접 애플리케이션 할당을 Access Lists로 동기화하는 방법을 안내합니다. 이는 Okta의 권한이 Teleport에서 적절하게 모델링되도록 보장하여 Teleport 사용자가 Okta 대시보드를 볼 때와 동일한 Okta 애플리케이션을 볼 수 있도록 합니다.

기본 소유자 구성

Okta Access List 동기화를 설정하는 첫 번째 단계는 기본 Access List 소유자를 정의하는 것입니다. 기본 소유자를 원하는 만큼 선택하거나, 시스템에 아직 존재하지 않는 경우 소유자를 수동으로 입력할 수 있습니다. 이러한 소유자는 나중에 변경할 수 있으며 Okta Access List 동기화 프로세스에 의해 덮어쓰이지 않습니다.

Okta 사용자 그룹을 Access Lists로 가져오기

기본 소유자를 구성한 후, 가져올 Okta 사용자 그룹을 사용자 정의할 수 있습니다. 기본적으로 모든 사용자 그룹이 가져옵니다. 더 많은 제어를 원하면 패널 오른쪽 상단의 "Import All User Groups" 옵션을 비활성화하고 그룹 이름에 대해 일치할 여러 필터를 구성할 수 있습니다. 필터 구문에 대한 더 많은 정보는 아래의 Import Filters 섹션을 참조하십시오.

Note

할당이 있는 Okta 사용자 그룹만 Access List로 가져옵니다. 할당이 없는 Okta 사용자 그룹은 할당이 있을 때까지 가져오지 않습니다. Access List에서 마지막 사용자가 제거되면, 다음 동기화 시 Teleport에서 Access List가 제거됩니다.

Okta 애플리케이션 할당을 Access Lists로 가져오기

Okta 사용자 그룹을 가져오는 것 외에도, Okta 내의 직접 애플리케이션 할당을 Access Lists로 가져올 수도 있습니다. 이는 사용자 그룹과 정확히 동일하게 작동합니다.

Note

할당이 있는 Okta 애플리케이션만 Access List로 가져옵니다. 할당이 없는 Okta 애플리케이션은 할당이 있을 때까지 가져오지 않습니다. Access List에서 마지막 사용자가 제거되면, 다음 동기화 시 Teleport에서 Access List가 제거됩니다.

가져오기 필터

필터는 glob 구문 및 regex 구문을 지원합니다. Glob 구문은 임의의 값을 나타내는 와일드카드가 포함된 문자열입니다. 예를 들어, "app"로 시작하고 "salesforce"로 끝나는 이름과 일치하는 glob는 app*salesforce 처럼 생깁니다.

필터 문자열이 ^로 시작하고 $로 끝나는 경우에는 원시 정규 표현식을 사용할 수 있습니다. 이는 Google RE2 정규 표현식 구문을 지원합니다.

필터가 추가되면 사용자 그룹 또는 애플리케이션 목록의 결과가 적용된 필터의 결과로 업데이트됩니다. 이를 통해 특정 시점에 무엇이 가져올지 확인할 수 있습니다.

SCIM 프로비저닝 구성

Teleport Identity가 활성화되면, 등록 워크플로우는 SCIM 구성 가이드를 보여줍니다. SCIM을 활성화하면 Okta가 사용자(및 기타 리소스) 업데이트를 거의 실시간으로 Teleport로 푸시할 수 있으며, Okta 통합이 동기화를 실행할 때까지 기다릴 필요가 없습니다.

구체적인 예로, SCIM을 사용하는 경우 Okta에서 사용자 비활성화가 몇 초 내에 Teleport에 반영되며, Okta 동기화 패스를 기다릴 때 몇 십 분이 걸릴 수 있는 것과는 다릅니다.

자세한 내용은 Okta 동기화 및 SCIM 가이드를 참조하십시오.

등록 "SCIM 설정" 가이드를 요약하자면:

SCIM 프로비저닝 활성화

  1. Okta 관리자 콘솔에서 애플리케이션으로 이동하여 Teleport에서 생성한 애플리케이션을 선택하거나 Teleport "SCIM 설정" 가이드에서 제공된 링크를 사용합니다.
  2. Okta 앱 설정 페이지에서 편집을 클릭하고, SCIM 프로비저닝 활성화 체크박스를 선택한 후 저장을 클릭합니다.

Okta SCIM 클라이언트 구성

  1. 프로비저닝 탭을 클릭한 후 편집을 클릭합니다.
  2. Teleport SCIM 설정 가이드에서 SCIM 커넥터 기본 URL을 복사하여 Okta 프로비저닝 페이지의 SCIM 커넥터 기본 URL 필드에 붙여넣습니다.
  3. Okta 사용자에 대한 고유 식별자 필드userName 으로 설정합니다.
  4. 지원되는 프로비저닝 작업에서 다음 체크박스를 선택합니다:
    1. 새 사용자 및 프로필 업데이트 가져오기
    2. 새 사용자 푸시
    3. 프로필 업데이트 푸시
  5. 인증 모드HTTP Header 로 설정합니다.
  6. Teleport SCIM 설정 가이드에서 인증 Bearer Token을 복사하여 Okta 프로비저닝 페이지의 Bearer Token 필드에 붙여넣습니다.
  7. 저장을 클릭합니다.

Okta-앱 프로비저닝 구성

  1. 프로비저닝 탭에 머물며 새로운 앱으로 전송 Okta 애플리케이션 설정 페이지로 이동하여 편집을 클릭합니다.
  2. 다음 체크박스를 확인합니다:
    1. 사용자 생성
    2. 사용자 속성 업데이트
    3. 사용자 비활성화
  3. 저장을 클릭합니다.

Okta 통합이 Teleport 리소스를 관리하는 방법에 대한 자세한 내용은 Okta 및 SCIM과의 동기화 가이드를 참조하십시오.

호스팅 Okta 통합 삭제

SAML 커넥터

등록 프로세스 중에 생성된 SAML 커넥터는 호스팅 Okta 통합이 삭제되더라도 삭제되지 않으며, Okta 통합이 다시 등록되면 자동으로 재사용됩니다.

SAML 커넥터를 영구적으로 삭제하려면, Teleport UI의 Auth Connectors 페이지로 이동하여 해당 커넥터를 삭제하십시오.

액세스 목록

Warning

호스팅 통합이 여전히 활성 상태라면, Okta 출처의 액세스 목록을 제거하면 조직의 사용자에게서 Okta 액세스가 중단될 수 있습니다. 액세스 목록을 정리할 때 주의하십시오!

호스팅 통합을 통해 가져온 모든 액세스 목록은 Teleport 관리자가 삭제할 때까지 유지됩니다. 즉, 호스팅 통합이 삭제되더라도 삭제되지 않습니다.

이들을 정리하는 가장 쉬운 방법은 tctl 을 사용하는 것입니다. 다음과 같은 배치 명령어는 시스템에서 Okta 출처의 모든 액세스 목록을 제거합니다:

tctl get access_lists --format json | jq '.[] | select(.metadata.labels["teleport.dev/origin"] == "okta") | .metadata.name' -r | xargs -I{} tctl rm "access_list/{}"

사용자

호스팅 통합을 통해 생성된 모든 Teleport 사용자 계정은 동기화 프로세스나 SCIM을 통해 생성된 경우, 호스팅 통합이 삭제될 때 삭제되지 않습니다.

호스팅 통합을 삭제할 때 이러한 사용자들을 정리하는 가장 쉬운 방법은 Teleport가 ID 공급자로 사용하는 Okta SAML 애플리케이션에서 모든 Okta 사용자의 할당을 해제하고, 동기화 프로세스와/또는 SCIM 프로비저닝이 해당 Teleport 계정을 삭제할 때까지 기다리는 것입니다. Teleport 계정이 자동으로 삭제되면 통합을 삭제할 수 있습니다.

Teleport 사용자 계정은 tctl 을 사용하여 수동으로 삭제할 수도 있습니다. 자세한 내용은 Teleport 로컬 사용자 가이드를 참조하십시오.

Note

tctl 로 삭제된 Teleport 계정은 다음 동기화에서 다시 생성되며, 업스트림 Okta 조직에서 할당 해제되거나 비활성화되지 않는 한 계속 생성됩니다.

Teleport 원문 보기