Infograb logo
Okta 및 SCIM와의 동기화

Okta 통합은 Okta 조직의 리소스를 가져오고 동기화합니다. 이 안내서는 이러한 Okta 리소스가 Teleport 클러스터 내에서 어떻게 표현되는지를 자세히 설명합니다.

동기화 및 SCIM

Teleport는 Teleport 리소스를 업스트림 Okta 조직과 동기화하기 위해 두 가지 보완적인 방법을 사용합니다:

  • Okta 통합 동기화 프로세스
  • SCIM을 통한 프로비저닝

전반적으로, 어떤 방법이 사용자 가져오기에 사용되었는지는 더 넓은 Teleport 시스템에 중요하지 않으며, 두 프로세스 모두 Teleport 내에서 동일한 리소스를 생성합니다.

사용자 프로비저닝을 보완하기 위해 Okta는 Okta 권한을 Access Lists로 모델링할 수 있으며, 이는 Okta의 애플리케이션 권한을 Teleport로 효과적으로 가져옵니다.

사용자

사용자 가져오기

동기화 중에 Okta 통합은 모든 자격 있는 Okta 사용자에 대해 Teleport 사용자 계정을 생성하고, 비활성화된 Okta 사용자의 Teleport 계정을 정리합니다. "자격 있는 Okta 사용자" 목록은 통합 구성에 따라 다릅니다.

Okta 통합이 특정 Okta 애플리케이션을 사용하도록 구성된 경우, Okta 통합은 해당 Okta 애플리케이션에 직접적으로 또는 그룹 멤버십을 통해 할당된 Okta 사용자를 "자격 있는 사용자"로 간주합니다.

사용할 Okta 애플리케이션이 제공되지 않으면, 모든 활성 Okta 조직 사용자가 "자격 있는" 것으로 간주됩니다.

Note

모든 호스팅 Okta 통합은 특정 Okta 애플리케이션으로 사용자 풀을 제한하도록 구성되어 있습니다.

통합 등록 프로세스는 새로운 SAML 인증 커넥터용 아이덴티티 공급자로 사용할 Okta SAML 애플리케이션을 생성합니다. 등록 프로세스는 Okta 통합이 동일한 애플리케이션을 사용하도록 자동으로 구성하여 Okta 관리자가 관리 및 보안을 위한 단일 포인트를 제공합니다.

Okta 프로필을 Teleport 사용자로

동기화 프로세스 또는 SCIM 프로비저닝에 의해 생성된 Teleport 사용자는 모두 업스트림 Okta 조직으로부터 사용자 이름을 상속받으며, okta-requester 의 기본 역할이 부여됩니다.

이 역할은 사용자가 Teleport에 로그인할 수 있도록 허용하지만, Teleport 리소스에 대한 기본 액세스는 부여하지 않습니다. Teleport 관리자는 Access Requests 및 Access Lists를 사용하여 사용자가 가져온 후 필요에 따라 Teleport 리소스에 대한 액세스를 부여할 수 있습니다.

속성

Okta 사용자/AppUser 프로필의 모든 비어 있지 않은 값은 Teleport 사용자 속성으로 변환됩니다. 예를 들어, 가져온 Okta 사용자는 다음과 같을 수 있습니다:

kind: user
metadata:
  name: hiro@enzos-pizza.com
  labels:
    okta/org: https://enzos-pizza.okta.com
    teleport.dev/origin: okta
roles:
  - okta-requester
spec:
  traits:
    okta/email:
      - hiro@enzos-pizza.com
    okta/firstName:
      - Hiro
    okta/lastName:
      - Protagonist
    okta/login:
      - hiro@enzos-pizza.com

Teleport 관리자는 이러한 속성을 Access Lists에서 조건으로 사용하여 Okta에서 파생된 Teleport 사용자에게 Teleport 리소스에 대한 액세스를 부여(또는 거부)할 수 있습니다.

사용자 삭제

다음 경우에 대해:

  1. 동기화 프로세스가 Okta 사용자가 비활성화되었거나 정지된 것을 감지한 경우 또는
  2. Okta 조직이 SCIM을 통해 계정을 명시적으로 비활성화한 경우,

Okta 통합은 즉시 해당 Teleport 계정을 삭제하고 임시 Teleport 사용자 잠금을 생성합니다. 사용자 잠금은 다음과 같은 조치를 취합니다:

  • 모든 활성 Teleport 세션을 종료하고,
  • 비활성화된 사용자가 Teleport 계정이 삭제되기 전에 발급된 자격 증명으로 Teleport 리소스에 액세스하지 못하도록 합니다.

사용자 잠금은 최대 자격 증명 수명 + 약간의 안전 여유를 두고 만료됩니다.

Warning

정지된 Okta 사용자는 Teleport에 의해 잠기지 않습니다.

사용자가 Okta에서 정지되면 Okta는 해당 정지를 Teleport에 전달하지 않으므로 Teleport는 해당 사용자를 자동으로 잠그거나 제거하지 않습니다.

사용자를 비활성화하거나 Okta SAML 애플리케이션에서 할당 해제하여 Teleport에서 상태가 업데이트되도록 해야 합니다.

접근 목록

Teleport 내에서 Okta 권한 모델링

Okta는 Teleport에 명확하게 매핑되지 않는 자체 권한 시스템을 가지고 있습니다. 여기에는 Okta 그룹에 의해 부여된 권한과 Okta 내 개별 애플리케이션에 사용자 할당이 포함됩니다. Teleport 내에서 이를 모델링하려면 관리자가 다양한 Okta 애플리케이션과 그룹에 부착할 라벨링 시스템을 신중하게 구성하고 함께 사용할 역할 세트를 만들어야 합니다.

