REST APIを使用したエクスポート

この項では、アイデンティティ・ドメインREST APIを使用して、使用している環境から別のアイデンティティ・ドメインにユーザー、グループおよびAppRolesをエクスポートする場合のリクエストとレスポンスの例を示します。

次の各項で、そのステップについて説明します。

ノート

アイデンティティ・ドメインからのCSVファイルのエクスポートを安全に処理するために、次の文字で始まるセル値はすべてエスケープされます。これにより、ブロックリストに記載されたこれらの値のいずれかでセル値が始まる場合、CSVでエスケープされ、CSV注入が回避されます。たとえば、エクスポート時に値が@testの場合、実際の値は'@test'になります。
  • at: @
  • Plus: +
  • マイナス: -
  • 等しい: =
  • パイプ: |
  • 割合: %

エクスポート・ジョブのスケジュール

ノート

許可されているCSV列名とその説明の完全なリストにアクセスするには、次のリクエストを使用します:
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"