SCIM을 사용한 사용자 및 그룹 프로비저닝

SCIM으로 사용자와 그룹 프로비저닝 - 메인
이 글에서는

SCIM(System for Cross-domain Identity Management) API 표준을 사용하여 Notion 워크스페이스에서 사용자와 그룹을 프로비저닝하고 관리하세요 🔑


사용자 프로비저닝과 관리:

  • 워크스페이스에서 멤버 생성, 제거

  • 멤버의 프로필 정보 업데이트

  • 워크스페이스에서 멤버 검색

    • 이메일 또는 이름으로 멤버 찾기

그룹 프로비저닝과 관리:

  • 워크스페이스에서 그룹 생성, 제거

  • 그룹에 멤버 추가, 제거

  • 워크스페이스에서 그룹 검색

    • 이름으로 그룹 찾기

지원되지 않는 기능:

  • 워크스페이스 게스트 관리

현재 Okta, OneLogin, Rippling, 그 외 사용자 지정 SCIM 애플리케이션을 지원합니다. 다른 ID 공급자를 사용하시는 경우 알려주세요.

Notion에서 SCIM을 사용하기 위한 사전 요건

SCIM API 토큰 생성

기업 요금제 워크스페이스 소유자는 설정과 멤버보안과 신원SCIM 구성으로 이동하여 SCIM API 토큰을 생성하고 확인할 수 있습니다.

  • 새 토큰을 생성하려면, 오른쪽의 + 새 토큰 버튼을 클릭하세요.

  • 버튼을 클릭하면 각 워크스페이스 소유자만 볼 수 있는 고유 토큰이 생성됩니다.

토큰 철회

워크스페이스 소유자가 워크스페이스를 나가거나 역할이 변경되면 해당 토큰은 철회됩니다. 이 경우, 나머지 워크스페이스 소유자들에게 철회된 토큰을 교체하라는 메시지가 자동으로 전송됩니다.

워크스페이스 소유자는 사용 중인 토큰을 철회할 수도 있습니다. 토큰을 철회하려면 각 토큰 옆에 있는 🗑를 클릭하세요.

기존 토큰 교체

토큰이 철회된 경우, 기존 API 통합의 토큰을 교체해야 합니다.

철회된 토큰에 기반한 SCIM 통합이나 사용자 프로비저닝은 새로운 토큰이 적용될 때 까지 비활성화됩니다.

참고: 기존 API 통합의 오작동을 방지하기 위해, 관리자를 디프로비저닝하기 전에 해당 관리자가 생성한 토큰을 먼저 교체하세요.

  • GET /ServiceProviderConfig

    • GET <https://api.notion.com/scim/v2/ServiceProviderConfig>

    • 사용 가능한 SCIM 사양의 기능에 대한 설명을 검색합니다.

    • 자세한 내용은 SCIM 프로토콜 사양 문서의 섹션 5에서 확인하세요.

  • GET /ResourceTypes

Okta 구성

Notion과 Okta API를 통합하면 아래와 같은 프로비저닝 기능이 지원됩니다.

  • 사용자 생성

  • 사용자 속성 업데이트(사용자에게 조직에 속한 이메일 도메인이 있는 경우)

  • 사용자 비활성화(비활성화 시 Notion 워크스페이스에서 사용자 제거됨)

  • 그룹 푸시

1단계: Notion에서 프로비저닝 활성화

  • 설정과 멤버에서 신원과 프로비저닝 탭으로 이동하세요.

  • 아래로 스크롤하여 SAML SSO (통합로그인) 섹션으로 이동하세요.

  • SAML SSO 구성 편집 버튼을 여세요.

  • Assertion Consumer Service(ACS) URL 옆에 있는 복사 링크를 클릭하세요. 나중에 다시 검색할 수 있도록 다른 곳에 저장해 두세요.

  • 설정과 멤버 → 신원과 프로비저닝에서 아래로 스크롤해 SCIM 프로비저닝 섹션으로 이동하세요.

  • 토큰이 아직 생성되지 않은 경우 + 토큰 추가를 클릭하고 토큰을 복사하세요. 나중에 다시 검색할 수 있도록 다른 곳에 저장해 두세요.