Okta 서비스의 새로운 접근 목록 동기화 기능으로 이 작업이 자동으로 수행됩니다. 이 기능의 작동 방식에 대한 세부사항을 논의하겠습니다.

Okta 그룹 및 애플리케이션에서 접근 목록 동기화

Okta 접근 목록 동기화기는 구성 가능한 필터와 일치하는 구성원 또는 개별 할당이 있는 Okta 그룹 또는 애플리케이션을 찾습니다. 할당이 없는 그룹 또는 애플리케이션에 대해서는 접근 목록이 생성되지 않습니다.

동기화기는 일치하는 각 그룹 또는 애플리케이션에 대해 다음 리소스를 생성합니다:

  • 그룹/애플리케이션에 대한 접근 권한을 부여하는 구성원 역할.
  • 그룹/애플리케이션에 대한 접근 권한 검토 능력을 부여하는 소유자 역할.
  • 그룹/애플리케이션에 대한 구성원 자격을 나타내는 접근 목록.
  • 접근 목록의 구성원.

접근 목록 동기화는 Okta 그룹과 Okta 애플리케이션이 Teleport 리소스로 동기화될 때까지 기다리므로, 시작 시 즉시 동기화되지 않을 수 있다는 점에 유의해야 합니다.

중첩 접근 목록 처리

Teleport에서 Okta로의 동기화

Teleport는 접근 목록이 다른 접근 목록을 구성원으로 포함할 수 있는 중첩 접근 목록을 지원하며, 계층 구조를 생성합니다. 그러나 Okta는 중첩 그룹을 지원하지 않습니다. 이러한 제한을 수용하기 위해, 동기화기는 Teleport에서 Okta로 동기화할 때 중첩 접근 목록을 평탄화합니다.

모든 중첩 수준의 접근 목록 구성원은 Okta로 동기화될 때 단일 평면 구성원 목록으로 집계됩니다. 이렇게 하면 Teleport 계층 구조에 따라 접근 권한을 가져야 하는 모든 사용자가 해당 Okta 그룹 또는 애플리케이션에 포함됩니다.

:

  • Teleport 구조:
    • 접근 목록 A:
      • 구성원: User1
      • 중첩 구성원: 접근 목록 B
    • 접근 목록 B:
      • 구성원: User2, User3
  • Okta 표현:
    • 접근 목록 A에 대한 그룹/애플리케이션:
      • 구성원: User1, User2, User3

Teleport 계층 구조가 평탄화됨으로써 모든 사용자가 Okta의 루트 수준 접근 목록과 연관된 권한을 받을 수 있습니다.

Okta에서 Teleport로의 동기화

Okta에서 Teleport로 동기화할 때, 동기화기는 Okta의 평탄화된 구조를 Teleport 계층 구조로 다시 매핑하려고 시도합니다:

  • Teleport 계층 구조와 비교: Okta에서의 평탄화된 구성원 목록은 Teleport의 기존 접근 목록 계층 구조와 비교됩니다.
  • 새 구성원 추가:
    • 새 사용자: Teleport 접근 목록 계층 구조에 없는 새로운 사용자가 Okta에 추가되면, 이러한 사용자는 Teleport의 루트 수준 접근 목록에 구성원으로 추가됩니다.
    • 계층 유지: 이러한 접근 방식은 Teleport 내에서 계층 구조를 유지하면서 Okta에서 이루어진 접근 권한 변경이 적절히 반영되도록 합니다.
  • :
    • 접근 목록 A에 대한 Okta 그룹/애플리케이션:
      • 구성원: User1, User2, User3, User4 (User4는 Okta에 새로 추가된 구성원)
    • Teleport 업데이트:
      • 접근 목록 A:
        • 구성원: User1, User4
        • 중첩 구성원: 접근 목록 B
      • 접근 목록 B:
        • 구성원: User2, User3

액세스 목록 삭제

Okta에서 동기화된 액세스 목록은 Okta에 할당된 멤버가 없거나 Okta에서 삭제될 때 자동으로 삭제됩니다.

Warning

관리자가 액세스 목록을 삭제할 수 있지만, 이는 Okta 통합이 제거되고 액세스 목록 동기화가 비활성화된 후에만 수행되어야 합니다. 이렇게 되면 대상이 되는 Okta 그룹 또는 애플리케이션에서 모든 사용자가 제거될 수 있습니다!

동기화된 액세스 목록 작업하기

액세스 목록을 처음 동기화할 때, 액세스 목록의 소유자는 초기 Okta 통합 등록 중에 구성된 기본 소유자로 설정되며, 초기 검토 날짜는 구성된 날짜로부터 6개월 후로 설정됩니다. 이러한 필드는 수정 가능하며, 소유자 및 멤버십 요구 사항도 수정할 수 있습니다. 그러나 권한은 변경할 수 없으며, 이는 Okta 액세스 목록 동기화기의 소속입니다.

Okta로 동기화된 액세스 목록의 소유자는 실행 간에 보존됩니다.

Warning

Okta로 동기화된 액세스 목록에서 멤버를 제거하면, 사용자는 Okta에서 Okta 그룹 또는 Okta 애플리케이션에서 제거됩니다. 이는 사용자에게 할당을 전파하는 다른 할당이 없는 경우에 해당합니다. 이러한 방식으로 Teleport는 Okta 멤버십의 진실한 출처가 됩니다. 다른 자동화된 워크플로 또는 통합을 Okta 환경에 추가할 때 이를 고려하시기 바랍니다.

Teleport 원문 보기