REST APIを使用したエクスポート
この項では、アイデンティティ・ドメインREST APIを使用して、使用している環境から別のアイデンティティ・ドメインにユーザー、グループおよびAppRolesをエクスポートする場合のリクエストとレスポンスの例を示します。
次の各項で、そのステップについて説明します。
アイデンティティ・ドメインからのCSVファイルのエクスポートを安全に処理するために、次の文字で始まるセル値はすべてエスケープされます。これにより、ブロックリストに記載されたこれらの値のいずれかでセル値が始まる場合、CSVでエスケープされ、CSV注入が回避されます。たとえば、エクスポート時に値が
@test
の場合、実際の値は'@test'
になります。- at:
@
- Plus:
+
- マイナス:
-
- 等しい:
=
- パイプ:
|
- 割合:
%
エクスポート・ジョブのスケジュール
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
アイデンティティ・ドメイン・コンソールを使用したバルク・ロードの詳細は、データの転送を参照してください。
ユーザー、グループまたはAppRolesをエクスポートするには、/job/v1/JobSchedules
エンドポイントにPOSTリクエストを送信し、リクエストの例にあるペイロードを使用します。次のJSONサンプル・リクエスト本文では、リソース固有のjobType
エクスポートの場合、エクスポートしようとしているデータのタイプに応じて、jobType
の値はUserExport,
GroupExport
またはAppRoleExport
になります。
また、jobType
の値がExport
で、属性resourceType
が追加され、エクスポートするデータのタイプに応じてUser,
Group
またはAppRole
の値を指定できる汎用エクスポート・オプションもあります。
AppRoleメンバーシップを単一のアプリケーションにエクスポートします。複数のアプリケーション間でエクスポートすると、様々なAppRolesのメンバーシップがすべてのアプリケーション間でエクスポートされます。
次の例では、リソース固有のjobType
エクスポートと一般エクスポート・オプションの両方を示します。
リソース固有のjobTypeエクスポートのリクエストの例
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"
リソース固有のjobTypeエクスポートのレスポンスの例
id
値(レスポンスの例で太字で表示)をメモしておいてください。これは、次の項で指定するjobScheduleid
の値になります。{
"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"
]
}
一般エクスポートのリクエストの例
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"
一般エクスポートのレスポンスの例
id
値(レスポンスの例で太字で表示)をメモしておいてください。これは、次の項で指定するjobScheduleid
の値になります。{
"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"
}
}
ジョブ詳細の表示
エクスポート・ジョブの詳細を表示するには、識別子としてjobScheduleid
を使用してGETリクエストを/job/v1/JobHistories
エンドポイントに送信します。
リクエストの例
curl
-X GET
-H "Authorization: Bearer <AccessToken>"
"https://<domainURL>/job/v1/JobHistories?filter=jobScheduleid%20eq%20%229cc824a6-87df-4831-8d2b-6cb524384733%22"
レスポンスの例
id
値(レスポンスの例で太字で表示)をメモしておいてください。これは、次の項で指定するジョブhistoryId
の値です。{
"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"]
}
ジョブ・レポートの表示
エクスポート・ジョブのジョブ・レポートを表示するには、識別子としてジョブhistoryId
を使用してGETリクエストを/job/v1/JobReports
エンドポイントに送信します。
リクエストの例
curl
-X GET
-H "Authorization: Bearer <AccessToken>"
"https://<domainURL>/job/v1/JobReports?filter=historyId%20eq%20%22d17135ee4d2a4c2e8d7e29eccb7c4f71%22"
レスポンスの例
name
値(レスポンスの例で太字で表示)をメモしておいてください。これは、次の項で指定するfileName
の値です。{
"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
}
ファイルのダウンロード
サーバーからファイルをダウンロードするには、識別子としてfileName
を使用してGETリクエストを/storage/v1/Files
エンドポイントに送信します。
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"