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 vous guident tout au long des étapes :

Note

Pour gérer l'exportation du fichier CSV à partir d'un domaine d'identité en toute sécurité, toutes les valeurs de cellule qui commencent par les caractères suivants sont échappées. Cela garantit que 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'exportation si la valeur est @test, la valeur réelle sera '@test'.
  • À : @
  • Plus : +
  • Moins : -
  • Égal à : =
  • Barre verticale : |
  • Pourcentage : %

Programmer la tâche d'exportation

Note

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

Voir Transfert de données pour plus d'informations sur le chargement en masse à l'aide de la console du domaine d'identité.

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

Il existe également une option d'exportation générique disponible où la valeur de jobType est Export, puis l'attribut resourceType est ajouté et les valeurs peuvent être User, Group ou AppRole, selon le type de données que vous tentez d'exporter.

Note

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

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

Exemple de demande pour une exportation jobType propre à 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'exportation jobType propre à la ressource

Note

Notez la valeur id (gras dans l'exemple de réponse). Il s'agit de la valeur pour jobScheduleid que vous spécifiez 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'exportation 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'exportation générique

Note

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

Voir les détails de la tâche

Pour voir les détails de la tâche d'exportation, envoyez une demande GET au point d'extrémité /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

Note

Notez la valeur id (gras dans l'exemple de réponse). Il s'agit de la valeur de la tâche historyId que vous spécifiez 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"]
}

Voir le rapport sur les travaux

Pour voir le rapport de tâche pour la tâche d'exportation, envoyez une demande GET au point d'extrémité /job/v1/JobReports en utilisant la tâche 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

Note

Notez la valeur name (gras dans l'exemple de réponse). Il s'agit de la valeur pour fileName que vous spécifiez 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écharger le fichier

Pour télécharger le fichier à partir du serveur, envoyez une demande GET au point d'extrémité /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"