2단계: Okta에서 프로비저닝 구성

  • Okta의 앱 카탈로그 디렉토리에서 Notion 앱을 추가하세요.

  • Sign-on 옵션 보기의 Sign On 애플리케이션 탭에서 애플리케이션 사용자 이름 형식으로 이메일을 선택하세요.

  • 프로비저닝 탭에서 API 통합 구성을 선택하고 API 통합 활성화 체크박스를 클릭하세요.

  • 1단계에서 복사한 Notion SCIM API 토큰API 토큰 텍스트 상자에 입력하고 저장을 누르세요.

  • 앱에 프로비저닝 제목 옆에 있는 편집 버튼을 클릭하고 원하는 기능을 활성화하세요. 사용자 생성, 사용자 속성 업데이트, 사용자 비활성화 등의 기능이 있습니다. 저장을 클릭하세요.

  • API 통합을 설정한 후 그룹 푸시 탭을 열고 그룹 푸시 버튼을 사용해 Notion과 동기화하려는 Okta 그룹을 추가하세요.

참고: 기존 SCIM 구성을 통해 사용자/그룹을 업데이트할 때 Okta에서 Notion 앱을 삭제하지 마세요. Notion App을 삭제하면 프로비저닝된 모든 사용자가 워크스페이스에서 삭제됩니다.

Okta로 프로비저닝을 설정하는 데 어려움이 있으면 team@makenotion.com으로 문의주세요.

OneLogin

추가 설명이 필요한 경우 OneLogin 웹사이트의 설명을 함께 참고하세요.

Notion과 OneLogin API를 통합하면 아래와 같은 프로비저닝 기능이 지원됩니다.

  • 사용자 생성

  • 사용자 속성 업데이트(사용자에게 조직에 속한 이메일 도메인이 있는 경우)

  • 사용자 비활성화(비활성화 시 Notion 워크스페이스에서 사용자 제거됨)

  • OneLogin 역할과 Notion 사용 권한 그룹을 매핑하는 규칙 수립

참고: OneLogin을 통해 Notion 사용자 프로비저닝을 하는 경우 SSO를 구성하기 전에 SCIM을 구성하는 것이 중요합니다.

1단계: Notion에서 프로비저닝 활성화

  • 설정과 멤버에서 신원과 프로비저닝 탭으로 이동하세요.

  • 아래로 스크롤하여 SAML SSO (통합로그인) 섹션으로 이동하세요.

  • SAML SSO 구성 편집 버튼을 여세요.

  • Assertion Consumer Service(ACS) URL 옆에 있는 복사 링크를 클릭하세요. 나중에 다시 검색할 수 있도록 다른 곳에 저장해 두세요.

  • 설정과 멤버 → 신원과 프로비저닝에서 아래로 스크롤해 SCIM 프로비저닝 섹션으로 이동하세요.

  • 토큰이 아직 생성되지 않은 경우 + 토큰 추가를 클릭하고 토큰을 복사하세요. 나중에 다시 검색할 수 있도록 다른 곳에 저장해 두세요.

참고: 워크스페이스 소유자는 자신이 생성한 토큰만 복사하고 사용할 수 있습니다. 다른 워크스페이스 소유자가 이미 토큰을 만든 경우 다른 토큰이 필요한지 확인하세요. 토큰을 생성한 워크스페이스 소유자가 워크스페이스에서 나가거나 멤버로 다운그레이드되면 모든 토큰이 만료됩니다.

2단계: OneLogin에서 프로비저닝 구성

  • 관리(Administration) → 애플리케이션 → 애플리케이션으로 이동하세요.

  • 앱 추가 버튼을 클릭하고 검색창에서 Notion을 검색한 다음 Notion SAML 2.0 버전을 선택하세요.

  • 저장을 클릭하세요.

  • 구성 탭으로 이동하세요.

  • Assertion Consumer Service(ACL) URLConsumer URL 텍스트 박스에 붙여 넣으세요.

  • SCIM API 토큰SCIM 전달자 토큰 텍스트 상자에 붙여 넣으세요.

  • 사용(Enable)을 클릭하세요.

  • 프로비저닝 탭으로 이동하세요.

  • 워크플로에서 프로비저닝 사용(Enable provisioning)을 선택하세요.

  • 오른쪽 상단에 있는 저장 버튼을 클릭하세요.

  • (선택 사항) 사용자가 생성, 삭제, 업데이트될 때 관리자 승인을 요청하지 않도록 설정할 수 있습니다. 이 설정을 사용하기 전에 관리자 승인이 필요합니다.

  • (선택 사항) 사용자가 OneLogin에서 삭제될 때 Notion 워크스페이스에서도 사용자를 제거할지 선택할 수 있습니다.

  • 오른쪽 상단에 있는 저장 버튼을 클릭하세요.

