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 des 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 :
Pour gérer en toute sécurité l'exportation du fichier CSV à partir d'un domaine d'identité, les valeurs de cellule commençant par les caractères suivants font l'objet d'un échappement. Cela garantit que si une valeur de cellule commence par l'une de ces valeurs sur 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 à :
= - Pipe :
| - Pourcentage :
%
Programmer la tâche d'exportation
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,idcsSearchableVoir 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 à une 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 essayez d'exporter.
Exportez les appartenances à AppRole vers une seule application. L'exportation de plusieurs applications exporte l'appartenance à divers AppRoles pour toutes les applications.
Les exemples ci-dessous montrent à la fois l'exportation jobType propre à la ressource et les options d'exportation génériques.
Exemple de demande pour une exportation jobType spécifique à 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 une exportation jobType spécifique à une ressource
Notez la valeur
id (gras dans l'exemple de réponse). Il s'agit de la valeur de 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
Notez la valeur
id (gras dans l'exemple de réponse). Il s'agit de la valeur de 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 d'un travail
Pour voir les détails de la tâche d'exportation, envoyez une demande GET au point d'extrémité /job/v1/JobHistories à l'aide de l'identificateur jobScheduleid.
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 (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 tâches
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
Notez la valeur
name (gras dans l'exemple de réponse). Il s'agit de la valeur de 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 l'identificateur fileName.
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"