Este artigo descreve como as organizações podem usar a API System for Cross-domain Identity Management (SCIM) da Udemy para adicionar ou remover licenças de usuário.
O SCIM é compatível com diversos provedores de identidade, como Okta e OneLogin. Você também pode usar a API SCIM da Udemy Business para outros IdPs ou ferramentas internas.
Observação: os tokens da API SCIM da Udemy Business duram aproximadamente dois anos. Os administradores receberão uma notificação informando:
- 30 dias antes da expiração do token
- Após o token expirar
Uso de licenças
No provedor de identidade, geralmente as licenças são atribuídas no nível do grupo ou, em alguns casos, em nível individual. Quando o atributo licenseType é incluído nas solicitações, o tipo de licença será especificado para os usuários em questão.
- O atributo pode ser incluído ao criar usuários, e os usuários vão reivindicar a licença indicada quando ativarem a conta da Udemy Business.
- O atributo pode ser incluído para um usuário existente e pode conceder ou remover uma licença existente.
- Se não houver licenças suficientes de um tipo exigido disponíveis na conta, a Udemy Business vai enviar uma mensagem de erro ao IdP, e nenhuma alteração será feita.
Restrições ao remover licenças:
Um usuário deve ter um tipo de licença. Para liberar todas as licenças de um usuário, será necessário desativar o usuário na conta da organização. Se a Udemy Business receber um atributo licenseType em branco, o sistema vai ignorá-lo.
Provisionar o atributo licenseType exigido
O atributo licenseTypes que deve ser incluído no provedor de identidade da sua organização é:
urn:ietf:params:scim:schemas:extension:udemy:2.0:User.Esse atributo deve ser fornecido como uma lista de strings, com cada string representando um nome de licença (consulte a seção abaixo sobre tipos de licença para mais informações).
Fornecer os valores aceitos e tipos de licença correspondentes
Para gerenciar o tipo de licença de um usuário, um valor aceito precisará ser informado. Os valores de entrada na tabela abaixo serão validados contra os tipos de licença aceitos pela Udemy Business. O valor do nome da licença não diferencia maiúsculas e minúsculas.
| Nome da licença | Tipo | Exemplos de valores aceitos |
| Enterprise | Licença do plano | E assim por diante. |
Observação: se um valor não aceito for informado, uma notificação de erro será exibida.
Como incluir licenseTypes ao criar usuários
A seguir, encontra-se um exemplo do que seria inserido no seu provedor de identidade para incluir licenseTypes ao criar usuários:
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", "AI Growth"] } }Como substituir os atributos de usuários existentes e incluir licenseTypes
A seguir, encontra-se um exemplo do que seria inserido para substituir os atributos de usuários existentes e incluir 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", "AI Growth"] } }Como definir apenas o campo licenseTypes de um usuário existente
Para definir apenas o campo licenseTypes em um usuário existente, existem duas opções para o uso de solicitações PATCH:
"op": "add" Para adicionar a licença complementar (ou seja, “AI Growth”) a usuários existentes, use:
"op": "replace" para sobrescrever os valores existentes.
Como sobrescrever todo o conjunto de licenças atuais para um usuário
Com a operação replace, todo o conjunto de licenças atuais de um usuário pode ser sobrescrito. Para isso, o seguinte deve ser inserido.
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", "AI Growth"] } } ] }