Export à l'aide de l'API REST

Cette section fournit des exemples de demande et de réponse 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 vous guident tout au long des étapes :

Remarque

Pour gérer en toute sécurité l'export du fichier CSV à partir d'un domaine d'identité, toutes les valeurs de cellule commençant par les caractères suivants sont échappées. Cela garantit que si une valeur de cellule commence par l'une de ces valeurs sur liste bloquée, 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 l'adresse : @
  • Plus : +
  • Moins : -
  • Est égal à : =
  • Barre verticale : |
  • Pourcentage : %

Programmation du 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 exports jobType propres à la ressource, la valeur de jobType peut être UserExport, GroupExport ou AppRoleExport, en fonction du type de données que vous essayez d'exporter.

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

Remarque

Exportez les appartenances AppRole vers une seule application. L'export sur plusieurs applications exporte l'appartenance à diverses AppRoles sur toutes les applications.

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

Exemple de demande d'export jobType spécifique à la 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 spécifique à la ressource

Remarque

Notez la valeur id (en 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 (en 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 des travaux

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 demande

   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éponse

Remarque

Notez la valeur id (en 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"]
}

Affichage du rapport de travail

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 demande

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

Exemple de réponse

Remarque

Notez la valeur name (en 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échargez le 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"