Exportando com a API REST
Esta seção fornece exemplos de solicitações e respostas quando você deseja exportar usuários, grupos e AppRoles do seu ambiente para outro domínio de identidades usando a API REST dos domínios de identidades.
As seções a seguir orientam você pelas etapas:
Para tratar com segurança a exportação do arquivo CSV de um domínio de identidades, todos os valores de célula que começam com os caracteres a seguir têm escape. Isso garante que, se um valor de célula começar com um desses valores na lista de bloqueio, ele será escapado no CSV, o que evita a injeção de CSV. Por exemplo, durante a exportação, se o valor for
@test
, o valor real será '@test'
.- Em:
@
- Além disso:
+
- Menos:
-
- É igual a:
=
- Barra Vertical:
|
- Porcentagem:
%
Programar o Job de Exportação
GET <domainURL>/admin/v1/ResourceTypeSchemaAttributes?filter=resourceType eq "User" and idcsCsvAttributeName pr&attributes=name,idcsCsvAttributeName,idcsDisplayName,description,type,required,canonicalValues,mutability,caseExact,multiValued,idcsMinLength,idcsMaxLength,idcsSearchable
Consulte Transferindo Dados para obter mais informações sobre o carregamento em massa usando a Console do domínio de identidades.
Para exportar usuários, grupos ou AppRoles, envie uma solicitação POST ao ponto final /job/v1/JobSchedules
e use o payload fornecido na solicitação de exemplo. No exemplo de corpo de solicitação JSON abaixo, para exportações jobType
específicas do recurso, o valor de jobType
pode ser UserExport,
GroupExport
ou AppRoleExport
, dependendo do tipo de dados que você está tentando exportar.
Há também uma opção de exportação genérica disponível em que o valor de jobType
é Export
e, em seguida, o atributo resourceType
é adicionado e os valores podem ser User,
Group
ou AppRole
, dependendo do tipo de dados que você está tentando exportar.
Exporte associações AppRole para apenas um único aplicativo. A exportação em vários aplicativos exporta a associação de vários AppRoles em todos os aplicativos.
Os exemplos abaixo mostram a exportação jobType
específica do recurso e as opções de exportação genéricas.
Exemplo de Solicitação de Exportação jobType Específica do Recurso
curl
-X POST
-H "Authorization: Bearer <AccessToken>"
-H "Content-Type: application/scim+json"
-H "Cache-Control: no-cache"
-d '{
"schemas": ["urn:ietf:params:scim:schemas:oracle:idcs:JobSchedule"],
"jobType": "UserExport",
"runNow": true,
"parameters": [
{
"name": "exportFormat",
"value": "CSV"
},
{
"name": "attributesToExclude",
"value": "userName, profileUrl"
}
]
}'
"https://<domainURL>/job/v1/JobSchedules"
Exemplo de Resposta para Exportação jobType Específica do Recurso
Anote o valor
id
(negrito no exemplo de resposta). Esse é o valor para jobScheduleid
especificado na próxima seção.{
"id": "fc565f0f-9555-4a44-803f-c06fe1d5d325",
"jobType": "UserExport",
"nextFireTime": "2022-08-12T15:27:28.057Z",
"runAt": "2022-08-12T15:27:28.057Z",
"parameters": [
{
"name": "exportFormat",
"value": "CSV"
},
{
"name": "attributesToExclude",
"value": "userName, profileUrl"
}
],
"schemas": [
"urn:ietf:params:scim:schemas:oracle:idcs:JobSchedule"
]
}
Exemplo de Solicitação de Exportação Genérica
curl
-X POST
-H "Authorization: Bearer <AccessToken>"
-H "Content-Type: application/scim+json"
-H "Cache-Control: no-cache"
-d '{
"schemas": ["urn:ietf:params:scim:schemas:oracle:idcs:JobSchedule"],
"jobType": "Export",
"runNow": true,
"parameters": [
{
"name": "exportFormat",
"value": "CSV"
},
{
"name": "attributesToGet",
"value": "userName,name,emails"
},
{
"name": "resourceType",
"value": "User"
}
]
}'
"https://<domainURL>/job/v1/JobSchedules"
Exemplo de Resposta para Exportação Genérica
Anote o valor
id
(negrito no exemplo de resposta). Esse é o valor para jobScheduleid
especificado na próxima seção.{
"id": "9cc824a6-87df-4831-8d2b-6cb524384733",
"isDisabled": false,
"jobType": "Export",
"nextFireTime": "Apr 21, 2017 3:44:11 AM CDT",
"runAt": "Apr 21, 2017 3:44:11 AM CDT",
"parameters": [
{
"name": "exportFormat",
"value": "CSV"
},
{
"name": "attributesToGet",
"value": "userName,name,emails"
},
{
"name": "resourceType",
"value": "User"
}
],
"schemas": [
"urn:ietf:params:scim:schemas:oracle:idcs:JobSchedule"
],
"meta": {
"resourceType": "JobSchedule",
"location": "https://<domainURL>/job/v1/JobSchedules"
}
}
Exibir Detalhes do Job
Para exibir detalhes do job de exportação, envie uma solicitação GET para o ponto final /job/v1/JobHistories
usando jobScheduleid
como o identificador.
Exemplo de Solicitação
curl
-X GET
-H "Authorization: Bearer <AccessToken>"
"https://<domainURL>/job/v1/JobHistories?filter=jobScheduleid%20eq%20%229cc824a6-87df-4831-8d2b-6cb524384733%22"
Exemplo de Resposta
Anote o valor
id
(negrito no exemplo de resposta). Este é o valor do job historyId
que você especifica na próxima seção.{
"idcsLastModifiedBy": {
"type": "User",
"value": "ed39884ad56b42ae91d80b8db57251dc",
"display": "admin opc",
"$ref": "https://<domainURL>/admin/v1/Users/ed39884ad56b42ae91d80b8db57251dc"
},
"idcsCreatedBy": {
"type": "User",
"display": "admin opc",
"value": "ed39884ad56b42ae91d80b8db57251dc",
"$ref": "https://<domainURL>/admin/v1/Users/ed39884ad56b42ae91d80b8db57251dc"
},
"percentage": 100,
"id": "d17135ee4d2a4c2e8d7e29eccb7c4f71",
"jobScheduleId": "9cc824a6-87df-4831-8d2b-6cb524384733",
"meta": {
"created": "Apr 21, 2017 3:44:11 AM CDT",
"lastModified": "Apr 21, 2017 3:44:12 AM CDT",
"resourceType": "JobHistory",
"location": "https://<domainURL>/job/v1/JobHistories/d17135ee4d2a4c2e8d7e29eccb7c4f71"
},
"jobDescription": "An Oracle Identity Cloud Service job to export User.",
"failureCount": 0,
"status": "succeeded",
"scheduled": "Apr 21, 2017 3:44:11 AM CDT",
"jobDisplayName": "User Export Job",
"totalCount": 1,
"instanceId": "afd082996a7b14927604199281492760419777",
"successCount": 1,
"startTime": "Apr 21, 2017 3:44:11 AM CDT",
"jobType": "Export",
"runNow": true,
"endTime": "Apr 21, 2017 3:44:12 AM CDT",
"parameters": [{
"name": "exportFormat",
"value": "CSV"
}, {
"name": "attributesToGet",
"value": "userName,name,emails"
}, {
"name": "resourceType",
"value": "User"
}
],
"schemas": ["urn:ietf:params:scim:schemas:oracle:idcs:JobHistory"]
}
Exibir o Relatório de Jobs
Para exibir o relatório de jobs do job de exportação, envie uma solicitação GET para o ponto final /job/v1/JobReports
usando o job historyId
como identificador.
Exemplo de Solicitação
curl
-X GET
-H "Authorization: Bearer <AccessToken>"
"https://<domainURL>/job/v1/JobReports?filter=historyId%20eq%20%22d17135ee4d2a4c2e8d7e29eccb7c4f71%22"
Exemplo de Resposta
Anote o valor
name
(negrito no exemplo de resposta). Esse é o valor para fileName
especificado na próxima seção.{
"schemas": [
"urn:scim:api:messages:2.0:ListResponse"
],
"totalResults": 1,
"Resources": [
{
"idcsLastModifiedBy": {
"type": "User",
"value": "ed39884ad56b42ae91d80b8db57251dc",
"display": "admin opc",
"$ref": "https://<domainURL>/admin/v1/Users/ed39884ad56b42ae91d80b8db57251dc"
},
"idcsCreatedBy": {
"type": "User",
"display": "admin opc",
"value": "ed39884ad56b42ae91d80b8db57251dc",
"$ref": "https://<domainURL>/admin/v1/Users/ed39884ad56b42ae91d80b8db57251dc"
},
"type": "info",
"historyId": "d17135ee4d2a4c2e8d7e29eccb7c4f71",
"id": "9c1a12081ed04aeeaa9dd480c5f39094",
"jobType": "Export",
"meta": {
"created": "Apr 21, 2017 3:44:12 AM CDT",
"lastModified": "Apr 21, 2017 3:44:12 AM CDT",
"resourceType": "JobReport",
"location": "https://<domainURL>/job/v1/JobReports/9c1a12081ed04aeeaa9dd480c5f39094"
},
"message": "fileName",
"name": "files/export/201704210844/Export_d17135ee4d2a4c2e8d7e29eccb7c4f71.csv",
"schemas": [
"urn:ietf:params:scim:schemas:oracle:idcs:JobReport"
]
}
],
"startIndex": 1,
"itemsPerPage": 1
}
Faça Download do Arquivo
Para fazer download do arquivo do servidor, envie uma solicitação GET para o ponto final /storage/v1/Files
usando fileName
como o identificador.
curl
-X GET
-H "Authorization: Bearer <AccessToken>"
-H "Content-Type: multipart/form-data"
-H "Cache-Control: no-cache"
"https://<domainURL>/storage/v1/Files?fileName=export/201704210844/Export_d17135ee4d2a4c2e8d7e29eccb7c4f71.csv"