本文概述了组织如何使用 Udemy 的跨域身份管理系统 (SCIM) API 添加或移除用户许可证。
许多身份提供程序(例如 Okta 和 OneLogin)都支持 SCIM。您还可以将 Udemy Business SCIM API 用于其他 IdP 或本土工具。
注意:Udemy Business 的 SCIM API 令牌有效期约为两年。管理员将收一则通知,告知他们:
- 令牌到期前 30 天
- 令牌到期后
许可证使用情况
在身份提供程序中,许可证通常在群组级别分配,在某些情况下,也在个人级别分配。当请求中包含 licenseTypes 属性时,将为相关用户指定许可证类型。
- 此属性可在创建用户时添加,用户在激活其 Udemy Business 帐户后即可领取指定的许可证。
- 此属性也可为现有用户添加,并且可以授予或移除现有许可证。
- 如果帐户中所需类型的许可证不足,Udemy Business 将向 IdP 发送错误消息,并且不会进行任何更改。
对移除许可证的限制:
用户必须拥有许可证类型。要释放用户的所有许可证,需要在贵组织的帐户中停用该用户。如果 Udemy Business 收到空白的 licenseTypes 属性,系统将忽略它。
提供所需的 licenseTypes 属性
贵组织的身份提供程序必须包含的 licenseTypes 属性是:
urn:ietf:params:scim:schemas:extension:udemy:2.0:User。此属性应以字符串列表的形式提供,每个字符串代表一个许可证名称(有关更多信息,请参阅下面关于许可证类型的部分)。
提供可接受的值和对应的许可证类型
为了管理用户的许可证类型,需要输入可接受的值。下表中的输入值将根据 Udemy Business 支持的许可证类型进行验证。 许可证名称值不区分大小写。了解更多。
如何在创建用户时包括 licenseTypes
以下示例显示了当创建用户时应在身份提供程序中输入什么内容以包括 licenseTypes:
POST /scim/v2/Users HTTP/1.1 Host: myorganization.udemy.com Accept: application/scim+json Authorization: Bearer <在此处输入您的持有者令牌> 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", "AI Growth"] } }如何替换现有用户的属性并包括 licenseTypes
以下示例显示了应输入什么内容以替换现有用户属性并包括 licenseTypes:
PUT /scim/v2/Users/<scim-user-uuid> HTTP/1.1 Host: myorganization.udemy.com Accept: application/scim+json Authorization: Bearer <在此处输入您的持有者令牌> 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", "AI Growth"] } }如何仅设置现有用户的 licenseTypes 字段
要仅设置现有用户的 licenseTypes 字段,PATCH 请求有两种使用方式:
"op": "add" 要将附加服务许可证(即“AI Growth”)添加到现有许可证,请使用:
"op": "replace" 来覆盖现有值。
如何覆盖用户当前的整套许可证
使用 replace 操作,可以覆盖用户当前的整套许可证。为此,必须输入以下内容。
PATCH /scim/v2/Users/<scim-user-uuid> HTTP/1.1 Host: myorganization.udemy.com Accept: application/scim+json Authorization: Bearer <在此处输入您的持有者令牌> 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", "AI Growth"] } } ] }