Exportation à l'aide de l'API REST

Cette section fournit des exemples de demandes et de réponses lorsque vous voulez exporter des utilisateurs, des groupes et AppRoles de votre environnement vers un autre domaine d'identité à l'aide de l'API REST des domaines d'identité.

Les sections suivantes décrivent les étapes :

Remarque

Pour gérer en toute sécurité l'exportation du fichier CSV à partir d'un domaine d'identité, toutes les valeurs de cellule commençant par les caractères suivants sont échappées. Ainsi, si une valeur de cellule commence par l'une de ces valeurs de liste de blocage, elle est échappée dans le fichier CSV, ce qui évite l'injection CSV. Par exemple, lors de l'export, si la valeur est @test, la valeur réelle sera '@test'.
  • A : @
  • Plus : +
  • Moins : -
  • Egal à : =
  • Tuyau : |
  • Pourcentage : %

Programmer le travail d'export

Remarque

Pour accéder à la liste complète des noms de colonne CSV autorisés et à leur description, utilisez la demande suivante :
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

Pour plus d'informations sur le chargement en masse à l'aide de la console de domaine d'identité, reportez-vous à Transfert de données.

Pour exporter des utilisateurs, des groupes ou AppRoles, envoyez une demande POST à l'adresse /job/v1/JobSchedules et utilisez la charge utile fournie dans l'exemple de demande. Dans l'exemple de corps de demande JSON ci-dessous, pour les exportations jobType propres à une ressource, la valeur de jobType peut être UserExport, GroupExport ou AppRoleExport, selon le type de données que vous essayez d'exporter.

Une option d'export générique est également disponible lorsque la valeur de jobType est Export, puis que l'attribut resourceType est ajouté et que les valeurs peuvent être User, Group ou AppRole, selon le type de données que vous essayez d'exporter.

Remarque

Exportez les appartenances AppRole vers une seule application. L'exportation entre plusieurs applications exporte l'appartenance de diverses applications AppRoles dans toutes les applications.

Les exemples ci-dessous présentent à la fois l'export jobType spécifique à la ressource et les options d'export génériques.

Exemple de demande d'export jobType propre à une ressource

   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"

Exemple de réponse pour l'export jobType propre à la ressource

Remarque

Notez la valeur id (gras dans l'exemple de réponse). Il s'agit de la valeur de jobScheduleid que vous indiquez dans la section suivante.
{
    "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"
    ]
}

Exemple de demande d'export générique

   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"

Exemple de réponse pour l'export générique

Remarque

Notez la valeur id (gras dans l'exemple de réponse). Il s'agit de la valeur de jobScheduleid que vous indiquez dans la section suivante.
{
  "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"
  }
}

Visualiser les détails du travail

Pour visualiser les détails du travail d'export, envoyez une demande GET à l'adresse /job/v1/JobHistories en utilisant jobScheduleid comme identificateur.

Exemple de requête

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

Exemple de réaction

Remarque

Notez la valeur id (gras dans l'exemple de réponse). Il s'agit de la valeur du travail historyId que vous indiquez dans la section suivante.
{
  "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"]
}

Afficher le rapport sur les travaux

Afin de visualiser le rapport de travail pour le travail d'export, envoyez une demande GET à l'adresse /job/v1/JobReports en utilisant le travail historyId comme identificateur.

Exemple de requête

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

Exemple de réaction

Remarque

Notez la valeur name (gras dans l'exemple de réponse). Il s'agit de la valeur de fileName que vous indiquez dans la section suivante.
{
    "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
}

Téléchargement du fichier

Pour télécharger le fichier à partir du serveur, envoyez une demande GET à l'adresse /storage/v1/Files en utilisant fileName comme identificateur.

   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"