Cet article explique comment les entreprises peuvent utiliser l'API SCIM (System for Cross-domain Identity Management) Udemy pour ajouter ou supprimer des licences utilisateur.
SCIM est pris en charge par un certain nombre de fournisseurs d'identité comme Okta et OneLogin. Vous pouvez aussi utiliser l'API SCIM Udemy Business pour d'autres fournisseurs d'identité ou vos propres outils.
Remarque : Les jetons API SCIM pour Udemy Business ont une durée d'environ deux ans. Les administrateurs recevront une notification :
- 30 jours avant l'expiration du jeton
- Après l'expiration du jeton
Utilisation des licences
Dans le fournisseur d'identité, les licences sont généralement assignées au niveau du groupe ou, parfois, au niveau individuel. Lorsque l'attribut licenseType est inclus dans les demandes, le type de licence est spécifié pour les utilisateurs en question.
- L'attribut peut être inclus lors de la création d'utilisateurs, et les utilisateurs se voient assigner les licences indiquées lorsqu'ils activent leur compte Udemy Business.
- L'attribut peut être inclus pour un utilisateur existant et peut soit accorder soit supprimer une licence existante.
- S'il n'y a pas assez de licences d'un type requis sur le compte, Udemy Business envoie un message d'erreur à l'IdP et les changements ne sont pas effectués.
Restrictions relatives à la suppression de licences :
Un utilisateur doit avoir un type de licence. Pour libérer toutes les licences d'un utilisateur, il faut désactiver ce dernier sur le compte de votre entreprise. Si Udemy Business reçoit un attribut licenseType vide, le système l'ignore.
Le passage à la version inférieure d'une licence « Pro » à une licence « Enterprise » n'est actuellement pas pris en charge pour les utilisateurs inactifs, c'est-à-dire les utilisateurs équipés des deux licences mais qui ne se sont pas encore connectés.
Fourniture de l'attribut licenseType requis
L'attribut licenseTypes devant être inclus dans le fournisseur d'identité de votre entreprise est :
urn:ietf:params:scim:schemas:extension:udemy:2.0:User.
Cet attribut doit être fourni sous forme de liste de chaînes, chaque chaîne représentant un nom de licence (pour en savoir plus, consultez la section ci-dessous concernant les types de licences).
Fourniture des valeurs acceptées et des types de licences correspondants
Pour gérer un type de licence utilisateur, une valeur acceptée doit être saisie. Les valeurs entrées dans le tableau ci-dessous sont validées en fonction des types de licences pris en charge pour Udemy Business. La valeur du nom de licence n'est pas sensible à la casse.
| Nom de licence | Type |
Exemples de valeurs acceptées |
| Enterprise | Licence d'abonnement | Enterprise, eNtErpRisE, enTERprise,etc. |
|
Pro |
Licence supplémentaire |
Pro, pRo, PRo,etc. |
Remarque : Si une valeur non acceptée est fournie, une notification d'erreur s'affiche.
Inclusion de licenseTypes lors de la création d'utilisateurs
Vous trouverez ci-dessous un exemple de saisie dans votre fournisseur d'identité pour inclure licenseTypes lors de la création d'utilisateurs :
POST /scim/v2/Users HTTP/1.1 Host: myorganization.udemy.com Accept: application/scim+json Authorization: Bearer <saisissez votre jeton Bearer ici> 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"] } } Remplacement des attributs d'utilisateurs existants pour inclure licenseTypes
Vous trouverez ci-dessous un exemple de saisie pour remplacer les attributs d'utilisateurs existants pour inclure licenseTypes :
PUT /scim/v2/Users/<scim-user-uuid> HTTP/1.1
Host: myorganization.udemy.com
Accept: application/scim+json
Authorization: Bearer <saisissez votre jeton Bearer ici>
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"]
}
}
Configuration uniquement du champ licenseTypes d'un utilisateur existant
Pour configurer uniquement le champ licenseTypes d'un utilisateur existant, il existe deux options de demandes PATCH :
"op": "add"
Pour ajouter la licence complémentaire (c'est-à-dire « Pro ») aux licences existantes, utilisez :
"op": "replace"
pour écraser les valeurs existantes.
Remarque :
Avec l'opération « add », une licence Udemy Business Pro peut être ajoutée aux licences existantes, qu'il s'agisse de licences Enterprise ou Enterprise+Pro. Pour les utilisateurs disposant déjà de licences Enterprise, la licence Pro est ajoutée. Pour les utilisateurs disposant déjà de licences Enterprise+Pro, aucune licence n'est ajoutée.
Voici un exemple de saisie pour configurer uniquement le champ licenseTypes d'un utilisateur existant :
PATCH /scim/v2/Users/<scim-user-uuid> HTTP/1.1 Host: myorganization.udemy.com Accept: application/scim+json Authorization: Bearer <saisissez votre jeton Bearer ici> 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 Écrasement de la totalité des licences actuelles d'un utilisateur
Avec l'opération replace, la totalité des licences actuelles d'un utilisateur peut être écrasée. Pour cela, effectuez la saisie suivante.
PATCH /scim/v2/Users/<scim-user-uuid> HTTP/1.1 Host: myorganization.udemy.com Accept: application/scim+json Authorization: Bearer <saisissez votre jeton Bearer ic> 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"] } } ] }