En este artículo se describe cómo las organizaciones pueden usar la API Cross-domain Identity Management (SCIM) de Udemy para añadir o eliminar licencias de usuario.
SCIM es compatible con diferentes proveedores de identidad, como Okta y OneLogin. Además, también puedes utilizar la API SCIM de Udemy Business en caso de que uses otros proveedores de identidad o tus propias herramientas.
Nota: Los tokens de la API SCIM para Udemy Business duran aproximadamente dos años. Los administradores recibirán una notificación:
- 30 días antes de que el token caduque
- Después de que el token caduque
Uso de licencias
En el proveedor de identidad, lo normal es que las licencias se asignen a nivel de grupo o, en algunos casos, a nivel individual. Cuando se incluye el atributo licenseTypes en las solicitudes, el tipo de licencia se especificará para los usuarios en cuestión.
- El atributo puede incluirse al crear usuarios, y los usuarios reclamarán las licencias indicadas cuando activen su cuenta de Udemy Business.
- El atributo también puede incluirse para un usuario existente y otorgar o eliminar una licencia existente.
- Si no hay disponibles suficientes licencias de un tipo necesario en la cuenta, Udemy Business enviará un mensaje de error al proveedor de identidad y no se realizarán cambios.
Restricciones a la hora de eliminar licencias:
Un usuario debe tener un tipo de licencia. Para dejar libres todas las licencias de un usuario, el usuario deberá desactivarse en la cuenta de tu organización. Si Udemy Business recibe un atributo licenseTypes en blanco, el sistema lo ignorará.
Actualmente, no es posible cambiar la licencia "Pro" de un usuario inactivo por una licencia "Enterprise". En concreto, hablamos de los usuarios a los que se les hayan aprovisionado ambas licencias pero que todavía no hayan iniciado sesión.
Proporcionar el atributo licenseTypes necesario
El atributo licenseTypes que debe incluirse en el proveedor de identidad de tu organización es el siguiente:
urn:ietf:params:scim:schemas:extension:udemy:2.0:User.
Este atributo debe proporcionarse como una lista de cadenas, en la que cada cadena representa un nombre de licencia (en la sección que aparece a continuación encontrarás más información sobre los tipos de licencia).
Proporcionar los valores aceptados y los tipos de licencia correspondientes
Para gestionar el tipo de licencia de un usuario, deberá introducirse un valor aceptado. Los valores de entrada de la siguiente tabla se validarán con respecto a los tipos de licencia admitidos en Udemy Business. El valor del nombre de licencia no distingue entre mayúsculas y minúsculas.
| Nombre de licencia | Tipo |
Ejemplos de valores aceptados |
| Enterprise | Licencia de plan | Enterprise, eNtErpRisE, enTERprise,etc. |
|
Pro |
Licencia adicional |
Pro, pRo, PRo,etc. |
Nota: Si se proporciona un valor que no está aceptado, se mostrará una notificación de error.
Cómo incluir licenseTypes al crear usuarios
Aquí tienes un ejemplo de lo que deberías introducir en tu proveedor de identidad para incluir licenseTypes al crear usuarios:
POST /scim/v2/Users HTTP/1.1 Host: myorganization.udemy.com Accept: application/scim+json Authorization: Bearer <introduce tu token de portador aquí> 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"] } } Cómo sustituir los atributos de usuarios existentes e incluir licenseTypes
Aquí tienes un ejemplo de lo que deberías introducir para sustituir los atributos de usuarios existentes e incluir licenseTypes:
PUT /scim/v2/Users/<scim-user-uuid> HTTP/1.1
Host: myorganization.udemy.com
Accept: application/scim+json
Authorization: Bearer <introduce tu token de portador aquí>
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"]
}
}
Cómo definir solamente el campo licenseTypes de un usuario existente
Para definir solamente el campo licenseTypes de un usuario existente, hay dos opciones de solicitudes PATCH que se pueden usar:
"op": "add"
Para añadir la licencia complementaria (es decir, "Pro") a otras existentes.
"op": "replace"
Para sobrescribir valores existentes.
Nota:
Con la operación add, es posible añadir una licencia de Udemy Business Pro a licencias existentes, que pueden ser Enterprise o Enterprise+Pro. Para los usuarios que ya tengan licencias Enterprise, se añadirá la licencia Pro. Para los usuarios que ya tengan licencias Enterprise+Pro, no se añadirá la licencia adicional.
Aquí tienes un ejemplo de lo que deberías introducir para definir solamente el campo licenseTypes de un usuario existente:
PATCH /scim/v2/Users/<scim-user-uuid> HTTP/1.1 Host: myorganization.udemy.com Accept: application/scim+json Authorization: Bearer <introduce tu token de portador aquí> 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 Cómo sobrescribir todo el conjunto de licencias actuales de un usuario
Con la operación replace, es posible sobrescribir todo el conjunto de licencias actuales de un usuario. Para ello, introduce el siguiente código:
PATCH /scim/v2/Users/<scim-user-uuid> HTTP/1.1 Host: myorganization.udemy.com Accept: application/scim+json Authorization: Bearer <introduce tu token de portador aquí> 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"] } } ] }