Teleport는 사용자 프로필, 그룹 및 애플리케이션과 같은 Okta 조직의 리소스를 가져오고 액세스를 부여할 수 있습니다. Teleport는 Okta 사용자를 기반으로 사용자 계정을 프로비저닝하며, Okta 애플리케이션은 Teleport의 애플리케이션 액세스 UI를 통해 액세스할 수 있고, 이러한 애플리케이션 및 사용자 그룹에 대한 액세스는 Teleport의 RBAC 및 액세스 요청을 통해 관리될 수 있습니다.
이 가이드는 Okta 서비스를 Teleport 호스팅 통합으로 설정하는 데 도움이 됩니다.
Okta 통합을 활성화하면 Teleport가 Okta의 애플리케이션 및 그룹 할당에 대한 소유권을 가져오며, Teleport RBAC 구성에 따라 Okta 내에서 변경할 수 있습니다.
특히, Okta 앱에 대한 액세스는 Teleport 역할의 app_labels에 의해 관리되므로, 통합을 활성화하기 전에 사용자가 와일드카드 앱 레이블이 있는 역할을 가지고 있지 않은지 확인해야 합니다. 그렇지 않으면 해당 사용자가 모든 Okta 애플리케이션에 할당될 수 있습니다.
통합의 범위를 제한하려면 Okta 리소스 세트를 사용하여 Okta 액세스 토큰을 일부 앱 및 그룹으로 제약할 수 있습니다.
Teleport는 선언적 상태 접근 방식을 사용하여 Okta 애플리케이션 그룹 할당을 관리합니다. 할당이 Teleport를 통해 생성되고 그 후 Okta UI를 통해 제거되면, Teleport는 재평가를 수행하고 잠재적으로 Okta UI 변경 사항을 덮어쓰게 되어 Teleport의 RBAC 구성에 의해 정의된 상태와 일치하도록 합니다.
필수 조건
-
실행 중인 Teleport 클러스터. Teleport를 시작하려면 가입하기 무료 체험판을 이용해 보세요.
-
tctl
관리 도구 및tsh
클라이언트 도구 버전 >= 16.2.0.tctl
및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
명령어를 실행할 수도 있습니다. - Okta API 토큰이 생성된 Okta 조직이 필요합니다. Okta API 토큰 생성에서 확인하세요.
Okta API 토큰은 이들을 생성한 사용자의 권한을 상속받습니다. 이러한 권한은 맞춤형 관리자 역할을 사용하여 제어할 수 있으며, 이를 할당받은 사용자가 API 토큰을 생성할 수 있습니다. 우리는 이 토큰을 관리하기 위해 Teleport Okta API 서비스 전용 사용자를 생성하는 것을 권장합니다.
필요한 권한은 다음과 같습니다:
사용자 권한
- 사용자 및 사용자 세부정보 보기
- 사용자 그룹 구성원 자격 수정
- 사용자 애플리케이션 할당 수정
그룹 권한
- 그룹 및 그룹 세부정보 보기
- 그룹 구성원 자격 관리
애플리케이션 권한
- 애플리케이션 추가 및 구성(설치에만 필요)
- 애플리케이션 및 애플리케이션 세부정보 보기
- 애플리케이션의 사용자 할당 수정
추가로, 대상 사용자와 관련된 리소스 세트는 사용자, 애플리케이션 및 그룹에 대해 제한 없는 접근 권한을 가져야 합니다.
여기서 주의할 점은 API 토큰 생성 권한을 사용자 정의 역할에 할당하는 것이 불가능하다는 것입니다. 그러나 Okta의 기본 제공 역할인 "그룹 구성원 자격 관리자"는 API 토큰을 생성할 수 있는 권한을 가지고 있습니다. 기본 제공 역할에 대한 자세한 내용은 여기에서 확인하십시오.
호스팅된 Okta 통합 등록하기
호스팅 통합은 외부 프로세스로가 아니라 Teleport 인스턴스 내에서 실행됩니다. 이를 통해 별도의 Teleport 노드를 직접 프로비저닝하고 관리할 필요 없이 통합을 실행할 수 있습니다. Teleport 자체가 통합의 설정, 구성 및 해체를 내부적으로 관리합니다.
이는 관리자에게 편리할 뿐만 아니라 자체 호스팅 통합보다 더 높은 수준의 자동화를 제공합니다.
Okta의 경우 호스팅 모드에서 통합을 실행하면 SCIM을 통해 사용자(및 기타 리소스) 프로비저닝을 지원할 수 있습니다. SCIM은 시스템 전반에 걸쳐 리소스를 프로비저닝하는 프로토콜로, SCIM 서비스를 실행하면 Okta가 Teleport에서 사용자 계정을 프로비저닝하고 거의 실시간으로 사용자 프로필에 대한 변경 사항을 푸시할 수 있습니다. Okta 통합이 변경 사항을 가져오는 것을 기다릴 필요가 없습니다.
등록 과정
Okta 호스팅 통합에 등록하면 다음 작업이 자동으로 수행됩니다.
- 상위 Okta 조직에서
Teleport $clustername
이라는 Okta SAML 애플리케이션을 생성합니다. - 새로운 SAML 애플리케이션에 Okta
Everyone
그룹을 할당합니다. - 새로운 SAML 애플리케이션에 대한 IdP 메타데이터를 다운로드합니다.
- Teleport 클러스터에
okta-integration
라는 새로운 SAML 인증 커넥터를 생성합니다. - 새로운
Teleport $clustername
Okta SAML 애플리케이션에 할당된 Okta 사용자로부터 사용자 풀을 끌어올 수 있도록 Okta 통합을 구성합니다. - Okta 사용자, 애플리케이션 및 그룹을 Teleport로 동기화하는 호스팅 Okta 통합을 시작합니다.
Teleport Identity가 활성화된 경우, 등록 과정은 또한 Okta SAML 애플리케이션에 대한 SCIM 프로비저닝을 활성화하는 과정으로 안내합니다.
okta-integration
이라는 SAML 커넥터가 이미 존재하는 경우, 등록 과정은 이 커넥터를 채택하고
포인터가 가리키는 Okta SAML 애플리케이션을 사용하려고 합니다.
새로운 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가 활성화된 경우 등록 워크플로우는 사용자 그룹 및 직접 애플리케이션 할당을 액세스 목록으로 동기화하는 방법을 구성하도록 안내합니다. 이것은 Teleport에서 Okta의 권한이 올바르게 모델링되도록 하여 Teleport 사용자가 Okta 대시보드를 조회할 때와 동일한 Okta 애플리케이션을 볼 수 있도록 합니다.
기본 소유자 구성
Okta 액세스 목록 동기화를 설정하기 위한 첫 번째 단계는 기본 액세스 목록 소유자를 정의하는 것입니다. 사용자는 기본 소유자를 선택하거나 시스템에 아직 존재하지 않는 경우 소유자를 수동으로 입력할 수 있습니다. 이 소유자는 나중에 변경될 수 있으며 Okta 액세스 목록 동기화 프로세스에 의해 덮어쓰이지 않습니다.
Okta 사용자 그룹을 액세스 목록으로 가져오기
기본 소유자를 구성한 후, 어떤 Okta 사용자 그룹을 가져올지를 사용자화할 수 있습니다. 기본적으로 모든 사용자 그룹이 가져옵니다. 더 많은 제어가 필요하면 패널 오른쪽 상단에서 "Import All User Groups" 옵션을 비활성화하고, 그룹 이름에 대해 여러 필터를 구성할 수 있습니다. 필터 구문에 대한 자세한 내용은 아래의 Import Filters 섹션을 참조하세요.
할당이 있는 Okta 사용자 그룹만 액세스 목록으로 가져올 수 있습니다. Okta 사용자 그룹에 할당이 없는 경우 할당이 생기기 전까지는 가져올 수 없습니다. 모든 사용자가 액세스 목록에서 제거되면, 액세스 목록은 다음 동기화에서 Teleport에서 제거됩니다.
Okta 애플리케이션 할당을 액세스 목록으로 가져오기
Okta 사용자 그룹을 가져오는 것과는 별도로, Okta 내에서 직접 애플리케이션 할당을 액세스 목록으로 가져올 수도 있습니다. 이것은 사용자 그룹과 정확히 동일하게 동작합니다.
할당이 있는 Okta 애플리케이션만 액세스 목록으로 가져올 수 있습니다. Okta 애플리케이션에 할당이 없는 경우 할당이 생기기 전까지는 가져올 수 없습니다. 모든 사용자가 액세스 목록에서 제거되면, 액세스 목록은 다음 동기화에서 Teleport에서 제거됩니다.
가져오기 필터
필터는 글로브 구문과 정규식 구문을 지원합니다.
글로브 구문은 와일드카드가 있는 문자열로, 와일드카드가 가는 곳에 임의의 값을 나타냅니다.
예를 들어, "app"의 접두사와 "salesforce"의 접미사가 있는 이름과 일치하는 글로브는 app*salesforce
와 같이 보일 것입니다.
정규 표현식을 사용할 수도 있으며, 필터 문자열이 ^
로 시작하고 $
로 끝나도록 하여 사용 가능합니다.
이는 Google RE2 정규 표현식 구문을 지원합니다.
필터가 추가되면 사용자 그룹 또는 애플리케이션 목록의 결과가 필터 결과로 업데이트됩니다. 이를 통해 특정 시점에 가져올 내용이 무엇인지 확인할 수 있습니다.
SCIM 프로비저닝 구성
Teleport Identity가 활성화된 경우 등록 워크플로우는 이제 SCIM 구성 안내를 보여줍니다. SCIM을 활성화하면 Okta가 Teleport에 사용자(및 기타 리소스) 업데이트를 거의 실시간으로 푸시할 수 있어, Okta 통합이 동기화를 실행할 때까지 기다릴 필요가 없습니다.
예를 들어, SCIM을 사용할 경우 Okta에서 사용자가 비활성화되면 Teleport에는 몇 초 내에 반영됩니다. 반면 Okta 동기화 패스를 기다릴 경우 수십 분이 걸릴 수 있습니다.
자세한 내용은 Okta 동기화 및 SCIM 가이드를 참조하세요.
등록 "SCIM 설정" 가이드를 요약하면:
SCIM 프로비저닝 활성화
- Okta 관리 콘솔에서 Applications로 이동하여 Teleport에 의해 생성된 애플리케이션을 선택하거나, Teleport "SCIM 설정" 가이드에서 제공한 링크를 사용합니다.
- Okta App Settings 페이지에서 Edit를 클릭하고, Enable SCIM provisioning 상자를 체크한 후 Save를 클릭합니다.
Okta SCIM 클라이언트 구성
- 새로운 Provisioning 탭을 클릭한 후 Edit를 클릭합니다.
- Teleport SCIM 설정 가이드에서 SCIM 커넥터 기본 URL을 복사하고 Okta 프로비저닝 페이지의 SCIM 커넥터 기본 URL 필드에 붙여넣습니다.
- Okta 사용자에 대한 고유 식별자 필드를
userName
으로 설정합니다. - 지원되는 프로비저닝 작업 아래에서 다음 상자를 체크합니다:
- 새 사용자 및 프로필 업데이트 가져오기
- 새 사용자 푸시
- 프로필 업데이트 푸시
- 인증 모드를
HTTP Header
로 설정합니다. - Teleport SCIM 설정 가이드에서 복사한 인증 Bearer Token을 Okta 프로비저닝 페이지의 Bearer Token 필드에 붙여넣습니다.
- Save를 클릭합니다.
Okta에서 애플리케이션 프로비저닝 구성
- Provisioning 탭에서 새로운 To App Okta 애플리케이션 설정 페이지로 이동한 후 Edit를 클릭합니다.
- 다음 체크박스를 확인합니다:
- 사용자 생성
- 사용자 속성 업데이트
- 사용자 비활성화
- Save를 클릭합니다.
Okta 통합이 Teleport 리소스를 어떻게 관리하는지에 대한 자세한 내용은 Okta 및 SCIM 동기화 가이드를 참조하세요.
호스팅된 Okta 통합 삭제하기
SAML 커넥터
등록 과정에서 생성된 SAML 커넥터는 호스팅 Okta 통합이 삭제될 때 삭제되지 않으며, Okta 통합이 다시 등록될 경우 자동으로 재사용됩니다.
SAML 커넥터를 영구적으로 삭제하려면 Teleport UI의 Auth Connectors
페이지로 이동하여
그곳에서 삭제해야 합니다.
액세스 목록
호스팅 통합이 아직 활성화되어 있는 경우, 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을 통해 삭제될 때 호스팅 통합이 삭제되어도 삭제되지 않습니다.
호스팅 통합을 삭제할 때 이러한 사용자 계정을 정리하는 가장 쉬운 방법은 Okta가 정체성 공급자로 사용하는 Okta SAML 애플리케이션에서 모든 Okta 사용자의 할당을 제거하고 동기화 프로세스 및 SCIM 프로비저닝이 해당 Teleport 계정을 삭제할 때까지 기다리는 것입니다. Teleport 계정이 자동으로 삭제된 후에 통합을 삭제할 수 있습니다.
Teleport 사용자 계정은 tctl
을 사용하여 수동으로 삭제할 수도 있습니다.
자세한 내용은 Teleport 지역 사용자 가이드를 참조하세요.
tctl
로 삭제된 Teleport 계정은 다음 동기화 패스에서 다시 생성됩니다.
단, 해당 계정은 상위 Okta 조직에서도 비할당되거나 비활성화되어 있지 않아야 합니다.