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 para a 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.
Não é possível fazer o downgrade da licença “Pro” para “Enterprise” de usuários inativos, ou seja, usuários que foram provisionados com ambas as licenças, mas ainda não fizeram login.
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 | Enterprise, eNtErpRisE, enTERpriseetc. |
|
Pro |
Licença adicional |
Pro, pRo, PRoetc. |
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 <insira seu token de portador aqui> 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"] } } 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 <insira seu token de portador aqui>
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"]
}
}
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, “Pro”) a usuários existentes, use:
"op": "replace"
para sobrescrever os valores existentes.
Observação:
Com a operação "add", uma licença da Udemy Business Pro pode ser adicionada a licenças existentes, que são Enterprise ou Enterprise+Pro. Para usuários que já têm licenças Enterprise, a licença Pro será adicionada. Para usuários que já têm licenças Enterprise+Pro, nenhuma licença será adicionada.
Confira um exemplo do que seria inserido para definir apenas o campo licenseTypes em um usuário existente:
PATCH /scim/v2/Users/<scim-user-uuid> HTTP/1.1 Host: myorganization.udemy.com Accept: application/scim+json Authorization: Bearer <insira seu token de portador aqui> 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 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 <insira seu token de portador aqui> 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"] } } ] }