Exportación mediante la API de REST

En esta sección se proporcionan solicitudes y respuestas de ejemplo cuando desea exportar usuarios, grupos y AppRoles de su entorno a otro dominio de identidad mediante la API de REST de dominios de identidad.

En las siguientes secciones, se muestran los pasos:

Nota

Para gestionar de forma segura la exportación del archivo CSV desde un dominio de identidad, se identifican los valores de celda que empiecen por los siguientes caracteres. Esto garantiza que si un valor de celda comienza con uno de estos valores de la lista de bloqueo, se escape en el CSV, lo que evita la inyección CSV. Por ejemplo, durante la exportación si el valor es @test, el valor real será '@test'.
  • En: @
  • Más: +
  • Menos: -
  • Igual que: =
  • Canal: |
  • Porcentaje: %

Planificación del trabajo de exportación

Nota

Para acceder a la lista completa de nombres de columna CSV permitidos y sus descripciones, use la siguiente solicitud:
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 Transferencia de datos para obtener más información sobre la carga masiva mediante la consola del dominio de identidad.

Para exportar usuarios, grupos o AppRoles, envíe una solicitud POST al punto final /job/v1/JobSchedules y utilice la carga útil proporcionada en la solicitud de ejemplo. En el cuerpo de solicitud de ejemplo de JSON que aparece a continuación, para las exportaciones jobType específicas del recurso, el valor de jobType puede ser UserExport, GroupExport o AppRoleExport, según el tipo de datos que esté intentando exportar.

También hay una opción de exportación genérica disponible donde el valor de jobType es Export y, a continuación, se agrega el atributo resourceType y los valores pueden ser User, Group o AppRole, según el tipo de datos que esté intentando exportar.

Nota

Exporte las afiliaciones a AppRole a una sola aplicación. Al exportar en varias aplicaciones, se exporta la pertenencia a varios AppRoles en todas las aplicaciones.

Los ejemplos siguientes muestran tanto la exportación jobType específica del recurso como las opciones de exportación genéricas.

Ejemplo de solicitud de exportación jobType específica de recursos

   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"

Ejemplo de respuesta para exportación jobType específica de recursos

Nota

Tome nota del valor id (negrita en la respuesta de ejemplo). Este es el valor de jobScheduleid que especifique en la siguiente sección.
{
    "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"
    ]
}

Ejemplo de solicitud para exportación 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"

Ejemplo de respuesta para exportación genérica

Nota

Tome nota del valor id (negrita en la respuesta de ejemplo). Este es el valor de jobScheduleid que especifique en la siguiente sección.
{
  "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"
  }
}

Ver Detalles del Trabajo

Para ver los detalles del trabajo de exportación, envíe una solicitud GET al punto final /job/v1/JobHistories utilizando jobScheduleid como identificador.

Solicitud de ejemplo

   curl
-X GET
   -H "Authorization: Bearer <AccessToken>"
"https://<domainURL>/job/v1/JobHistories?filter=jobScheduleid%20eq%20%229cc824a6-87df-4831-8d2b-6cb524384733%22"

Respuesta de ejemplo

Nota

Tome nota del valor id (negrita en la respuesta de ejemplo). Este es el valor del trabajo historyId que especifique en la siguiente sección.
{
  "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"]
}

Ver el informe de trabajo

Para ver el informe de trabajo para el trabajo de exportación, envíe una solicitud GET al punto final /job/v1/JobReports mediante el trabajo historyId como identificador.

Solicitud de ejemplo

   curl
    -X GET
   -H "Authorization: Bearer <AccessToken>"
"https://<domainURL>/job/v1/JobReports?filter=historyId%20eq%20%22d17135ee4d2a4c2e8d7e29eccb7c4f71%22"

Respuesta de ejemplo

Nota

Tome nota del valor name (negrita en la respuesta de ejemplo). Este es el valor de fileName que especifique en la siguiente sección.
{
    "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
}

Descargar el archivo

Para descargar el archivo del servidor, envíe una solicitud GET al punto final /storage/v1/Files utilizando fileName como 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"