아래 표는 SCIM 사용자 속성과 Notion 사용자 프로필 필드 간의 매핑에 대한 간략한 설명입니다. 다른 사용자 속성은 무시됩니다.

  • GET /Users

    • GET <https://api.notion.com/scim/v2/Users>

    • 페이지를 매긴 워크스페이스 멤버 목록을 검색합니다.

    • startIndexcount 매개 변수를 사용하여 페이지를 매길 수 있습니다. startIndex는 1부터 시작합니다.

    • 필터 매개 변수를 사용하여 결과를 필터링할 수 있습니다. 필터링 기준으로 유효한 속성은 email, given_name, family_name입니다. 예: GET <https://api.notion.com/scim/v2/Users?startIndex=1&count=50&filter=email> eq employee@acmecorp.com

    • given_namefamily_name은 대소문자를 구분합니다. 이메일은 소문자로 변환됩니다.

  • GET /Users/<id>

    • GET <https://api.notion.com/scim/v2/Users/><id>

    • Notion 사용자 ID로 특정 워크스페이스 멤버를 검색합니다. 이 ID는 00000000-0000-0000-0000-000000000000 형식의 32자 UUID입니다.

    • meta.created와 meta.lastModified의 값은 유의미한 타임스탬프 값이 아닙니다.

  • POST /Users

    • POST <https://api.notion.com/scim/v2/Users>

    • 추가하려는 사용자에게 이미 동일한 이메일을 사용하는 Notion 계정이 있는 경우, 해당 계정이 워크스페이스에 추가됩니다.

    • 사용자가 존재하지 않는 경우 이를 호출하면 새 Notion 사용자가 생성되고 해당 사용자가 워크스페이스에 추가됩니다. 그리고 생성된 Notion 사용자 프로필에 매핑됩니다.

  • PATCH /Users/<id>

    • PATCH <https://api.notion.com/scim/v2/Users/><id>

    • 일련의 작업을 통해 업데이트하고, 업데이트된 사용자 레코드를 반환합니다.

참고: 멤버가 사용하는 이메일 도메인에 대한 소유권이 검증된 경우에만 멤버의 프로필 정보를 업데이트할 수 있습니다(일반적으로 Notion에 구성한 SAML SSO 이메일 도메인과 동일합니다). 새 이메일 도메인을 검증하려면 Notion 팀에 문의해 주세요.

  • PUT /Users/<id>

    • PUT <https://api.notion.com/scim/v2/Users/><id>

    • 업데이트하고, 업데이트된 사용자 레코드를 반환합니다.

  • DELETE /Users/<id>

    • DELETE <https://api.notion.com/scim/v2/Users/><id>

    • 워크스페이스에서 사용자를 제거합니다. 사용자가 모든 활성 세션에서 로그아웃됩니다.

    • 참고: SCIM으로 사용자 계정을 삭제할 수는 없습니다. 계정 삭제는 수동으로 수행해야 합니다.

  • GET /Groups

    • GET <https://api.notion.com/scim/v2/Groups>

    • 페이지를 매긴 워크스페이스 멤버 목록을 검색합니다.

    • startIndexcount 매개 변수를 사용하여 페이지를 매길 수 있습니다. startIndex는 1부터 시작합니다. 예: GET <https://api.notion.com/scim/v2/Groups?startIndex=1&count=5>

    • 필터 매개 변수를 사용하여 결과를 필터링할 수 있습니다. 그룹은 displayName 속성으로 필터링할 수 있습니다. 예: GET <https://api.notion.com/scim/v2/Groups?filter=displayName> eq Designers

  • GET /Groups/<id>

    • GET <https://api.notion.com/scim/v2/Groups/><id>

    • Notion 그룹 ID로 특정 워크스페이스 그룹을 검색합니다. 이 ID는 00000000-0000-0000-0000-000000000000 형식의 32자 UUID입니다.

  • POST /Groups

    • POST <https://api.notion.com/scim/v2/Groups>

    • 새 워크스페이스 그룹을 생성합니다.

  • PATCH /Groups/<id>

    • PATCH <https://api.notion.com/scim/v2/Groups/><id>

    • 일련의 작업을 통해 워크스페이스 그룹을 업데이트합니다.

  • PUT /Groups/<id>

    • PUT <https://api.notion.com/scim/v2/Groups/><id>

    • 워크스페이스 그룹을 업데이트합니다.

  • DELETE /Groups/<id>

    • DELETE <https://api.notion.com/scim/v2/Groups/><id>

    • 워크스페이스 그룹을 삭제합니다.

참고: 그룹을 삭제했을 때 하나 이상의 페이지에 '모두 허용' 권한을 가진 사용자가 아무도 없다면, 그룹 삭제가 불가능합니다.


피드백 보내기

이 내용이 도움이 되었나요?