SCIM 2.0
SCIM 2.0 service provider for user and group provisioning from your identity provider.
Configuração do serviço SCIM
Seção intitulada “Configuração do serviço SCIM”GET /scim/v2/ServiceProviderConfig
Autenticação: Nenhuma: o pedido é autenticado pela assinatura descrita acima.
Respostas
Seção intitulada “Respostas”| Estado | Descrição |
|---|---|
200 |
Capabilities of the SCIM service. |
Exemplo 200
{ "schemas": [ "urn:ietf:params:scim:schemas:core:2.0:ServiceProviderConfig" ], "patch": { "supported": true }, "bulk": { "supported": false, "maxOperations": 0, "maxPayloadSize": 0 }, "filter": { "supported": true, "maxResults": 200 }, "changePassword": { "supported": false }, "sort": { "supported": true }, "etag": { "supported": false }, "authenticationSchemes": [ { "type": "oauthbearertoken", "name": "OAuth Bearer Token", "primary": true } ]}Exemplo com curl
Seção intitulada “Exemplo com curl”curl -X GET "https://exocortex-api.ai-exo-cortex.com/scim/v2/ServiceProviderConfig"Tipos de recurso SCIM
Seção intitulada “Tipos de recurso SCIM”GET /scim/v2/ResourceTypes
Autenticação: Nenhuma: o pedido é autenticado pela assinatura descrita acima.
Respostas
Seção intitulada “Respostas”| Estado | Descrição |
|---|---|
200 |
Supported resource types (User, Group). |
Exemplo 200
{ "schemas": [ "urn:ietf:params:scim:api:messages:2.0:ListResponse" ], "totalResults": 2, "Resources": [ { "id": "User", "name": "User", "endpoint": "/Users", "schema": "urn:ietf:params:scim:schemas:core:2.0:User" }, { "id": "Group", "name": "Group", "endpoint": "/Groups", "schema": "urn:ietf:params:scim:schemas:core:2.0:Group" } ]}Exemplo com curl
Seção intitulada “Exemplo com curl”curl -X GET "https://exocortex-api.ai-exo-cortex.com/scim/v2/ResourceTypes"Esquemas SCIM
Seção intitulada “Esquemas SCIM”GET /scim/v2/Schemas
Autenticação: Nenhuma: o pedido é autenticado pela assinatura descrita acima.
Respostas
Seção intitulada “Respostas”| Estado | Descrição |
|---|---|
200 |
Supported schemas. |
Exemplo 200
{ "schemas": [ "urn:ietf:params:scim:api:messages:2.0:ListResponse" ], "totalResults": 2, "Resources": [ { "id": "urn:ietf:params:scim:schemas:core:2.0:User", "name": "User", "description": "User Account" }, { "id": "urn:ietf:params:scim:schemas:core:2.0:Group", "name": "Group", "description": "Group" } ]}Exemplo com curl
Seção intitulada “Exemplo com curl”curl -X GET "https://exocortex-api.ai-exo-cortex.com/scim/v2/Schemas"Listar os utilizadores
Seção intitulada “Listar os utilizadores”GET /scim/v2/Users
Autenticação: Token SCIM: Authorization: Bearer <token>
Parâmetros
Seção intitulada “Parâmetros”| Nome | Onde | Tipo | Obrigatório | Descrição |
|---|---|---|---|---|
filter |
query | string | não | SCIM filter, for example userName eq "[email protected]". and is supported. |
startIndex |
query | integer | não | |
count |
query | integer | não |
Respostas
Seção intitulada “Respostas”| Estado | Descrição |
|---|---|
200 |
Users of the token’s tenant. |
401 |
SCIM token missing, invalid, revoked or expired. |
Exemplo 200
{ "schemas": [ "urn:ietf:params:scim:api:messages:2.0:ListResponse" ], "totalResults": 1, "startIndex": 1, "itemsPerPage": 1, "Resources": [ { "schemas": [ "urn:ietf:params:scim:schemas:core:2.0:User" ], "name": { "givenName": "Jane", "familyName": "Doe", "formatted": "Jane Doe" }, "displayName": "Jane Doe", "emails": [ { "type": "work", "primary": true } ], "active": true, "meta": { "resourceType": "User", } } ]}Exemplo com curl
Seção intitulada “Exemplo com curl”curl -X GET "https://exocortex-api.ai-exo-cortex.com/scim/v2/Users" \ -H "Authorization: Bearer $EXO_SCIM_TOKEN"Criar um utilizador
Seção intitulada “Criar um utilizador”POST /scim/v2/Users
Autenticação: Token SCIM: Authorization: Bearer <token>
Corpo do pedido
Seção intitulada “Corpo do pedido”application/scim+json
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
schemas |
array<string> | sim | |
id |
string | não | |
externalId |
string \ | null | não |
userName |
string | sim | |
name |
object | não | |
name.givenName |
string | não | |
name.familyName |
string | não | |
name.formatted |
string | não | |
displayName |
string | não | |
emails |
array<object> | não | |
emails[].value |
string (email) | não | |
emails[].type |
string | não | |
emails[].primary |
boolean | não | |
active |
boolean | não | |
userType |
string | não | |
title |
string \ | null | não |
locale |
string \ | null | não |
timezone |
string \ | null | não |
urn:ietf:params:scim:schemas:extension:enterprise:2.0:User |
object | não | |
urn:ietf:params:scim:schemas:extension:enterprise:2.0:User.employeeNumber |
string \ | null | não |
urn:ietf:params:scim:schemas:extension:enterprise:2.0:User.department |
string \ | null | não |
urn:ietf:params:scim:schemas:extension:enterprise:2.0:User.manager |
object \ | null | não |
meta |
object | não | |
meta.resourceType |
string | não | |
meta.created |
string \ | null (date-time) | não |
meta.lastModified |
string \ | null (date-time) | não |
meta.location |
string | não |
{ "schemas": [ "urn:ietf:params:scim:schemas:core:2.0:User" ], "externalId": "00u1a2b3c4D5e6F7g8h9", "name": { "givenName": "Jane", "familyName": "Doe" }, "emails": [ { "type": "work", "primary": true } ], "active": true}Respostas
Seção intitulada “Respostas”| Estado | Descrição |
|---|---|
201 |
User created. |
400 |
Invalid SCIM request. |
401 |
SCIM token missing, invalid, revoked or expired. |
409 |
A user with this userName already exists. |
Exemplo 201
{ "schemas": [ "urn:ietf:params:scim:schemas:core:2.0:User" ], "externalId": "00u1a2b3c4D5e6F7g8h9", "name": { "givenName": "Jane", "familyName": "Doe", "formatted": "Jane Doe" }, "displayName": "Jane Doe", "emails": [ { "type": "work", "primary": true } ], "active": true, "userType": "User", "urn:ietf:params:scim:schemas:extension:enterprise:2.0:User": { "employeeNumber": "E-10442", "department": "Finance", "manager": null }, "meta": { "resourceType": "User", "created": "2026-11-01T08:00:00.000Z", "lastModified": "2026-11-01T08:00:00.000Z", }}Exemplo com curl
Seção intitulada “Exemplo com curl”curl -X POST "https://exocortex-api.ai-exo-cortex.com/scim/v2/Users" \ -H "Authorization: Bearer $EXO_SCIM_TOKEN" \ -H "Content-Type: application/scim+json" \ --data '{"schemas":["urn:ietf:params:scim:schemas:core:2.0:User"],"userName":"[email protected]","externalId":"00u1a2b3c4D5e6F7g8h9","name":{"givenName":"Jane","familyName":"Doe"},"emails":[{"value":"[email protected]","type":"work","primary":true}],"active":true}'Consultar um utilizador
Seção intitulada “Consultar um utilizador”GET /scim/v2/Users/{id}
Autenticação: Token SCIM: Authorization: Bearer <token>
Parâmetros
Seção intitulada “Parâmetros”| Nome | Onde | Tipo | Obrigatório | Descrição |
|---|---|---|---|---|
id |
caminho | string | sim |
Respostas
Seção intitulada “Respostas”| Estado | Descrição |
|---|---|
200 |
User. |
401 |
SCIM token missing, invalid, revoked or expired. |
404 |
Resource not found in the token’s tenant. |
Exemplo 200
{ "schemas": [ "urn:ietf:params:scim:schemas:core:2.0:User" ], "externalId": "00u1a2b3c4D5e6F7g8h9", "name": { "givenName": "Jane", "familyName": "Doe", "formatted": "Jane Doe" }, "displayName": "Jane Doe", "emails": [ { "type": "work", "primary": true } ], "active": true, "userType": "User", "urn:ietf:params:scim:schemas:extension:enterprise:2.0:User": { "employeeNumber": "E-10442", "department": "Finance", "manager": null }, "meta": { "resourceType": "User", "created": "2026-11-01T08:00:00.000Z", "lastModified": "2026-11-01T08:00:00.000Z", }}Exemplo com curl
Seção intitulada “Exemplo com curl” -H "Authorization: Bearer $EXO_SCIM_TOKEN"Substituir um utilizador
Seção intitulada “Substituir um utilizador”PUT /scim/v2/Users/{id}
Autenticação: Token SCIM: Authorization: Bearer <token>
Parâmetros
Seção intitulada “Parâmetros”| Nome | Onde | Tipo | Obrigatório | Descrição |
|---|---|---|---|---|
id |
caminho | string | sim |
Corpo do pedido
Seção intitulada “Corpo do pedido”application/scim+json
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
schemas |
array<string> | sim | |
id |
string | não | |
externalId |
string \ | null | não |
userName |
string | sim | |
name |
object | não | |
name.givenName |
string | não | |
name.familyName |
string | não | |
name.formatted |
string | não | |
displayName |
string | não | |
emails |
array<object> | não | |
emails[].value |
string (email) | não | |
emails[].type |
string | não | |
emails[].primary |
boolean | não | |
active |
boolean | não | |
userType |
string | não | |
title |
string \ | null | não |
locale |
string \ | null | não |
timezone |
string \ | null | não |
urn:ietf:params:scim:schemas:extension:enterprise:2.0:User |
object | não | |
urn:ietf:params:scim:schemas:extension:enterprise:2.0:User.employeeNumber |
string \ | null | não |
urn:ietf:params:scim:schemas:extension:enterprise:2.0:User.department |
string \ | null | não |
urn:ietf:params:scim:schemas:extension:enterprise:2.0:User.manager |
object \ | null | não |
meta |
object | não | |
meta.resourceType |
string | não | |
meta.created |
string \ | null (date-time) | não |
meta.lastModified |
string \ | null (date-time) | não |
meta.location |
string | não |
{ "schemas": [ "urn:ietf:params:scim:schemas:core:2.0:User" ], "externalId": "00u1a2b3c4D5e6F7g8h9", "name": { "givenName": "Jane", "familyName": "Doe", "formatted": "Jane Doe" }, "displayName": "Jane Doe", "emails": [ { "type": "work", "primary": true } ], "active": true, "userType": "User", "urn:ietf:params:scim:schemas:extension:enterprise:2.0:User": { "employeeNumber": "E-10442", "department": "Finance", "manager": null }, "meta": { "resourceType": "User", "created": "2026-11-01T08:00:00.000Z", "lastModified": "2026-11-01T08:00:00.000Z", }}Respostas
Seção intitulada “Respostas”| Estado | Descrição |
|---|---|
200 |
User replaced. |
401 |
SCIM token missing, invalid, revoked or expired. |
404 |
Resource not found in the token’s tenant. |
Exemplo 200
{ "schemas": [ "urn:ietf:params:scim:schemas:core:2.0:User" ], "externalId": "00u1a2b3c4D5e6F7g8h9", "name": { "givenName": "Jane", "familyName": "Doe", "formatted": "Jane Doe" }, "displayName": "Jane Doe", "emails": [ { "type": "work", "primary": true } ], "active": true, "userType": "User", "urn:ietf:params:scim:schemas:extension:enterprise:2.0:User": { "employeeNumber": "E-10442", "department": "Finance", "manager": null }, "meta": { "resourceType": "User", "created": "2026-11-01T08:00:00.000Z", "lastModified": "2026-11-01T08:00:00.000Z", }}Exemplo com curl
Seção intitulada “Exemplo com curl” -H "Authorization: Bearer $EXO_SCIM_TOKEN" \ -H "Content-Type: application/scim+json" \ --data '{"schemas":["urn:ietf:params:scim:schemas:core:2.0:User"],"id":"[email protected]","externalId":"00u1a2b3c4D5e6F7g8h9","userName":"[email protected]","name":{"givenName":"Jane","familyName":"Doe","formatted":"Jane Doe"},"displayName":"Jane Doe","emails":[{"value":"[email protected]","type":"work","primary":true}],"active":true,"userType":"User","urn:ietf:params:scim:schemas:extension:enterprise:2.0:User":{"employeeNumber":"E-10442","department":"Finance","manager":null},"meta":{"resourceType":"User","created":"2026-11-01T08:00:00.000Z","lastModified":"2026-11-01T08:00:00.000Z","location":"/scim/v2/Users/[email protected]"}}'Atualizar um utilizador (PATCH)
Seção intitulada “Atualizar um utilizador (PATCH)”PATCH /scim/v2/Users/{id}
Supports add, replace and remove operations, for example deactivating with {"op":"replace","path":"active","value":false}.
Autenticação: Token SCIM: Authorization: Bearer <token>
Parâmetros
Seção intitulada “Parâmetros”| Nome | Onde | Tipo | Obrigatório | Descrição |
|---|---|---|---|---|
id |
caminho | string | sim |
Corpo do pedido
Seção intitulada “Corpo do pedido”application/scim+json
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
schemas |
array<string> | não | |
Operations |
array<object> | sim | |
Operations[].op |
string (add, replace, remove, Add, Replace, Remove) |
sim | |
Operations[].path |
string | não | |
Operations[].value |
não |
{ "schemas": [ "urn:ietf:params:scim:api:messages:2.0:PatchOp" ], "Operations": [ { "op": "replace", "path": "active", "value": false } ]}Respostas
Seção intitulada “Respostas”| Estado | Descrição |
|---|---|
200 |
User updated. |
400 |
Invalid SCIM request. |
401 |
SCIM token missing, invalid, revoked or expired. |
404 |
Resource not found in the token’s tenant. |
Exemplo 200
{ "schemas": [ "urn:ietf:params:scim:schemas:core:2.0:User" ], "externalId": "00u1a2b3c4D5e6F7g8h9", "name": { "givenName": "Jane", "familyName": "Doe", "formatted": "Jane Doe" }, "displayName": "Jane Doe", "emails": [ { "type": "work", "primary": true } ], "active": true, "userType": "User", "urn:ietf:params:scim:schemas:extension:enterprise:2.0:User": { "employeeNumber": "E-10442", "department": "Finance", "manager": null }, "meta": { "resourceType": "User", "created": "2026-11-01T08:00:00.000Z", "lastModified": "2026-11-01T08:00:00.000Z", }}Exemplo com curl
Seção intitulada “Exemplo com curl” -H "Authorization: Bearer $EXO_SCIM_TOKEN" \ -H "Content-Type: application/scim+json" \ --data '{"schemas":["urn:ietf:params:scim:api:messages:2.0:PatchOp"],"Operations":[{"op":"replace","path":"active","value":false}]}'Eliminar um utilizador (desaprovisionamento)
Seção intitulada “Eliminar um utilizador (desaprovisionamento)”DELETE /scim/v2/Users/{id}
Autenticação: Token SCIM: Authorization: Bearer <token>
Parâmetros
Seção intitulada “Parâmetros”| Nome | Onde | Tipo | Obrigatório | Descrição |
|---|---|---|---|---|
id |
caminho | string | sim |
Respostas
Seção intitulada “Respostas”| Estado | Descrição |
|---|---|
204 |
User deprovisioned. |
401 |
SCIM token missing, invalid, revoked or expired. |
404 |
Resource not found in the token’s tenant. |
Exemplo com curl
Seção intitulada “Exemplo com curl” -H "Authorization: Bearer $EXO_SCIM_TOKEN"Listar os grupos
Seção intitulada “Listar os grupos”GET /scim/v2/Groups
Autenticação: Token SCIM: Authorization: Bearer <token>
Parâmetros
Seção intitulada “Parâmetros”| Nome | Onde | Tipo | Obrigatório | Descrição |
|---|---|---|---|---|
filter |
query | string | não | SCIM filter, for example userName eq "[email protected]". and is supported. |
startIndex |
query | integer | não | |
count |
query | integer | não |
Respostas
Seção intitulada “Respostas”| Estado | Descrição |
|---|---|
200 |
Groups of the token’s tenant. |
401 |
SCIM token missing, invalid, revoked or expired. |
Exemplo 200
{ "schemas": [ "urn:ietf:params:scim:api:messages:2.0:ListResponse" ], "totalResults": 1, "startIndex": 1, "itemsPerPage": 1, "Resources": [ { "schemas": [ "urn:ietf:params:scim:schemas:core:2.0:Group" ], "id": "grp_service_desk_l1", "displayName": "Service Desk L1", "members": [ { "type": "User", } ], "meta": { "resourceType": "Group", "location": "/scim/v2/Groups/grp_service_desk_l1" } } ]}Exemplo com curl
Seção intitulada “Exemplo com curl”curl -X GET "https://exocortex-api.ai-exo-cortex.com/scim/v2/Groups" \ -H "Authorization: Bearer $EXO_SCIM_TOKEN"Criar um grupo
Seção intitulada “Criar um grupo”POST /scim/v2/Groups
Autenticação: Token SCIM: Authorization: Bearer <token>
Corpo do pedido
Seção intitulada “Corpo do pedido”application/scim+json
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
schemas |
array<string> | sim | |
id |
string | não | |
displayName |
string | sim | |
externalId |
string \ | null | não |
members |
array<object> | não | |
members[].value |
string | sim | |
members[].type |
string | não | |
members[].display |
string | não | |
meta |
object | não | |
meta.resourceType |
string | não | |
meta.created |
string \ | null (date-time) | não |
meta.lastModified |
string \ | null (date-time) | não |
meta.location |
string | não |
{ "schemas": [ "urn:ietf:params:scim:schemas:core:2.0:Group" ], "displayName": "Service Desk L1", "members": [ { } ]}Respostas
Seção intitulada “Respostas”| Estado | Descrição |
|---|---|
201 |
Group created. |
400 |
Invalid SCIM request. |
401 |
SCIM token missing, invalid, revoked or expired. |
Exemplo 201
{ "schemas": [ "urn:ietf:params:scim:schemas:core:2.0:Group" ], "id": "grp_service_desk_l1", "displayName": "Service Desk L1", "externalId": null, "members": [ { "type": "User", } ], "meta": { "resourceType": "Group", "created": "2026-11-01T08:00:00.000Z", "lastModified": "2026-11-01T08:00:00.000Z", "location": "/scim/v2/Groups/grp_service_desk_l1" }}Exemplo com curl
Seção intitulada “Exemplo com curl”curl -X POST "https://exocortex-api.ai-exo-cortex.com/scim/v2/Groups" \ -H "Authorization: Bearer $EXO_SCIM_TOKEN" \ -H "Content-Type: application/scim+json" \ --data '{"schemas":["urn:ietf:params:scim:schemas:core:2.0:Group"],"displayName":"Service Desk L1","members":[{"value":"[email protected]"}]}'Consultar um grupo
Seção intitulada “Consultar um grupo”GET /scim/v2/Groups/{id}
Autenticação: Token SCIM: Authorization: Bearer <token>
Parâmetros
Seção intitulada “Parâmetros”| Nome | Onde | Tipo | Obrigatório | Descrição |
|---|---|---|---|---|
id |
caminho | string | sim |
Respostas
Seção intitulada “Respostas”| Estado | Descrição |
|---|---|
200 |
Group. |
401 |
SCIM token missing, invalid, revoked or expired. |
404 |
Resource not found in the token’s tenant. |
Exemplo 200
{ "schemas": [ "urn:ietf:params:scim:schemas:core:2.0:Group" ], "id": "grp_service_desk_l1", "displayName": "Service Desk L1", "externalId": null, "members": [ { "type": "User", } ], "meta": { "resourceType": "Group", "created": "2026-11-01T08:00:00.000Z", "lastModified": "2026-11-01T08:00:00.000Z", "location": "/scim/v2/Groups/grp_service_desk_l1" }}Exemplo com curl
Seção intitulada “Exemplo com curl” -H "Authorization: Bearer $EXO_SCIM_TOKEN"Atualizar um grupo (PATCH)
Seção intitulada “Atualizar um grupo (PATCH)”PATCH /scim/v2/Groups/{id}
Autenticação: Token SCIM: Authorization: Bearer <token>
Parâmetros
Seção intitulada “Parâmetros”| Nome | Onde | Tipo | Obrigatório | Descrição |
|---|---|---|---|---|
id |
caminho | string | sim |
Corpo do pedido
Seção intitulada “Corpo do pedido”application/scim+json
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
schemas |
array<string> | não | |
Operations |
array<object> | sim | |
Operations[].op |
string (add, replace, remove, Add, Replace, Remove) |
sim | |
Operations[].path |
string | não | |
Operations[].value |
não |
{ "schemas": [ "urn:ietf:params:scim:api:messages:2.0:PatchOp" ], "Operations": [ { "op": "add", "path": "members", "value": [ { } ] } ]}Respostas
Seção intitulada “Respostas”| Estado | Descrição |
|---|---|
200 |
Group updated. |
400 |
Invalid SCIM request. |
401 |
SCIM token missing, invalid, revoked or expired. |
404 |
Resource not found in the token’s tenant. |
Exemplo 200
{ "schemas": [ "urn:ietf:params:scim:schemas:core:2.0:Group" ], "id": "grp_service_desk_l1", "displayName": "Service Desk L1", "externalId": null, "members": [ { "type": "User", } ], "meta": { "resourceType": "Group", "created": "2026-11-01T08:00:00.000Z", "lastModified": "2026-11-01T08:00:00.000Z", "location": "/scim/v2/Groups/grp_service_desk_l1" }}Exemplo com curl
Seção intitulada “Exemplo com curl” -H "Authorization: Bearer $EXO_SCIM_TOKEN" \ -H "Content-Type: application/scim+json" \ --data '{"schemas":["urn:ietf:params:scim:api:messages:2.0:PatchOp"],"Operations":[{"op":"add","path":"members","value":[{"value":"[email protected]"}]}]}'Eliminar um grupo
Seção intitulada “Eliminar um grupo”DELETE /scim/v2/Groups/{id}
Autenticação: Token SCIM: Authorization: Bearer <token>
Parâmetros
Seção intitulada “Parâmetros”| Nome | Onde | Tipo | Obrigatório | Descrição |
|---|---|---|---|---|
id |
caminho | string | sim |
Respostas
Seção intitulada “Respostas”| Estado | Descrição |
|---|---|
204 |
Group deleted. |
401 |
SCIM token missing, invalid, revoked or expired. |
404 |
Resource not found in the token’s tenant. |
Exemplo com curl
Seção intitulada “Exemplo com curl” -H "Authorization: Bearer $EXO_SCIM_TOKEN"Página gerada a partir da especificação OpenAPI da API de integração, versão 1.1.0.