SCIM 사용자 프로비저닝
SCIM 사용자 프로비저닝 구성
ScribbleMaps는 자동 사용자 프로비저닝 및 디프로비저닝을 위해 SCIM 2.0(System for Cross-domain Identity Management)을 지원합니다. 이를 통해 ID 공급자(IdP)의 사용자를 ScribbleMaps에 자동으로 동기화하여 팀 멤버십을 조직의 디렉터리와 동기화된 상태로 유지할 수 있습니다.
SCIM 프로비저닝은 team.scribblemaps.com에서 이용할 수 있으며 완전히 무료입니다.
목차
- SCIM이란 무엇인가요?
- 시작하기 전에
- 1단계: ScribbleMaps에서 SCIM 활성화하기
- 2단계: Bearer 토큰 생성하기
- 3단계: ID 공급자 구성하기
- 4단계: 기본 제품 할당 설정하기
- 5단계: 사용자 테스트 및 할당
- 공급자별 가이드
- 지원되는 SCIM 작업
- 사용자 수명 주기 관리
- 문제 해결
SCIM이란 무엇인가요?
SCIM(System for Cross-domain Identity Management)은 다음 작업을 자동으로 수행할 수 있도록 지원하는 개방형 표준입니다.
- 사용자 프로비저닝 - IdP에서 사용자가 할당될 때 ScribbleMaps 계정을 자동으로 생성합니다.
- 사용자 업데이트 - 사용자 정보(이름, 이메일)를 동기화된 상태로 유지합니다.
- 사용자 디프로비저닝 - IdP에서 사용자가 제거될 때 계정을 자동으로 비활성화합니다.
- 역할 관리 - 그룹 멤버십을 통해 사용자를 Admin 또는 Member 역할에 할당합니다.
SCIM은 SSO(SAML/OIDC)와 함께 작동하여 완전한 ID 수명 주기 관리를 제공합니다.
시작하기 전에
- SCIM을 구성하려면 Team Owner여야 합니다.
- ID 공급자의 관리 콘솔에 액세스할 수 있어야 합니다.
- IdP가 SCIM 2.0(Okta, Microsoft Entra ID, OneLogin, JumpCloud 등)을 지원해야 합니다.
- 최상의 사용자 경험을 위해 SCIM 전에 SSO를 구성하는 것을 권장합니다.
1단계: ScribbleMaps에서 SCIM 활성화하기
- team.scribblemaps.com에 로그인합니다.
- SCIM Provisioning (왼쪽 사이드바)으로 이동합니다.
- Enable SCIM을 ON으로 전환합니다.
참고: SCIM을 완전히 활성화하려면 먼저 bearer 토큰을 생성해야 합니다.
2단계: Bearer 토큰 생성하기
bearer 토큰은 ID 공급자를 ScribbleMaps에 인증합니다.
- SCIM 설정 페이지에서 Generate Token을 클릭합니다.
- 토큰을 즉시 복사하여 안전한 곳에 저장합니다.
중요한 보안 참고 사항:
- 토큰은 한 번만 표시됩니다. 분실한 경우 새 토큰을 생성해야 합니다.
- 이 토큰을 비밀번호처럼 취급하십시오. 토큰을 가진 사람은 누구나 팀의 사용자를 관리할 수 있습니다.
- 토큰이 노출된 경우 언제든지 토큰을 취소하고 다시 생성할 수 있습니다.
- 토큰을 취소하면 새 토큰이 구성될 때까지 모든 SCIM 작업이 즉시 중단됩니다.
3단계: ID 공급자 구성하기
다음 세부 정보를 사용하여 IdP에서 ScribbleMaps를 SCIM 애플리케이션으로 구성하십시오.
| 설정 | 값 |
|---|---|
| SCIM Base URL | https://api.scribblemaps.com/scim/v2 |
| Authentication Method | HTTP Header / Bearer Token |
| Authorization Header | Bearer YOUR_TOKEN_HERE |
| Unique Identifier |
userName (이메일 주소) |
SCIM 엔드포인트 참조
| 엔드포인트 | 목적 |
|---|---|
/scim/v2/Users |
사용자 프로비저닝 및 관리 |
/scim/v2/Groups |
역할/그룹 멤버십 관리 |
/scim/v2/ServiceProviderConfig |
SCIM 기능(검색) |
/scim/v2/ResourceTypes |
지원되는 리소스 유형(검색) |
/scim/v2/Schemas |
사용자 및 그룹 스키마(검색) |
4단계: 기본 제품 할당 설정하기(선택 사항)
SCIM을 통해 사용자가 프로비저닝될 때 제품 라이선스를 자동으로 할당할 수 있습니다.
- SCIM 설정 페이지에서 Default Product Assignment를 찾습니다.
- 제품을 선택합니다:
- None - 제품 없이 사용자가 생성됩니다(나중에 수동으로 할당).
- Viewer - 보기 전용 액세스
- Pro Basic - 표준 편집 기능
- Pro Business - 모든 기능 액세스
- Save를 클릭합니다.
참고: 사용 가능한 자리가 있는 경우에만 사용자에게 제품이 할당됩니다. 사용 가능한 자리가 없으면 사용자는 생성되지만 할당되지 않은 상태로 유지됩니다.
5단계: 사용자 테스트 및 할당
- ID 공급자에서 Test Connection 기능을 사용하여 SCIM 연결을 확인합니다.
- IdP의 ScribbleMaps 애플리케이션에 테스트 사용자를 할당합니다.
- ScribbleMaps 팀 멤버 목록에 사용자가 나타나는지 확인합니다.
- 확인되면 필요에 따라 추가 사용자 또는 그룹을 할당합니다.
공급자별 가이드
Okta
- Okta Admin Console에서 Applications > Browse App Catalog로 이동합니다.
- "SCIM 2.0 Test App (Header Auth)"을 검색하거나 사용자 정의 SCIM 앱을 만듭니다.
- Provisioning 탭 > Configure API Integration으로 이동합니다.
- Enable API integration을 선택합니다.
- 다음과 같이 구성합니다:
-
SCIM 2.0 Base URL:
https://api.scribblemaps.com/scim/v2 - OAuth Bearer Token: ScribbleMaps SCIM 토큰을 붙여넣습니다.
-
SCIM 2.0 Base URL:
- Test API Credentials를 클릭하여 확인합니다.
- Provisioning > To App으로 이동하여 다음을 활성화합니다:
- Create Users
- Update User Attributes
- Deactivate Users
- Assignments 탭으로 이동하여 사용자 또는 그룹을 할당합니다.
Microsoft Entra ID (Azure AD)
- Azure Portal에서 Microsoft Entra ID > Enterprise Applications로 이동합니다.
- ScribbleMaps 애플리케이션을 선택합니다(또는 새로 만듭니다).
- Provisioning > Get Started로 이동합니다.
- Provisioning Mode를 Automatic으로 설정합니다.
- Admin Credentials 아래에서:
-
Tenant URL:
https://api.scribblemaps.com/scim/v2 - Secret Token: ScribbleMaps SCIM 토큰을 붙여넣습니다.
-
Tenant URL:
- Test Connection을 클릭하여 확인합니다.
- 사용자 속성에 대한 Mappings를 구성합니다.
- Provisioning Status를 On으로 설정합니다.
- Users and groups로 이동하여 사용자를 할당합니다.
OneLogin
- OneLogin Admin에서 Applications > Add App으로 이동합니다.
- "SCIM Provisioner with SAML (SCIM v2 Core)" 또는 이와 유사한 항목을 검색합니다.
- Configuration 탭으로 이동합니다.
- 다음과 같이 구성합니다:
-
SCIM Base URL:
https://api.scribblemaps.com/scim/v2 - SCIM Bearer Token: ScribbleMaps SCIM 토큰을 붙여넣습니다.
-
SCIM Base URL:
- Provisioning 탭으로 이동하여 프로비저닝을 활성화합니다.
- Users 탭으로 이동하여 사용자를 할당합니다.
JumpCloud
- JumpCloud Admin에서 SSO Applications로 이동합니다.
- +를 클릭하여 새 애플리케이션을 추가합니다.
- Custom SCIM을 선택합니다.
- 다음과 같이 구성합니다:
-
Base URL:
https://api.scribblemaps.com/scim/v2 - Token Key: ScribbleMaps SCIM 토큰을 붙여넣습니다.
- Authentication: Bearer Token
-
Base URL:
- Test Connection을 클릭합니다.
- 속성 매핑을 구성합니다.
- 애플리케이션에 사용자 그룹을 할당합니다.
지원되는 SCIM 작업
사용자 작업
| 작업 | 메서드 | 지원 여부 | 설명 |
|---|---|---|---|
| List Users | GET /Users | 예 | 페이지 매김 및 필터링을 사용하여 모든 사용자 검색 |
| Get User | GET /Users/{id} | 예 | ID로 특정 사용자 검색 |
| Create User | POST /Users | 예 | 새 사용자 프로비저닝 |
| Replace User | PUT /Users/{id} | 예 | 사용자 속성의 전체 업데이트 |
| Update User | PATCH /Users/{id} | 예 | 사용자 속성의 부분 업데이트 |
| Delete User | DELETE /Users/{id} | 예 | 사용자 비활성화(소프트 삭제) |
그룹 작업
| 작업 | 메서드 | 지원 여부 | 설명 |
|---|---|---|---|
| List Groups | GET /Groups | 예 | Admin 및 Member 역할 그룹 반환 |
| Get Group | GET /Groups/{id} | 예 | 멤버 목록이 포함된 그룹 검색 |
| Update Group | PATCH /Groups/{id} | 예 | 역할 그룹에서 멤버 추가/제거 |
| Create Group | POST /Groups | 아니요 | 지원되지 않음(역할이 고정됨) |
지원되는 사용자 속성
| SCIM 속성 | ScribbleMaps 필드 | 필수 여부 |
|---|---|---|
userName |
이메일 주소 | 예 |
externalId |
외부 IdP 식별자 | 아니요 |
name.givenName |
이름 | 아니요 |
name.familyName |
성 | 아니요 |
displayName |
표시 이름 | 아니요 |
active |
계정 상태 | 아니요 |
emails[].value |
이메일 주소 | 아니요 |
지원되는 필터
| 필터 | 예시 |
|---|---|
| 이메일로 필터링 | userName eq "[email protected]" |
| 외부 ID로 필터링 | externalId eq "12345" |
| 상태로 필터링 | active eq true |
사용자 수명 주기 관리
사용자가 프로비저닝될 때
- ScribbleMaps에 새 팀 멤버 계정이 생성됩니다.
- 사용자 정보(이름, 이메일)가 IdP에서 채워집니다.
- 기본 제품이 구성되어 있고 사용 가능한 자리가 있는 경우 라이선스가 자동으로 할당됩니다.
- 사용자는 즉시 SSO(구성된 경우)를 통해 로그인할 수 있습니다.
사용자가 업데이트될 때
- 사용자 속성(이름, 표시 이름)이 IdP와 일치하도록 업데이트됩니다.
- 이메일 변경 사항이 동기화됩니다(사용자가 계정을 연결한 경우 제외).
사용자가 디프로비저닝될 때
- 사용자의 계정이 비활성화(소프트 삭제)됩니다.
- 모든 제품 라이선스가 제거되어 자리가 확보됩니다.
- 모든 활성 세션이 즉시 무효화됩니다.
- 사용자는 더 이상 로그인할 수 없습니다.
- 사용자 데이터와 지도는 보존됩니다(삭제되지 않음).
- 사용자가 다시 프로비저닝되면 계정을 다시 활성화할 수 있습니다.
그룹을 통한 역할 관리
ScribbleMaps는 SCIM을 통해 두 개의 역할 그룹을 노출합니다.
| 그룹 ID | 역할 | 권한 |
|---|---|---|
admin |
관리자 | 팀 설정, 사용자 및 결제 관리 |
member |
멤버 | 표준 팀 멤버 액세스 |
사용자를 관리자로 지정하려면 SCIM PATCH를 통해 admin 그룹에 추가하십시오. Owner 역할은 SCIM을 통해 수정할 수 없습니다.
문제 해결
일반적인 문제
"401 Unauthorized" 또는 "Invalid token"
- bearer 토큰이 올바르고 취소되지 않았는지 확인합니다.
- 토큰이 Authorization 헤더에
Bearer YOUR_TOKEN으로 전달되는지 확인합니다. - 토큰이 만료되었는지 확인합니다(만료일이 설정된 경우).
- 필요한 경우 새 토큰을 생성합니다.
"409 Conflict" - User already exists
- 해당 이메일을 사용하는 사용자가 팀에 이미 존재합니다.
- 기존 사용자가 비활성화된 경우, SCIM이 자동으로 다시 활성화합니다.
- IdP에서 중복된 이메일 주소가 있는지 확인합니다.
"400 Bad Request" - Missing required field
- 요청에
userName(이메일)이 포함되어 있는지 확인합니다. - 이메일 형식이 유효한지 확인합니다.
- IdP의 속성 매핑 구성을 확인합니다.
사용자가 생성되었으나 제품이 할당되지 않음
- SCIM 설정에서 기본 제품이 구성되어 있는지 확인합니다.
- 기본 제품에 사용 가능한 자리가 있는지 확인합니다.
- 사용자에게 Team Settings에서 수동으로 제품을 할당할 수 있습니다.
사용자 변경 사항이 동기화되지 않음
- 일부 IdP는 일정에 따라 동기화됩니다(예: Azure AD의 경우 40분마다).
- IdP에서 수동 동기화를 강제로 실행해 보십시오.
- SCIM이 여전히 활성화되어 있고 토큰이 유효한지 확인합니다.
테스트 연결 실패
- SCIM Base URL이 정확히
https://api.scribblemaps.com/scim/v2인지 확인합니다. - 끝에 슬래시가 있거나 오타가 없는지 확인합니다.
- 네트워크/방화벽이 api.scribblemaps.com으로의 아웃바운드 HTTPS를 허용하는지 확인합니다.
도움이 필요하신가요?
SCIM 프로비저닝에 문제가 발생하면 다음 정보를 포함하여 당사 지원 팀에 문의해 주십시오.
- 팀 이름
- 사용 중인 ID 공급자
- IdP의 프로비저닝 로그에 있는 오류 메시지
- SCIM 구성 스크린샷(토큰은 가려진 상태)
귀사의 조직에 SCIM 프로비저닝을 구성할 수 있도록 기꺼이 도와드리겠습니다.
최근 업데이트