InfoGrab Docs

Okta 사용자 동기화

요약

Okta 사용자 동기화는 지속적인 조정 루프를 통해 Okta 사용자를 Teleport 사용자로 가져옵니다. SCIM 통합과 달리, 사용자 동기화는 Teleport 측에서 시작되므로 Okta에 대한 API 접근이 필요합니다.

Okta 사용자 동기화는 지속적인 조정 루프를 통해 Okta 사용자를 Teleport 사용자로 가져옵니다. 사용자 동기화는 Teleport SCIM 통합과 함께 작동합니다.

SCIM 통합과 달리, 사용자 동기화는 Teleport 측에서 시작되므로 Okta에 대한 API 접근이 필요합니다. 또한 SCIM보다 느립니다. 그러나 SCIM이 활성화되기 전에 구성된 Okta 사용자를 가져오고, SCIM 요청이 Teleport 클러스터에 도달하지 않을 경우 변경 사항을 캡처하며, 공용 인터넷에서 접근할 수 없는 Teleport 클러스터에서도 작동합니다. 사용자 동기화는 애플리케이션 및 그룹 동기화에 필요합니다.

이 가이드는 가이드 Okta 통합 등록 흐름으로 Okta 사용자 동기화를 설정하는 방법을 보여줍니다.

사전 조건#

  • A running Teleport Enterprise (v17.3.0 or higher) cluster. If you want to get started with Teleport, sign up for a free trial or set up a demo environment.

  • The tctl and tsh clients.

    Installing `tctl` and `tsh` clients
    1. Determine the version of your Teleport cluster. The tctl and tsh clients must be at most one major version behind your Teleport cluster version. Send a GET request to the Proxy Service at /v1/webapi/find and use a JSON query tool to obtain your cluster version. Replace with the web address of your Teleport Proxy Service:

      $ TELEPORT_DOMAIN=
      $ TELEPORT_VERSION="$(curl -s https://$TELEPORT_DOMAIN/v1/webapi/find | jq -r '.server_version')"
      
    2. Follow the instructions for your platform to install tctl and tsh clients:

  • Okta 인증 커넥터.

    Warning

가이드 사용자 동기화 통합 흐름을 따르기 전에 가이드 Okta 싱글 사인온 흐름을 완료해야 합니다.

To check that you can connect to your Teleport cluster, sign in with tsh login, then verify that you can run tctl commands using your current credentials.

For example, run the following command, assigning to the domain name of the Teleport Proxy Service in your cluster and to your Teleport username:

$ tsh login --proxy= --user=
$ tctl status
# Cluster  (=teleport.url=)
# Version  (=teleport.version=)
# CA pin   (=presets.ca_pin=)

If you can connect to the cluster and run the tctl status command, you can use your current credentials to run subsequent tctl commands from your workstation. If you host your own Teleport cluster, you can also run tctl commands on the computer that hosts the Teleport Auth Service for full permissions.

Okta 통합을 활성화하면 Teleport가 Okta에서 앱 및 그룹 할당에 대한 소유권을 갖게 되며 Teleport RBAC 구성에 따라 Okta 내에서 변경을 수행할 수 있습니다. 통합 범위를 제한하려면 다음을 확인하세요:

1단계/3단계. Okta API Services 앱 만들기#

Okta API Services 앱은 Teleport가 Okta API에 접근하기 위한 자격 증명을 제공합니다. 이 앱은 Okta 사용자 정의 관리자 역할Okta 리소스 세트가 할당되어 Okta 조직 리소스에 대한 Teleport 접근을 제한합니다.

사용자 정의 관리자 역할로 앱 만들기#

  1. Okta API Services 앱을 만듭니다. 기본 탐색 메뉴에서 Applications -> Applications를 선택하고 Create App Integration을 클릭하세요. API Services를 선택한 다음 Next를 클릭합니다.

    Create Okta API app

  2. 앱에 대한 관리자 역할을 만듭니다. Okta API Services 앱은 Okta 리소스에 대한 접근 권한을 제공하기 위해 관리자 역할을 할당해야 합니다. 기본 탐색 메뉴에서 Security -> Administrators를 선택한 다음 Roles 탭으로 이동하여 Create new role을 클릭하세요:

    Create new Okta admin role

  3. 역할 이름과 선택적으로 설명을 입력하고 다음 권한을 선택하세요:

    사용자

    • 사용자 및 세부 정보 보기
    • 사용자의 그룹 멤버십 편집
    • 사용자의 애플리케이션 할당 편집

    그룹

    • 그룹 및 세부 정보 보기
    • 그룹 멤버십 관리

    애플리케이션

    • 애플리케이션 및 세부 정보 보기
    • 애플리케이션 사용자 할당 편집
  4. 마지막으로 Save role을 클릭합니다.

