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