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 :
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
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.
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
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
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
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
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"