앱에 대한 리소스 세트 만들기#

이전 섹션에서 만든 사용자 정의 관리자 역할을 할당하는 데 필요한 Okta 리소스 세트를 만듭니다.

  1. Security -> Administrators로 이동한 다음 Resources 탭으로 이동하여 Create new resource set을 클릭합니다.

  2. + Add Resource를 클릭하여 Users, Groups, Applications 3개의 리소스 유형을 추가합니다.

    Create new Okta resource set

    세트의 리소스를 조정하여 Okta 리소스에 대한 Teleport의 접근을 제한할 수 있습니다. 사용자 동기화 통합의 사전 조건으로 만든 Okta SAML 2.0 애플리케이션을 포함해야 합니다.

  3. 리소스를 설정하고 이름과 선택적 설명을 입력한 후 Create를 클릭하고 진행합니다.

앱 권한 구성#

  1. Proof of possession 비활성화. Teleport는 Okta API Services 앱에 대한 OAuth 인증을 사용할 때 DPoP를 지원하지 않습니다.

    DPoP를 비활성화하려면 General 탭에서 General Settings 섹션으로 스크롤한 다음 섹션 오른쪽 상단의 Edit를 클릭하세요. 그런 다음 "Require Demonstrating Proof of Possession (DPoP) header in token requests" 체크박스의 선택을 취소하고 Save를 클릭합니다.

    Create Okta API app

  2. Okta API 범위 설정. Okta API Scopes 탭에서 다음 범위를 부여하세요:

    • okta.apps.read
    • okta.apps.manage
    • okta.groups.read
    • okta.groups.manage
    • okta.users.read
    • okta.users.manage

    Okta API scopes setup

  3. 앱에 관리자 역할 할당. Admin roles로 이동하여 Edit assignments를 클릭합니다.

    Create Okta API app

  4. 이전에 만든 사용자 정의 관리자 역할과 리소스 세트를 선택하고 Save changes를 클릭합니다.

2단계/3단계. Teleport JWT를 신뢰하도록 앱 구성#

Teleport가 Okta에 접근할 수 있도록 하려면, 이전 단계에서 만든 Okta API Services 앱이 Teleport에서 발급한 JWT 토큰을 검증할 수 있어야 합니다. 이를 위해 앱에 Okta용 Teleport 공개 키를 구성합니다.

절차는 Teleport 클러스터가 공용 인터넷을 통해 접근 가능한지 여부에 따라 약간 다릅니다:

  1. 통합 등록 화면의 Step 2에 표시된 JWKS URL을 복사합니다.

  2. Okta 관리 UI의 Applications -> Applications에서 Okta API Services 앱을 찾습니다. 앱 설정의 General 탭에서 Client Credentials 섹션 오른쪽 상단의 Edit를 클릭하고 Client authentication을 "Public key / Private key"로 변경합니다.

  3. 같은 섹션의 PUBLIC KEYS 하위 섹션에서 "Use a URL to fetch keys dynamically"를 선택하고 Okta용 Teleport JWKS URL을 붙여넣습니다. Save를 클릭합니다.

    Okta API app public key for public
cluster

  1. 통합 등록 화면의 Step 2에서 If your cluster is private를 클릭합니다. 클러스터의 공개 키를 포함하는 JSON 문서가 표시됩니다.

  2. 공개 키 JSON을 복사합니다.

  3. Okta 관리 UI에서 Applications -> Applications로 이동합니다. Okta API Services 앱을 찾습니다. 앱 설정의 General 탭에서 Client Credentials 섹션 오른쪽 상단의 Edit를 클릭하고 Client authentication을 "Public key / Private key"로 변경합니다.

  4. PUBLIC KEYS 하위 섹션에서 "Save keys in Okta"를 선택하고 Add key를 클릭합니다.

  5. 공개 키 JSON을 붙여넣고 Done을 클릭합니다.

  6. 이전 화면에서 Save를 클릭합니다. Created 열의 "Invalid DateTime" 메시지는 무시하세요. Save를 클릭하면 이 값이 유효한 날짜가 됩니다.

    Okta API app - private cluster pub key #3

