개요
Okta는 정규화된 사용자 수명 주기, 인증, MFA 및 관리 활동 데이터를 제공할 수 있습니다. 검토된 예시는 다음과 같습니다.account.locked— 계정 잠김mfa.factor.activated— 추가 MFA 요소 활성화auth.login.failed— 로그인 실패
/api/v1/users)와 시스템 로그(/api/v1/logs)를 읽습니다. 연동 데이터가 신호가 되는 방식을 참조하십시오.
연결 방식 선택
두 방식 모두 동일한 접근 권한이 필요하므로, 선택 기준은 플랫폼이 읽을 수 있는 데이터가 아니라 자격 증명 관리 방식입니다.
옵션 A — API 토큰(SSWS)
권장 방식입니다.Living Security에 필요한 정보
사전 요구 사항
- 서비스 계정 사용자를 생성하고, 관리자 역할을 할당하고, API 토큰을 생성하려면 Okta Super Administrator여야 합니다.
1
토큰을 소유할 사용자 생성
Okta API 토큰은 해당 토큰을 생성한 사용자의 권한을 그대로 가지며, 그 사용자가 비활성화되면 작동하지 않습니다. 담당자가 변경되어도 연결이 유지되도록 개인 관리자 계정 대신 전용 서비스 계정을 생성하십시오.
- Admin Console에서 Directory → People로 이동합니다.
- Add person을 클릭하고
svc-livingsecurity@yourcompany.com와 같은 사용자를 생성합니다. - 계정을 활성화합니다.
2
읽기 전용 관리자 역할 할당
플랫폼은 데이터를 읽기만 합니다. 읽기 이상의 권한을 부여하면 토큰에 사용되지 않는 권한이 부여됩니다.
- Security → Administrators로 이동합니다.
- Add administrator를 클릭하고 이전 단계에서 생성한 사용자를 선택합니다.
- Read-only Administrator 역할을 할당합니다.
- Save를 클릭합니다.
관리자 역할이 없으면 Okta Management API 호출은
200 OK와 함께 성공하지만 빈 목록을 반환합니다. 역할이 누락되었음을 알려 주는 403는 없으며, 스트림이 단순히 비어 있는 상태로 유지됩니다.3
API 토큰 생성
- 1단계에서 만든 서비스 계정 사용자로 Admin Console에 로그인합니다. 토큰은 이를 생성한 계정의 권한을 상속합니다.
- Security → API로 이동하여 Tokens 탭을 엽니다.
- Create token을 클릭하고
Living Security Platform와 같은 이름을 지정한 다음 Create token을 클릭합니다. - 토큰 값을 지금 복사하십시오. Okta는 토큰 값을 한 번만 표시하며 이후에는 다시 표시하지 않습니다.
위의 주소 목록은 Okta 조직이 네트워크 영역(network zone)으로 API 접근을 제한하는 경우에만 필요합니다. 대부분의 조직은 해당하지 않습니다.
4
테넌트 서브도메인 확인
Admin Console URL은 다음과 같은 형태입니다.
https://acme-admin.okta.com 테넌트 서브도메인은 acme이며, -admin 접미사, .okta.com, https://은 포함하지 않습니다.문제 해결
연결되었지만 모든 스트림이 비어 있는 경우
연결되었지만 모든 스트림이 비어 있는 경우
토큰 소유자에게 관리자 역할이 없습니다. 서비스 계정에 Read-only Administrator를 할당하십시오(2단계). 역할이 누락된 경우 API는 오류 대신 빈 목록과 함께
200 OK을 반환합니다.담당자 변경 후 동기화 실패
담당자 변경 후 동기화 실패
토큰을 생성한 사용자가 비활성화되면 토큰이 작동하지 않습니다. 이 때문에 토큰은 개인이 아닌 서비스 계정에 속해야 합니다.
옵션 B — OAuth 2.0 서비스 애플리케이션
보안 정책상 장기 API 토큰을 허용하지 않는 경우 이 방식을 사용하십시오. 토큰 대신 클라이언트 ID와 직접 보유하는 RSA 키 쌍을 사용합니다. 플랫폼에서는 설정 → 통합 → 카탈로그 아래의 Okta (OAuth 2.0) 타일에 해당합니다. 클라이언트 자격 증명(Client Credentials)으로 Okta에 인증하려면 다음이 필요합니다.- 클라이언트 ID - Okta API Services 애플리케이션의 고유 식별자입니다.
- 개인 키(JWK) - JSON Web Key 형식의 RSA 개인 키이며, 해당 공개 키가 Okta 애플리케이션에 등록되어 있어야 합니다.
- Okta 도메인 - 전체 호스트 이름이 아닌 Okta 테넌트 서브도메인만 입력합니다(예:
dev-12345678). - 범위 - 공백으로 구분된 Okta Management API 범위 목록입니다(예:
okta.users.read okta.logs.read).
private_key_jwt 인증을 사용하여 Okta에서 API Services 애플리케이션을 생성하는 방법을 안내합니다.
사전 요구 사항:
- Okta 계정이 있어야 합니다. developer.okta.com에서 무료 개발자 계정에 가입할 수 있습니다.
1단계: Okta API Services 애플리케이션 생성
- Okta Admin Console에 로그인합니다.
- 왼쪽 사이드바에서 Applications > Applications로 이동합니다.
- Create App Integration을 클릭합니다.
- 로그인 방법으로 API Services를 선택하고 Next를 클릭합니다.
- 애플리케이션 이름을 지정하고 Save를 클릭합니다.
- 애플리케이션의 General 탭에서 Client ID를 확인합니다. 마지막 단계에서 필요합니다.
- Client authentication을 Public key / Private key로 설정합니다.
okta.*범위는 이 인증 방식에서만 지원됩니다.
- **Proof of possession (DPoP)**을 비활성화합니다. 지원되지 않습니다.
애플리케이션은 반드시 API Services로 생성해야 합니다.
2단계: RSA 키 쌍 생성 및 등록
Okta 키 생성기 사용
Okta는 Admin Console에서 직접 RSA 키 쌍을 생성할 수 있습니다.- Admin Console에서 API Services 애플리케이션을 엽니다.
- General 탭으로 이동하여 PUBLIC KEYS 섹션까지 스크롤합니다.
- Add Key를 클릭한 다음 Generate new key를 선택합니다.
- Save를 클릭합니다. Okta가 키 쌍을 생성하고 **Private Key (JWK)**를 한 번만 표시합니다.
- 개인 키 JSON을 즉시 복사하여 저장하십시오. 다시 표시되지 않습니다.
- 공개 키는 애플리케이션에 자동으로 등록됩니다.
대화상자를 닫기 전에 프라이빗 JWK를 복사하십시오. 마지막 단계에서 Living Security Platform의 개인 키 필드에 붙여넣습니다.
직접 키 생성
Okta는 API Services 앱에private_key_jwt를 사용합니다. RSA 키 쌍을 생성하고, 공개 JWK를 Okta에 등록하며, 프라이빗 JWK를 Living Security Platform에 제공합니다.
다음 Node.js 스크립트(Node.js 18 이상 필요)를 사용하여 프라이빗 JWK를 생성합니다.
- Admin Console에서 API Services 애플리케이션을 엽니다.
- General 탭으로 이동하여 PUBLIC KEYS 섹션까지 스크롤합니다.
- Add Key를 클릭하고, 위 스크립트가 출력한 공개 JWK JSON을 붙여넣은 다음 Save를 클릭합니다.
Living Security Platform에 붙여넣는 것은 프라이빗 JWK입니다. 여기에는 모든 키 자료(
d, p, q, dp, dq, qi)와 kid가 포함되어 있습니다. 비밀로 유지하십시오.3단계: Okta 도메인 확인
Okta 테넌트 서브도메인, 즉.okta.com 앞부분만 입력합니다.
- Admin Console에서 브라우저 주소 표시줄에
https://dev-12345678-admin.okta.com과 같은 URL이 표시됩니다. - Okta 도메인은
dev-12345678.okta.com이 아니라 서브도메인만(예:dev-12345678) 입력합니다. - 또는 Admin Console에서 Settings > Account로 이동하여 Okta 도메인을 확인한 다음 서브도메인 부분을 사용합니다.
4단계: 애플리케이션에 API 범위 부여
Okta는 모든 토큰 요청에 하나 이상의 범위를 요구합니다. 애플리케이션이 특정 범위를 요청하려면 먼저 해당 범위가 부여되어야 합니다.- Admin Console에서 Applications > Applications로 이동하여 애플리케이션을 엽니다.
- Okta API Scopes 탭을 클릭합니다.
- 연동에 필요한 범위인
okta.users.read및okta.logs.read을 부여합니다.
5단계: 애플리케이션에 관리자 역할 할당
범위를 부여하는 것만으로는 충분하지 않습니다. 애플리케이션에 관리자 역할이 없으면 Okta Management API 엔드포인트(예:/api/v1/users)는 아무런 오류 없이 빈 200 [] 응답을 반환합니다. 최소한 Read-Only Administrator를 할당해야 합니다.
- Admin Console에서 Security > Administrators로 이동합니다(또는 Applications > Applications > 해당 앱 > Admin roles로 이동합니다).
- Add administrator assignment를 클릭하고 API Services 애플리케이션을 선택합니다.
- Read-Only Administrator 역할(필요한 범위에 따라 그 이상의 역할)을 할당합니다.
- Save를 클릭합니다.
관리자 역할이 없으면 API 호출은
200 OK와 함께 성공하지만 빈 결과를 반환하며, 문제를 알려 주는 403 오류도 없습니다.6단계: Living Security Platform에 자격 증명 입력
클라이언트 ID, 개인 키(JWK), Okta 도메인, 범위를 준비했다면 다음을 수행합니다.- Okta(Client Credentials) 인증이 필요한 양식을 엽니다.
- 클라이언트 ID를 입력합니다.
- **개인 키(JWK)**를 붙여넣습니다. 위 스크립트에서 생성된 전체 JSON 객체(한 줄 또는 서식이 적용된 형태)를 붙여넣습니다.
- Okta 도메인을 테넌트 서브도메인만(예:
dev-12345678) 입력합니다. - 범위를 공백으로 구분된 목록(예:
okta.users.read okta.logs.read)으로 입력합니다. - 양식을 제출하면 인증이 성공적으로 완료됩니다.
이 문서의 일부는 Nango에서 차용하여 수정한 것이며, Elastic License 2.0에 따라 사용되었습니다.

