Okta SCIM 설정
SCIM 2.0을 사용하여 Okta에서 SecureCodingHub로의 자동 사용자 및 그룹 프로비저닝을 구성합니다.
사전 요구 사항
- Okta 관리자 계정
- SecureCodingHub 조직 관리자 계정
- SSO 구성됨 (권장하지만 필수는 아님)
1단계 — SCIM 토큰 생성
조직 관리자로 SecureCodingHub에 로그인
설정 → SCIM으로 이동
토큰 생성 클릭
토큰 복사 — 한 번만 표시됨
2단계 — Okta에서 SCIM 구성
Okta 관리자 → Applications → SecureCodingHub 앱으로 이동
Provisioning 탭 → Configure API Integration으로 이동
Enable API integration 확인
SCIM 커넥터 base URL: https://api.limeplate.com/api/sch/scim/v2
고유 식별자 필드: email
API 토큰: SCIM 토큰 붙여넣기
Test API Credentials 클릭 — "Verified"가 표시되어야 함
저장
3단계 — 프로비저닝 기능 활성화
전체 라이프사이클 관리를 위해 Okta에서 다음 프로비저닝 기능을 활성화하세요:
| 기능 | 권장 |
|---|---|
| Create Users | 활성화 |
| Update User Attributes | 활성화 |
| Deactivate Users | 활성화 |
| Push Groups | 활성화 — 팀 동기화 |
4단계 — 프로비저닝 테스트
Okta에서 앱에 테스트 사용자 할당
SecureCodingHub 사용자 페이지 확인 — 사용자가 나타나야 함
Okta에서 사용자 이름 업데이트 → SecureCodingHub에서 업데이트되는지 확인
Okta에서 앱에서 사용자 제거 → 사용자가 비활성화되는지 확인
SecureCodingHub의 SCIM 설정
관리자 설정의 SCIM 구성 패널은 다음과 같습니다:
Okta SCIM에 대한 배포 전 체크리스트
Okta 프로비저닝 패널에서 저장을 클릭하기 전에 짧은 검증 체크리스트를 살펴보세요. 첫째, SCIM 커넥터 base URL이 SCIM 개요 페이지에 문서화된 정확한 값인지 확인하세요. 끝에 슬래시가 있거나, 버전 경로 세그먼트가 누락되거나, 잘못된 리전을 가리키면 Okta가 일반 자격 증명 오류로 표시하는 혼란스러운 404 응답이 생성됩니다. 둘째, 붙여넣은 SCIM 토큰이 방금 생성한 것이고 부분적으로 복사된 문자열이 아닌지 확인하세요. SCIM 토큰은 길고 모달에서 복사할 때 잘리기 쉽습니다.
셋째, 토큰을 올바른 SecureCodingHub 조직으로 범위 지정하세요. 테넌트에 여러 조직이 있는 경우, 토큰은 생성한 조직에 바인딩되어 있으며 다른 조직에 사용자를 프로비저닝하지 않습니다. 넷째, 프로비저닝을 활성화하기 전에 속성 매핑을 계획하세요. userName이 userPrincipalName 또는 mail에 매핑되어야 하는지 결정하세요. 대부분의 Okta 테넌트에서는 동일하지만, 프록시 주소나 다중 도메인 구성을 가진 조직에서는 분기됩니다. 사용자가 로그인할 이메일과 일치하는 값을 선택하세요. 그렇지 않으면 SSO와 SCIM이 중복 계정을 생성합니다.
첫 동기화 관찰
성공적인 첫 동기화는 별일 없습니다. Okta에서 Provisioning으로 이동하여 Logs 탭을 봅니다. 상태 Success로 해결되는 Create user 이벤트의 시퀀스를 볼 수 있으며, 각각 SecureCodingHub 엔드포인트에서 201 응답이 있습니다. SecureCodingHub 측에서는 새 사용자가 이메일 및 표시 이름이 채워진 채로 사용자 페이지에 나타납니다. 첫 동기화의 총 시간은 할당 수와 Okta 큐 깊이에 따라 다르지만 일반적으로 작은 파일럿 그룹의 경우 2분 미만입니다.
실패한 속성 매핑은 다르게 보입니다. Okta는 Create user를 Failed로 보고하고, 로그 항목에는 SCIM 오류 응답이 포함되며, 가장 흔한 메시지는 필수 속성 누락 또는 잘못된 형식을 나타내는 400입니다. Provisioning 탭에서 매핑을 수정하고, Retry Failed Operations를 클릭하고, 다음 주기가 완료되는 것을 봅니다. 오류가 지속되면 새 토큰을 생성하고, base URL을 다시 확인하고, 할당한 사용자에게 매핑이 참조하는 속성에 값이 있는지 확인하세요.