3단계/3단계. 클라이언트 ID 제공#

  1. Okta 관리 UI의 Applications -> Applications에서 Okta API Services 앱을 찾습니다. 앱 설정의 General 탭에서 클라이언트 ID를 찾을 수 있습니다.

    Okta API app - client ID

  2. App Sync 등록 화면에 클라이언트 ID를 붙여넣고 Update를 클릭합니다.

    Okta Enrollment: User sync - Step 3 client
ID

  3. Update를 클릭하여 사용자 동기화 구성을 완료합니다.

사용자 가져오기#

동기화 중에 Okta 통합은 Okta 통합을 등록하는 데 사용된 Teleport 인증 커넥터의 Okta SAML 앱에 할당된 모든 사용자에 대해 Teleport 사용자 계정을 만듭니다.

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

okta-requester 역할을 사용하면 사용자가 Teleport에 로그인할 수 있지만 Teleport 리소스에 대한 기본 접근 권한은 부여되지 않습니다. Teleport 관리자는 사용자가 가져온 후 접근 요청 및 접근 목록을 사용하여 적절히 Teleport 리소스에 대한 접근 권한을 부여할 수 있습니다.

사용자 특성#

Okta 사용자/앱 사용자 프로필의 모든 비어 있지 않은 값은 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 관리자는 이러한 특성을 접근 목록의 조건으로 사용하여 Okta에서 파생된 Teleport 사용자에게 Teleport 리소스에 대한 접근 권한을 부여(또는 거부)할 수 있습니다.

사용자 삭제#

다음과 같은 경우:

  1. 동기화 프로세스가 Okta 사용자가 비활성화, 삭제 또는 Okta 앱에서 제거되었음을 감지하거나,
  2. Okta 조직이 SCIM을 통해 계정을 명시적으로 비활성화하면,

Okta 통합은 해당 Teleport 계정을 즉시 삭제하고 임시 Teleport 사용자 잠금을 만듭니다. 사용자 잠금은:

사용자 잠금은 최대 자격 증명 유효 기간에 약간의 안전 마진을 더한 후에 만료됩니다.

Warning

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

사용자가 Okta에서 일시 정지되면, Okta는 Teleport에 일시 정지를 알리지 않으므로 Teleport는 해당 사용자를 자동으로 잠그고 제거하지 않습니다.

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

다음 단계#

Okta SCIM 통합을 위한 가이드 등록 흐름을 완료한 후 Okta 앱 및 그룹 동기화 통합으로 진행할 수 있습니다.

Okta 사용자 동기화

원문 보기
요약

Okta 사용자 동기화는 지속적인 조정 루프를 통해 Okta 사용자를 Teleport 사용자로 가져옵니다. SCIM 통합과 달리, 사용자 동기화는 Teleport 측에서 시작되므로 Okta에 대한 API 접근이 필요합니다.

Okta 사용자 동기화는 지속적인 조정 루프를 통해 Okta 사용자를 Teleport 사용자로 가져옵니다. 사용자 동기화는 Teleport SCIM 통합과 함께 작동합니다.

SCIM 통합과 달리, 사용자 동기화는 Teleport 측에서 시작되므로 Okta에 대한 API 접근이 필요합니다. 또한 SCIM보다 느립니다. 그러나 SCIM이 활성화되기 전에 구성된 Okta 사용자를 가져오고, SCIM 요청이 Teleport 클러스터에 도달하지 않을 경우 변경 사항을 캡처하며, 공용 인터넷에서 접근할 수 없는 Teleport 클러스터에서도 작동합니다. 사용자 동기화는 애플리케이션 및 그룹 동기화에 필요합니다.

이 가이드는 가이드 Okta 통합 등록 흐름으로 Okta 사용자 동기화를 설정하는 방법을 보여줍니다.

사전 조건#

  • A running Teleport Enterprise (v17.3.0 or higher) cluster. If you want to get started with Teleport, sign up for a free trial or set up a demo environment.

  • The tctl and tsh clients.

    Installing `tctl` and `tsh` clients
    1. Determine the version of your Teleport cluster. The tctl and tsh clients must be at most one major version behind your Teleport cluster version. Send a GET request to the Proxy Service at /v1/webapi/find and use a JSON query tool to obtain your cluster version. Replace with the web address of your Teleport Proxy Service:

      $ TELEPORT_DOMAIN=
      $ TELEPORT_VERSION="$(curl -s https://$TELEPORT_DOMAIN/v1/webapi/find | jq -r '.server_version')"
      
    2. Follow the instructions for your platform to install tctl and tsh clients:

  • Okta 인증 커넥터.

    Warning

가이드 사용자 동기화 통합 흐름을 따르기 전에 가이드 Okta 싱글 사인온 흐름을 완료해야 합니다.

