Esportazione mediante l'API REST

Questa sezione fornisce richieste e risposte di esempio quando si desidera esportare utenti, gruppi e AppRoles dall'ambiente in uso in un altro dominio di Identity utilizzando l'API REST dei domini di Identity.

Le sezioni riportate di seguito illustrano i passi da eseguire.

Nota

Per gestire in modo sicuro l'esportazione del file CSV da un dominio di Identity, viene eseguito l'escape di tutti i valori di cella che iniziano con i caratteri seguenti. Ciò garantisce che se un valore di cella inizia con uno di questi valori in elenco di blocco, viene salvato nel file CSV, evitando l'inserimento CSV. Ad esempio, durante l'esportazione, se il valore è @test, il valore effettivo sarà '@test'.
  • all'indirizzo: @
  • Inoltre: +
  • Minus: -
  • uguale a: =
  • Barra verticale: |
  • Percentuale: %

Pianificazione del job di esportazione

Nota

Per accedere all'elenco completo dei nomi di colonna CSV consentiti e alle relative descrizioni, utilizzare la richiesta seguente:
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

Per ulteriori informazioni sul caricamento di massa mediante la console del dominio di Identity, vedere Trasferimento dei dati.

Per esportare utenti, gruppi o AppRoles, inviare una richiesta POST all'endpoint /job/v1/JobSchedules e utilizzare il payload fornito nella richiesta di esempio. Nel corpo della richiesta di esempio JSON riportato di seguito, per le esportazioni jobType specifiche della risorsa, il valore per jobType può essere UserExport, GroupExport o AppRoleExport, a seconda del tipo di dati che si sta tentando di esportare.

È disponibile anche un'opzione di esportazione generica in cui il valore per jobType è Export, quindi viene aggiunto l'attributo resourceType e i valori possono essere User, Group o AppRole, a seconda del tipo di dati che si sta tentando di esportare.

Nota

Esportare le appartenenze a AppRole in una sola applicazione. L'esportazione in più applicazioni consente di esportare l'appartenenza di varie applicazioni AppRoles in tutte le applicazioni.

Gli esempi riportati di seguito mostrano sia l'esportazione jobType specifica della risorsa che le opzioni di esportazione generiche.

Richiesta di esempio per l'esportazione jobType specifica della risorsa

   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"

Risposta di esempio per l'esportazione jobType specifica della risorsa

Nota

Prendere nota del valore id (grassetto nella risposta di esempio). Questo è il valore per il valore jobScheduleid specificato nella sezione successiva.
{
    "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"
    ]
}

Richiesta di esempio per l'esportazione generica

   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"

Risposta di esempio per esportazione generica

Nota

Prendere nota del valore id (grassetto nella risposta di esempio). Questo è il valore per il valore jobScheduleid specificato nella sezione successiva.
{
  "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"
  }
}

Visualizza dettagli job

Per visualizzare i dettagli dal job di esportazione, inviare una richiesta GET all'endpoint /job/v1/JobHistories utilizzando jobScheduleid come identificativo.

Richiesta di esempio

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

Risposta di esempio

Nota

Prendere nota del valore id (grassetto nella risposta di esempio). Questo è il valore per il job historyId specificato nella sezione successiva.
{
  "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"]
}

Visualizzare il report sul job

Per visualizzare il report dei job per il job di esportazione, inviare una richiesta GET all'endpoint /job/v1/JobReports utilizzando il job historyId come identificativo.

Richiesta di esempio

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

Risposta di esempio

Nota

Prendere nota del valore name (grassetto nella risposta di esempio). Questo è il valore per il valore fileName specificato nella sezione successiva.
{
    "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
}

Scaricare il file

Per scaricare il file dal server, inviare una richiesta GET all'endpoint /storage/v1/Files utilizzando fileName come identificativo.

   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"