이 문서에서는 기업이 Udemy의 SCIM(도메인 간 ID 관리 시스템) API를 사용하여 사용자 라이선스를 추가하거나 제거할 수 있는 방법을 설명합니다.
SCIM은 Okta 및 OneLogin 등 여러 IdP에 의해 지원됩니다. 또한, Udemy Business SCIM API를 다른 IdP나 자체 개발 도구에 대해서도 활용할 수 있습니다.
참고: Udemy Business용 SCIM API 토큰은 약 2년 동안 지속됩니다. 관리자는 다음을 알리는 알림을 받습니다.
- 토큰 만료 30일 전
- 토큰 만료 후
라이선스 사용
ID 제공업체에서 일반적으로 라이선스는 그룹 수준 또는 일부 경우에는 개인 수준에서 배정됩니다. licenseType 속성이 요청에 포함되어 있는 경우 해당 사용자에게 적용될 라이선스의 유형이 지정됩니다.
- 해당 속성은 사용자를 생성할 때 포함될 수 있으며, 해당 사용자는 자신의 Udemy Business 계정을 활성화한 후 명시된 라이선스를 확보합니다.
- 해당 특성은 기존 사용자를 위해 포함될 수 있으며 기존 라이선스를 부여하거나 제거할 수 있습니다.
- 계정에 필요한 유형의 라이선스가 충분하지 않은 경우, Udemy Business는 IdP로 오류 메시지를 전송하며 변경되는 사항은 없습니다.
라이선스 제거 제한 사항:
사용자는 라이선스 유형을 보유해야 합니다. 사용자로부터 모든 라이선스를 회수하려면 해당 사용자를 기업의 계정에서 비활성화해야 합니다. Udemy Business가 빈 licenseType 속성을 받으면 시스템이 무시합니다.
비활성 사용자에 대해 'Pro'에서 'Enterprise' 라이선스로 다운그레이드하는 것은 현재 지원되지 않습니다. 비활성 사용자란 두 라이선스 모두가 프로비저닝되었으나 아직 로그인하지 않은 사용자를 칭합니다.
필수 licenseType 속성 제공
다음은 기업의 ID 제공업체에 포함되어야 하는 licenseTypes 속성입니다.
urn:ietf:params:scim:schemas:extension:udemy:2.0:User.
이 속성은 문자열 목록으로 제공되어야 하며, 각 문자열은 라이선스 이름을 나타냅니다(라이선스 유형의 자세한 정보는 아래 섹션 참조).
허용되는 값 및 해당하는 라이선스 유형 제공
사용자의 라이선스 유형을 관리하려면 허용되는 값을 입력해야 합니다. 아래 표의 입력 값은 Udemy Business에서 지원하는 라이선스 유형에 대해 검증됩니다. 라이선스 이름 값은 대소문자를 구분하지 않습니다.
| 라이선스 이름 | 유형 |
허용되는 값의 예시 |
| Enterprise | 플랜 라이선스 | Enterprise, eNtErpRisE, enTERprise등 |
|
Pro |
추가 라이선스 |
Pro, pRo, PRo등 |
참고: 허용되지 않는 값을 입력하면 오류 알림이 표시됩니다.
사용자를 만들 때 licenseTypes를 포함하는 방법
다음은 사용자를 만들 때 licenseTypes를 포함하기 위해 ID 제공업체에 입력해야 하는 내용의 예시입니다.
POST /scim/v2/Users HTTP/1.1 Host: myorganization.udemy.com Accept: application/scim+json Authorization: Bearer <enter your Bearer token here> Content-Type: application/scim+json { "schemas": [ "urn:ietf:params:scim:schemas:core:2.0:User", "urn:ietf:params:scim:schemas:extension:enterprise:2.0:User", "urn:ietf:params:scim:schemas:extension:udemy:2.0:User" ], "userName": "john.doe@udemy.com", "externalId": "someexternalidtest12312", "name": { "givenName": "John", "familyName": "Doe" }, "emails": [ { "primary": true, "type": "work", "value": "john.doe@udemy.com" } ], "active": true, "urn:ietf:params:scim:schemas:extension:udemy:2.0:User": { "licenseTypes": ["Enterprise", "Pro"] } } 기존 사용자의 속성을 교체하고 licenseTypes를 포함하는 방법
다음은 기존 사용자의 속성을 교체하고 licenseTypes를 포함하기 위해 입력해야 하는 내용의 예시입니다.
PUT /scim/v2/Users/<scim-user-uuid> HTTP/1.1
Host: myorganization.udemy.com
Accept: application/scim+json
Authorization: Bearer <enter your Bearer token here>
Content-Type: application/scim+json
{
"schemas": [
"urn:ietf:params:scim:schemas:core:2.0:User",
"urn:ietf:params:scim:schemas:extension:enterprise:2.0:User",
"urn:ietf:params:scim:schemas:extension:udemy:2.0:User"
],
"userName": "john.doe@udemy.com",
"externalId": "someexternalidtest12312",
"name": {
"givenName": "John",
"familyName": "Doe"
},
"emails": [
{
"primary": true,
"type": "work",
"value": "john.doe@udemy.com"
}
],
"active": true,
"urn:ietf:params:scim:schemas:extension:udemy:2.0:User": {
"licenseTypes": ["Enterprise", "Pro"]
}
}
기존 사용자의 licenseTypes 필드만 설정하는 방법
기존 사용자에 대해 licenseTypes 필드만 설정하려면 PATCH 요청을 사용하는 두 가지 옵션이 있습니다.
"op": "add"
애드온 라이선스(예: 'Pro')를 기존 라이선스에 추가하려면 다음을 사용합니다.
"op": "replace"
이를 통해 기존 값을 덮어씁니다.
참고:
이 추가 작업을 통해 Udemy Business Pro 라이선스를 Enterprise 또는 Enterprise+Pro인 기존 라이선스에 추가할 수 있습니다. 이미 Enterprise 라이선스가 있는 사용자에게는 Pro 라이선스가 추가됩니다. 이미 Enterprise+Pro 라이선스가 있는 사용자에게는 다른 라이선스가 추가되지 않습니다.
기존 사용자에 대해 licenseTypes 필드만 설정하기 위해 입력해야 하는 내용의 예시는 다음과 같습니다.
PATCH /scim/v2/Users/<scim-user-uuid> HTTP/1.1 Host: myorganization.udemy.com Accept: application/scim+json Authorization: Bearer <enter your Bearer token here> Content-Type: application/scim+json { "schemas": [ "urn:ietf:params:scim:api:messages:2.0:PatchOp", "urn:ietf:params:scim:schemas:extension:udemy:2.0:User", ], "Operations": [ { "op": "add", "urn:ietf:params:scim:schemas:extension:udemy:2.0:User": { "licenseTypes": ["Pro"] } } ] }W 사용자의 현재 라이선스 전체를 덮어쓰는 방법
교체 작업을 통해 사용자의 현재 라이선스 전체를 덮어쓸 수 있습니다. 이를 수행하려면 다음 내용을 입력해야 합니다.
PATCH /scim/v2/Users/<scim-user-uuid> HTTP/1.1 Host: myorganization.udemy.com Accept: application/scim+json Authorization: Bearer <enter your Bearer token here> Content-Type: application/scim+json { "schemas": [ "urn:ietf:params:scim:api:messages:2.0:PatchOp", "urn:ietf:params:scim:schemas:extension:udemy:2.0:User", ], "Operations": [ { "op": "replace", "urn:ietf:params:scim:schemas:extension:udemy:2.0:User": { "licenseTypes": ["Enterprise", "Pro"] } } ] }