To check that you can connect to your Teleport cluster, sign in with tsh login, then verify that you can run tctl commands using your current credentials.

For example, run the following command, assigning to the domain name of the Teleport Proxy Service in your cluster and to your Teleport username:

$ tsh login --proxy= --user=
$ tctl status
# Cluster  (=teleport.url=)
# Version  (=teleport.version=)
# CA pin   (=presets.ca_pin=)

If you can connect to the cluster and run the tctl status command, you can use your current credentials to run subsequent tctl commands from your workstation. If you host your own Teleport cluster, you can also run tctl commands on the computer that hosts the Teleport Auth Service for full permissions.

Okta 통합을 활성화하면 Teleport가 Okta에서 앱 및 그룹 할당에 대한 소유권을 갖게 되며 Teleport RBAC 구성에 따라 Okta 내에서 변경을 수행할 수 있습니다. 통합 범위를 제한하려면 다음을 확인하세요:

1단계/3단계. Okta API Services 앱 만들기#

Okta API Services 앱은 Teleport가 Okta API에 접근하기 위한 자격 증명을 제공합니다. 이 앱은 Okta 사용자 정의 관리자 역할Okta 리소스 세트가 할당되어 Okta 조직 리소스에 대한 Teleport 접근을 제한합니다.

사용자 정의 관리자 역할로 앱 만들기#

  1. Okta API Services 앱을 만듭니다. 기본 탐색 메뉴에서 Applications -> Applications를 선택하고 Create App Integration을 클릭하세요. API Services를 선택한 다음 Next를 클릭합니다.

    Create Okta API app

  2. 앱에 대한 관리자 역할을 만듭니다. Okta API Services 앱은 Okta 리소스에 대한 접근 권한을 제공하기 위해 관리자 역할을 할당해야 합니다. 기본 탐색 메뉴에서 Security -> Administrators를 선택한 다음 Roles 탭으로 이동하여 Create new role을 클릭하세요:

    Create new Okta admin role

  3. 역할 이름과 선택적으로 설명을 입력하고 다음 권한을 선택하세요:

    사용자

    • 사용자 및 세부 정보 보기
    • 사용자의 그룹 멤버십 편집
    • 사용자의 애플리케이션 할당 편집

    그룹

    • 그룹 및 세부 정보 보기
    • 그룹 멤버십 관리

    애플리케이션

    • 애플리케이션 및 세부 정보 보기
    • 애플리케이션 사용자 할당 편집
  4. 마지막으로 Save role을 클릭합니다.

앱에 대한 리소스 세트 만들기#

이전 섹션에서 만든 사용자 정의 관리자 역할을 할당하는 데 필요한 Okta 리소스 세트를 만듭니다.

  1. Security -> Administrators로 이동한 다음 Resources 탭으로 이동하여 Create new resource set을 클릭합니다.

  2. + Add Resource를 클릭하여 Users, Groups, Applications 3개의 리소스 유형을 추가합니다.

    Create new Okta resource set

    세트의 리소스를 조정하여 Okta 리소스에 대한 Teleport의 접근을 제한할 수 있습니다. 사용자 동기화 통합의 사전 조건으로 만든 Okta SAML 2.0 애플리케이션을 포함해야 합니다.

  3. 리소스를 설정하고 이름과 선택적 설명을 입력한 후 Create를 클릭하고 진행합니다.

앱 권한 구성#

  1. Proof of possession 비활성화. Teleport는 Okta API Services 앱에 대한 OAuth 인증을 사용할 때 DPoP를 지원하지 않습니다.

    DPoP를 비활성화하려면 General 탭에서 General Settings 섹션으로 스크롤한 다음 섹션 오른쪽 상단의 Edit를 클릭하세요. 그런 다음 "Require Demonstrating Proof of Possession (DPoP) header in token requests" 체크박스의 선택을 취소하고 Save를 클릭합니다.

    Create Okta API app

  2. Okta API 범위 설정. Okta API Scopes 탭에서 다음 범위를 부여하세요:

    • okta.apps.read
    • okta.apps.manage
    • okta.groups.read
    • okta.groups.manage
    • okta.users.read
    • okta.users.manage

    Okta API scopes setup

  3. 앱에 관리자 역할 할당. Admin roles로 이동하여 Edit assignments를 클릭합니다.

    Create Okta API app

  4. 이전에 만든 사용자 정의 관리자 역할과 리소스 세트를 선택하고 Save changes를 클릭합니다.

2단계/3단계. Teleport JWT를 신뢰하도록 앱 구성#

Teleport가 Okta에 접근할 수 있도록 하려면, 이전 단계에서 만든 Okta API Services 앱이 Teleport에서 발급한 JWT 토큰을 검증할 수 있어야 합니다. 이를 위해 앱에 Okta용 Teleport 공개 키를 구성합니다.

절차는 Teleport 클러스터가 공용 인터넷을 통해 접근 가능한지 여부에 따라 약간 다릅니다:

  1. 통합 등록 화면의 Step 2에 표시된 JWKS URL을 복사합니다.

  2. Okta 관리 UI의 Applications -> Applications에서 Okta API Services 앱을 찾습니다. 앱 설정의 General 탭에서 Client Credentials 섹션 오른쪽 상단의 Edit를 클릭하고 Client authentication을 "Public key / Private key"로 변경합니다.

  3. 같은 섹션의 PUBLIC KEYS 하위 섹션에서 "Use a URL to fetch keys dynamically"를 선택하고 Okta용 Teleport JWKS URL을 붙여넣습니다. Save를 클릭합니다.

    Okta API app public key for public
cluster

  1. 통합 등록 화면의 Step 2에서 If your cluster is private를 클릭합니다. 클러스터의 공개 키를 포함하는 JSON 문서가 표시됩니다.

  2. 공개 키 JSON을 복사합니다.

  3. Okta 관리 UI에서 Applications -> Applications로 이동합니다. Okta API Services 앱을 찾습니다. 앱 설정의 General 탭에서 Client Credentials 섹션 오른쪽 상단의 Edit를 클릭하고 Client authentication을 "Public key / Private key"로 변경합니다.

  4. PUBLIC KEYS 하위 섹션에서 "Save keys in Okta"를 선택하고 Add key를 클릭합니다.

  5. 공개 키 JSON을 붙여넣고 Done을 클릭합니다.

  6. 이전 화면에서 Save를 클릭합니다. Created 열의 "Invalid DateTime" 메시지는 무시하세요. Save를 클릭하면 이 값이 유효한 날짜가 됩니다.

    Okta API app - private cluster pub key #3

3단계/3단계. 클라이언트 ID 제공#

  1. Okta 관리 UI의 Applications -> Applications에서 Okta API Services 앱을 찾습니다. 앱 설정의 General 탭에서 클라이언트 ID를 찾을 수 있습니다.

    Okta API app - client ID

  2. App Sync 등록 화면에 클라이언트 ID를 붙여넣고 Update를 클릭합니다.

    Okta Enrollment: User sync - Step 3 client
ID

  3. Update를 클릭하여 사용자 동기화 구성을 완료합니다.

사용자 가져오기#

동기화 중에 Okta 통합은 Okta 통합을 등록하는 데 사용된 Teleport 인증 커넥터의 Okta SAML 앱에 할당된 모든 사용자에 대해 Teleport 사용자 계정을 만듭니다.

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

okta-requester 역할을 사용하면 사용자가 Teleport에 로그인할 수 있지만 Teleport 리소스에 대한 기본 접근 권한은 부여되지 않습니다. Teleport 관리자는 사용자가 가져온 후 접근 요청 및 접근 목록을 사용하여 적절히 Teleport 리소스에 대한 접근 권한을 부여할 수 있습니다.

사용자 특성#

Okta 사용자/앱 사용자 프로필의 모든 비어 있지 않은 값은 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 관리자는 이러한 특성을 접근 목록의 조건으로 사용하여 Okta에서 파생된 Teleport 사용자에게 Teleport 리소스에 대한 접근 권한을 부여(또는 거부)할 수 있습니다.

사용자 삭제#

다음과 같은 경우:

  1. 동기화 프로세스가 Okta 사용자가 비활성화, 삭제 또는 Okta 앱에서 제거되었음을 감지하거나,
  2. Okta 조직이 SCIM을 통해 계정을 명시적으로 비활성화하면,

Okta 통합은 해당 Teleport 계정을 즉시 삭제하고 임시 Teleport 사용자 잠금을 만듭니다. 사용자 잠금은:

사용자 잠금은 최대 자격 증명 유효 기간에 약간의 안전 마진을 더한 후에 만료됩니다.

Warning

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

사용자가 Okta에서 일시 정지되면, Okta는 Teleport에 일시 정지를 알리지 않으므로 Teleport는 해당 사용자를 자동으로 잠그고 제거하지 않습니다.

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

다음 단계#

Okta SCIM 통합을 위한 가이드 등록 흐름을 완료한 후 Okta 앱 및 그룹 동기화 통합으로 진행할 수 있습니다.