ユーザー・スキーマのカスタマイズ

アイデンティティ・ドメインの使用を開始する場合、組織内外の様々な部門の要件に基づいて、異なるユーザー・アイデンティティのセットをロードできます。スキーマのカスタマイズでは、アイデンティティ・ドメイン固有のカスタム・スキーマを作成して、リソースの即時利用可能な(OOTB)属性を補完し、ユーザー・スキーマを拡張できます。

カスタム・スキーマは、属性を定義せずに空のスキーマとして使用できるOOTBです。次のカスタム・ユーザー・スキーマは、属性のない空のカスタム・スキーマの例です。このカスタム・スキーマは、このユースケースのすべてのサンプル・リクエスト・ペイロードの例として使用されます。

{
    "name": "CustomUser",
    "description": "Custom User",
    "id": "urn:ietf:params:scim:schemas:idcs:extension:custom:User",
    "idcsResourceTypes": [
        "User"
    ],
    "schemas": [
        "urn:ietf:params:scim:schemas:core:2.0:Schema"
    ],
    "meta": {
        "resourceType": "Schema",
        "created": "2022-08-15T05:02:13.788Z",
        "lastModified": "2022-08-15T05:02:13.788Z",
        "location": "https://<domainURL>>/admin/v1/Schemas/urn:ietf:params:scim:schemas:idcs:extension:custom:User"
    },
    "idcsCreatedBy": {
        "value": "158d625222f442ef8fcc817593701dd9",
        "type": "App",
        "display": "idcssm",
        "$ref": "https://<domainURL>>/admin/v1/Apps/158d625222f442ef8fcc817593701dd9"
    },
    "idcsLastModifiedBy": {
        "value": "158d625222f442ef8fcc817593701dd9",
        "type": "App",
        "display": "idcssm",
        "$ref": "https://<domainURL>>/admin/v1/Apps/158d625222f442ef8fcc817593701dd9"
    }
}
ノート

次のプロパティは更新できません。これらのプロパティを更新しようとしても無視されます。
  • idcsSearchable

  • 一意性

  • caseExact

  • idcsSensitive

  • multiValued

  • 必須

カスタム・ユーザー・スキーマ属性の追加

次のリンクでは、PUTメソッドとPATCHメソッドの両方を使用してカスタム・ユーザー・スキーマ属性を追加するための情報およびリクエストの例を示します。属性の追加時に実行される検証に関する情報も含まれます。

カスタム・ユーザー・スキーマ属性の更新

次のリンクでは、PUTメソッドとPATCHメソッドの両方を使用して、カスタム・ユーザー・スキーマ属性を更新するための情報およびリクエストの例を示します。属性の更新時に実行される検証に関する情報も含まれます。

カスタム・スキーマ属性の削除

次のリンクでは、PUTメソッドとPATCHメソッドの両方を使用して、カスタム・ユーザー・スキーマ属性を削除する場合の情報とリクエストの例を示します。属性の削除時に実行される検証に関する情報も含まれます。

カスタム・ユーザー・スキーマ属性のインポートの有効化

次のリンクでは、カスタム・ユーザー・スキーマ属性をインポートする際の情報とリクエストの例を示します。

PUTを使用したカスタム・ユーザー・スキーマ属性の追加

PUTメソッドを使用して新しい属性を追加し、空のカスタム・スキーマに移入します。

この例では、次の属性を更新します:

属性 タイプ

subDivision

string

branchAddress

string

PUTリクエストの例

PUT /admin/v1/Schemas/urn:ietf:params:scim:schemas:idcs:extension:custom:User
{
    "name": "CustomUser",
    "description": "Custom User",
    "id": "urn:ietf:params:scim:schemas:extension:custom:2.0:User",
    "schemas": [
        "urn:ietf:params:scim:schemas:core:2.0:Schema"
    ],
    "idcsResourceTypes": ["User"],
    "attributes": [
        {
            "name": "subDivision",
            "idcsDisplayName": "Sub Division",
            "type": "string",
            "idcsMinLength": 5,
            "idcsMaxLength": 30,
            "description": "SubDivision",
            "multiValued": false,
            "returned": "always",
            "mutability": "readWrite",
            "idcsSearchable": true
        },
        {
            "name": "branchAddress",
            "idcsDisplayName": "Branch Address",
            "type": "string",
            "description": "Branch Office Address",
            "idcsMinLength": 5,
            "idcsMaxLength": 300,
            "multiValued": false,
            "returned": "always",
            "mutability": "readWrite",
            "idcsSearchable": true
        }
    ]
}
例のJSONレスポンス
{
    "name": "CustomUser",
    "description": "Custom User",
    "id": "urn:ietf:params:scim:schemas:idcs:extension:custom:User",
    "idcsResourceTypes": [
        "User"
    ],
    "schemas": [
        "urn:ietf:params:scim:schemas:core:2.0:Schema"
    ],
    "attributes": [
        {
            "idcsDisplayName": "Sub Division",
            "name": "subDivision",
            "mutability": "readWrite",
            "idcsMinLength": 5,
            "description": "SubDivision",
            "type": "string",
            "idcsSearchable": true,
            "idcsMaxLength": 30,
            "multiValued": false,
            "returned": "always",
            "uniqueness": "none",
            "required": false,
            "caseExact": true,
            "idcsValuePersisted": true,
            "idcsTargetAttributeName": "I_VC_40_IFLEX_1"
        },
        {
            "name": "branchAddress",
            "description": "Branch Office Address",
            "mutability": "readWrite",
            "idcsMinLength": 5,
            "type": "string",
            "idcsSearchable": true,
            "idcsMaxLength": 300,
            "multiValued": false,
            "returned": "always",
            "idcsDisplayName": "Branch Address",
            "uniqueness": "none",
            "required": false,
            "caseExact": true,
            "idcsValuePersisted": true,
            "idcsTargetAttributeName": "I_VC_4K_IFLEX_1"
        }
    ],
    "meta": {
        "lastModified": "2022-08-15T19:26:40.603Z",
        "resourceType": "TenantSchema",
        "created": "2022-08-15T05:02:13.788Z",
        "location": "https://<domainURL>>/admin/v1/TenantSchemas/urn:ietf:params:scim:schemas:idcs:extension:custom:User"
    },
    "idcsLastModifiedBy": {
        "type": "App",
        "display": "admin",
        "$ref": "https://<domainURL>>/admin/v1/Apps"
    },
    "idcsCreatedBy": {
        "value": "158d625222f442ef8fcc817593701dd9",
        "type": "App",
        "display": "idcssm",
        "$ref": "https://<domainURL>>/admin/v1/Apps/158d625222f442ef8fcc817593701dd9"
    }
}
}

PATCHを使用したカスタム・ユーザー・スキーマ属性の追加

この例では、PATCH "op": "add"を使用してカスタム属性を追加する方法を示します。

これらの操作中に実行される検証は、PUTメソッドに似ています。詳細は、属性の追加時に実行される検証の項を参照してください。

PATCHを使用してカスタム・スキーマを更新し、新しい属性を追加します。この例では、PATCH "add"操作が使用され、属性名がパッチ適用のためにリクエスト・ペイロードから選択されます。指定した名前がすでに存在する場合、自動的に置換されます。属性が存在しない場合は、自動的に追加されます。名前プロパティが欠落している場合は、エラー・メッセージが表示されます。

PATCHリクエストの例

PATCH /Schemas/urn:itef:params:scim:schemas:idcs:extension:custom:User
{
    "schemas": [
        "urn:ietf:params:scim:api:messages:2.0:PatchOp"
    ],
    "Operations": [
        {
            "op": "add",
            "path": "attributes",
            "value": [
                {
                    "idcsValuePersisted": true,
                    "uniqueness": "none",
                    "name": "nickName",
                    "idcsDisplayName": "NICKNAME100",
                    "description": "NICKNAME100",
                    "required": false,
                    "type": "string",
                    "idcsMinLength": 10,
                    "idcsMaxLength": 100,
                    "idcsAuditable": true,
                    "caseExact": true,
                    "returned": "default",
                    "idcsSearchable": true,
                    "multiValued": false
                }
            ]
        }
    ]
}

例のJSONレスポンス

{
    "name": "CustomUser",
    "description": "Custom User",
    "id": "urn:ietf:params:scim:schemas:idcs:extension:custom:User",
    "idcsResourceTypes": [
        "User"
    ],
    "schemas": [
        "urn:ietf:params:scim:schemas:core:2.0:Schema"
    ],
    "attributes": [
        {
            "idcsTargetAttributeName": "I_VC_4K_IFLEX_2",
            "idcsDisplayName": "NICKNAME100",
            "description": "NICKNAME100",
            "type": "string",
            "idcsAuditable": true,
            "required": false,
            "returned": "default",
            "idcsValuePersisted": true,
            "idcsMaxLength": 100,
            "idcsSearchable": true,
            "idcsMinLength": 10,
            "multiValued": false,
            "caseExact": true,
            "uniqueness": "none",
            "name": "nickName"
        }
    ],
    "meta": {
        "lastModified": "2022-08-15T19:31:37.247Z",
        "resourceType": "TenantSchema",
        "created": "2022-08-15T05:02:13.788Z",
        "location": "https://<domainURL>/admin/v1/TenantSchemas/urn:ietf:params:scim:schemas:idcs:extension:custom:User"
    },
    "idcsLastModifiedBy": {
        "type": "App",
        "display": "admin",
        "$ref": "https://<domainURL>/admin/v1/Apps"
    },
    "idcsCreatedBy": {
        "value": "158d625222f442ef8fcc817593701dd9",
        "type": "App",
        "display": "idcssm",
        "$ref": "https://<domainURL>/admin/v1/Apps/158d625222f442ef8fcc817593701dd9"
}

属性の追加時に実行される検証

カスタム属性を追加すると、アイデンティティ・ドメインは特定の検証を実行します。次の表に、追加操作に基づく検証を示します。

検証の追加

この表では、新しいカスタム属性をターゲット・スキーマに追加する際にアイデンティティ・ドメインで実行される検証について説明します。

属性名 検証実行済

名前

重複をチェックします。この値は、カスタム・スキーマ全体で一意である必要があります。

idcsDisplayName

重複をチェックします。この値は、カスタム・スキーマ全体で一意である必要があります。

idcsMaxLength

値は2以上にする必要があります。

idcsMinLength

値は1以上にする必要があります。

戻り済

値は、常に、デフォルト、リクエスト、決してないなどの有効な戻り値である必要があります。

値は単一値の文字列である必要があります。

変異性

値は、readWrite、readOnly、不変、書込み専用などの有効な可変性である必要があります。

idcsCsvAttributeNameMappings.columnHeaderName

値は、カスタム・スキーマ全体で一意である必要があります。

idcsCsvAttributeNameMappings.multiValueDelimiter

idcsCsvAttributeNameMappingsを含む複数値属性の必須属性。

PUTを使用したカスタム・ユーザー・スキーマ属性の更新

PUTメソッドを使用して、カスタム・スキーマ内の属性を更新します。

属性を更新しています

この例では、subDivisionおよびbranchAddressの属性を更新します。

PUTリクエストの例

PUT /admin/v1/Schemas/urn:ietf:params:scim:schemas:idcs:extension:custom:User
{
    "name": "CustomUser",
    "description": "Custom User",
    "id": "urn:ietf:params:scim:schemas:extension:custom:2.0:User",
    "schemas": [
        "urn:ietf:params:scim:schemas:core:2.0:Schema"
    ],
    "idcsResourceTypes": ["User"],
    "attributes": [
        {
            "name": "subDivision",
            "idcsDisplayName": "Sub Division Office",
            "type": "string",
            "idcsMinLength": 5,
            "idcsMaxLength": 35,
            "description": "SubDivision",
            "multiValued": false,
            "returned": "always",
            "mutability": "readWrite",
            "idcsSearchable": true
        },
        {
            "name": "branchAddress",
            "idcsDisplayName": "Branch Address",
            "type": "string",
            "description": "Branch Office Address",
            "idcsMinLength": 5,
            "idcsMaxLength": 350,
            "multiValued": false,
            "returned": "always",
            "mutability": "readWrite",
            "idcsSearchable": true
        }
    ]
}

例のJSONレスポンス

{
    "name": "CustomUser",
    "description": "Custom User",
    "id": "urn:ietf:params:scim:schemas:idcs:extension:custom:User",
    "idcsResourceTypes": [
        "User"
    ],
    "schemas": [
        "urn:ietf:params:scim:schemas:core:2.0:Schema"
    ],
    "attributes": [
        {
            "idcsDisplayName": "Sub Division Office",
            "idcsMaxLength": 35,
            "required": false,
            "idcsValuePersisted": true,
            "caseExact": true,
            "uniqueness": "none",
            "idcsTargetAttributeName": "I_VC_40_IFLEX_1",
            "name": "subDivision",
            "type": "string",
            "idcsMinLength": 5,
            "description": "SubDivision",
            "multiValued": false,
            "returned": "always",
            "mutability": "readWrite",
            "idcsSearchable": true
        },
        {
            "required": false,
            "idcsValuePersisted": true,
            "idcsTargetAttributeName": "I_VC_4K_IFLEX_1",
            "idcsMaxLength": 350,
            "caseExact": true,
            "uniqueness": "none",
            "name": "branchAddress",
            "idcsDisplayName": "Branch Address",
            "type": "string",
            "description": "Branch Office Address",
            "idcsMinLength": 5,
            "multiValued": false,
            "returned": "always",
            "mutability": "readWrite",
            "idcsSearchable": true
        }
    ],
    "meta": {
        "lastModified": "2022-08-15T19:45:17.046Z",
        "resourceType": "TenantSchema",
        "created": "2022-08-15T05:02:13.788Z",
        "location": "https://<domainURL>>/admin/v1/TenantSchemas/urn:ietf:params:scim:schemas:idcs:extension:custom:User"
    },
    "idcsLastModifiedBy": {
        "type": "App",
        "display": "admin",
        "$ref": "https://<domainURL>>/admin/v1/Apps"
    },
    "idcsCreatedBy": {
        "value": "158d625222f442ef8fcc817593701dd9",
        "type": "App",
        "display": "idcssm",
        "$ref": "https://<domainURL>>/admin/v1/Apps/158d625222f442ef8fcc817593701dd9"
    }
}

複数値文字列属性の更新

PUTメソッドを使用して、既存のカスタム・スキーマの複数値文字列属性を更新できます。この例では、hobbiesの複数値文字列属性を追加します。

PUTリクエストの例

PUT admin/v1/Schemas/urn:ietf:params:scim:schemas:idcs:extension:custom:User
{
    "name": "CustomUser",
    "description": "Custom User",
    "id": "urn:ietf:params:scim:schemas:idcs:extension:custom:User",
    "schemas": [
        "urn:ietf:params:scim:schemas:core:2.0:Schema"
    ],
    "idcsResourceTypes": ["User"],
    "attributes": [
        {
            "name": "workName",
            "idcsDisplayName": "workName",
            "description": "workName",
            "required": false, 
            "type": "string",
            "idcsMinLength": 1,
            "idcsMaxLength": 4000,
            "idcsAuditable": true,
            "caseExact": true,
            "returned": "default",
            "idcsSearchable": false,
            "multiValued": false,
            "idcsCsvAttributeName": "CSV1"
        },
        {
            "name": "hobbies",
            "idcsDisplayName": "hobbies",
            "description": "hobbies",
            "required": true,
            "type": "string",
            "idcsMinLength": 1,
            "idcsMaxLength": 20,
            "idcsAuditable": true,
            "returned": "default",
            "idcsValuePersisted": true,
            "idcsSearchable": true,
            "multiValued": true
        },    
        {
            "name": "county",
            "idcsDisplayName": "county",
            "description": "county",
            "type": "string",
            "required": false,  
            "idcsMinLength": 1,
            "idcsMaxLength": 40,
            "idcsAuditable": true,
            "caseExact": true,
            "returned": "default",
            "idcsCsvAttributeName": "CSV3",
            "idcsSearchable": false,
            "multiValued": false 
        },
        {
            "name": "nationality",
            "idcsDisplayName": "nationality",
            "description": "nationality",
            "required": true,
            "type": "string",
            "idcsMinLength": 1,
            "idcsMaxLength": 20,
            "idcsAuditable": true,
            "returned": "default",
            "idcsValuePersisted": true,
            "idcsSearchable": true,
            "multiValued": false
        } 
    ]
}

PATCHを使用したカスタム・ユーザー・スキーマ属性の更新

PATCHメソッドを使用して、カスタム・スキーマの属性を置換します。

置換操作の使用

この例では、PATCH "replace"操作が使用され、属性名がパッチ適用のリクエスト・ペイロードから選択されます。指定された名前がすでに存在する場合、自動的に置換されます。存在しない場合、エラー・メッセージが表示されます。

PATCHリクエストの例

Patch /Schemas/urn:item:params:scam:schemas:idcs:extension:custom:User
{
    "schemas": [
        "urn:ietf:params:scim:api:messages:2.0:PatchOp"
    ],
    "Operations": [
        {
            "op": "replace",
            "path": "attributes",
            "value": [
                {
                    "name": "nickName",
                    "idcsDisplayName": "nickName",
                    "description": "Nickname",
                    "required": false,
                    "type": "string",
                    "idcsMinLength": 3,
                    "idcsMaxLength": 25,
                    "idcsAuditable": false,
                    "caseExact": true,
                    "returned": "default",
                    "multiValued": false
                }
            ]
        }
    ]
}

例のJSONレスポンス

{
    "name": "CustomUser",
    "description": "Custom User",
    "id": "urn:ietf:params:scim:schemas:idcs:extension:custom:User",
    "idcsResourceTypes": [
        "User"
    ],
    "schemas": [
        "urn:ietf:params:scim:schemas:core:2.0:Schema"
    ],
    "attributes": [
        {
            "idcsTargetAttributeName": "U_VC_40_IFLEX_1",
            "idcsAuditable": false,
            "idcsValuePersisted": true,
            "description": "Nickname",
            "idcsSearchable": true,
            "idcsMaxLength": 25,
            "uniqueness": "none",
            "name": "nickName",
            "idcsDisplayName": "nickName",
            "required": false,
            "type": "string",
            "idcsMinLength": 3,
            "caseExact": true,
            "returned": "default",
            "multiValued": false
        }
    ],
    "meta": {
        "lastModified": "2022-08-15T19:55:17.467Z",
        "resourceType": "TenantSchema",
        "created": "2022-08-15T05:02:13.788Z",
        "location": "https://<domainURL>>/admin/v1/TenantSchemas/urn:ietf:params:scim:schemas:idcs:extension:custom:User"
    },
    "idcsLastModifiedBy": {
        "type": "App",
        "display": "admin",
        "$ref": "https://<domainURL>>/admin/v1/Apps"
    },
    "idcsCreatedBy": {
        "value": "158d625222f442ef8fcc817593701dd9",
        "type": "App",
        "display": "idcssm",
        "$ref": "https://<domainURL>>/admin/v1/Apps/158d625222f442ef8fcc817593701dd9"
    }
}

フィルタでの置換操作の使用

  • この例では、PATCH "replace"操作をフィルタとともに使用して、"returned"属性が"always"に設定されている"required"プロパティを持つすべての属性を"true"に更新します:
    PATCH /Schemas/urn:item:params:scam:schemas:ides:extension:custom:User
    {
        "schemas": [
            "urn:ietf:params:scim:api:messages:2.0:PatchOp"
        ],
        "Operations": [{
                "op": "replace",
                "path": "attributes[name eq \"workName\"].idcsDisplayName",
                "value": "workplace Name"
            }]
    }
  • この例では、PATCH "replace"操作をフィルタとともに使用して、"auditable"プロパティが"true"に設定されているすべての属性を"false"に更新します。
    PATCH /Schemas/urn:item:params:scam:schemas:ides:extension:custom:User
    {
        "schemas": [
            "urn:ietf:params:scim:api:messages:2.0:PatchOp"
        ],
        "Operations": [{
                "op": "replace",
                "path": "attributes[returned eq \"default\"].required",
                "value": true
            }]
    }

例のJSONレスポンス

{
    "name": "CustomUser",
    "description": "Custom User",
    "id": "urn:ietf:params:scim:schemas:idcs:extension:custom:User",
    "idcsResourceTypes": [
        "User"
    ],
    "schemas": [
        "urn:ietf:params:scim:schemas:core:2.0:Schema"
    ],
    "attributes": [
        {
            "idcsTargetAttributeName": "I_VC_40_IFLEX_1",
            "idcsMinLength": 1,
            "idcsValuePersisted": true,
            "idcsMaxLength": 20,
            "type": "string",
            "idcsSearchable": true,
            "idcsDisplayName": "nationality",
            "name": "nationality",
            "idcsAuditable": true,
            "multiValued": false,
            "description": "nationality",
            "returned": "default",
            "required": false,
            "uniqueness": "none",
            "caseExact": true
        },
        {
            "idcsTargetAttributeName": "U_VC_4K_IFLEX_1",
            "idcsDisplayName": "workplace Name",
            "description": "workName",
            "idcsCsvAttributeName": "CSV1",
            "type": "string",
            "idcsMaxLength": 4000,
            "idcsAuditable": true,
            "required": false,
            "returned": "default",
            "idcsMinLength": 1,
            "name": "workName",
            "idcsSearchable": false,
            "multiValued": false,
            "caseExact": true,
            "uniqueness": "none",
            "idcsValuePersisted": true
        }
    ],
    "meta": {
        "lastModified": "2022-08-15T20:15:21.969Z",
        "resourceType": "TenantSchema",
        "created": "2022-08-15T05:02:13.788Z",
        "location": "https://<domainURL>>/admin/v1/TenantSchemas/urn:ietf:params:scim:schemas:idcs:extension:custom:User"
    },
    "idcsLastModifiedBy": {
        "type": "App",
        "display": "admin",
        "$ref": "https://<domainURL>>/admin/v1/Apps"
    },
    "idcsCreatedBy": {
        "value": "158d625222f442ef8fcc817593701dd9",
        "type": "App",
        "display": "idcssm",
        "$ref": "https://<domainURL>>/admin/v1/Apps/158d625222f442ef8fcc817593701dd9"
    }
}

置換操作を使用した複数値文字列属性の更新

PATCHメソッドを使用して、カスタム・スキーマ内の複数値文字列属性を置換できます。この例では、PATCH "replace"操作が使用され、属性名がパッチ適用のリクエスト・ペイロードから選択されます。指定された名前がすでに存在する場合、自動的に置換されます。存在しない場合、エラー・メッセージが表示されます。

PATCHリクエストの例

Patch admin/v1/Schemas/urn:ietf:params:scim:schemas:idcs:extension:custom:User
{
    "schemas": [
        "urn:ietf:params:scim:api:messages:2.0:PatchOp"
    ],
    "Operations": [{
            "op": "replace",
            "path": "attributes",
            "value": [
                {
                    "name": "hobbies",
                    "idcsDisplayName": "hobbies",
                    "description": "hobbies",
                    "required": true,
                    "type": "string",
                    "idcsMinLength": 1,
                    "idcsMaxLength": 20,
                    "idcsAuditable": true,
                    "returned": "default",
                    "idcsValuePersisted": true,
                    "idcsSearchable": true,
                    "multiValued": true
                }
            ] 
        }
    ]
}

属性の更新時に実行される検証

カスタム属性を置き換えるたびに、アイデンティティ・ドメインは特定の検証を実行します。次の表に、置換/更新操作に基づく検証を示します。

検証の置換/更新

この表では、既存のカスタム属性をターゲット・スキーマに更新する際にアイデンティティ・ドメインで実行される検証について説明します。

属性名 検証実行済

idcsMinLength

値は1以上にする必要があります。属性に割り当てられた列制限を超えることはできません。

たとえば、U_VC_40列を割り当てた場合、idcsMinLengthは40を超えることはできません。

idcsMaxLength

値は1以上にする必要があります。属性のidcsMaxLength値以上にする必要があり、属性に割り当てられた列制限を超えることはできません。

たとえば、U_VC_40列を割り当てた場合、idcsMaxLengthは40を超えることはできません。

idcsMinValue

値は、ストアに現在存在する値以上にする必要があります。

idcsMaxValue

値は、ストアに現在存在する値以下にする必要があります。

canonicalValues

値は、現在ストアに存在する内容のスーパー・セットである必要があります。

idcsCsvAttributeName

値は、カスタム・スキーマ全体で一意である必要があります。

名前

値は、カスタム・スキーマ全体で一意である必要があります。

idcsDisplayName

値は、カスタム・スキーマ全体で一意である必要があります。

PUTを使用したカスタム・ユーザー・スキーマ属性の削除

PUTメソッドを使用して、カスタム・スキーマ内の属性を削除します。

カスタム属性subDivisionおよびbranchAddressがカスタム・スキーマにすでに存在する場合は、次のPUTリクエストを使用してbranchAddressを削除できます。

ノート

属性は、カスタム・スキーマからはじめて作成する場合のみ、カスタム・スキーマから削除することをお薦めします。カスタム属性を使用して多くのユーザーがすでにプロビジョニングされている可能性があるため、カスタム・スキーマの作成後に属性を削除すると、問題が発生する場合があります。属性を使用してユーザーがプロビジョニングされた後にカスタム・スキーマ属性を削除するには、最初に、カスタム・スキーマ属性に関連するすべてのデータをデータベースから削除する必要があります。

PUTリクエストの例

PUT /admin/v1/Schemas/urn:ietf:params:scim:schemas:idcs:extension:custom:User
{
    "name": "CustomUser",
    "description": "Custom User",
    "id": "urn:ietf:params:scim:schemas:extension:custom:2.0:User",
    "schemas": [
        "urn:ietf:params:scim:schemas:core:2.0:Schema"
    ],
    "idcsResourceTypes": ["User"],
    "attributes": [
        {
            "name": "subDivision",
            "idcsDisplayName": "Sub Division Office",
            "type": "string",
            "idcsMinLength": 5,
            "idcsMaxLength": 35,
            "description": "SubDivision",
            "multiValued": false,
            "returned": "always",
            "mutability": "readWrite",
            "idcsSearchable": true
        }
    ]
}

例のJSONレスポンス

{
    "name": "CustomUser",
    "description": "Custom User",
    "id": "urn:ietf:params:scim:schemas:idcs:extension:custom:User",
    "idcsResourceTypes": [
        "User"
    ],
    "schemas": [
        "urn:ietf:params:scim:schemas:core:2.0:Schema"
    ],
    "attributes": [
        {
            "required": false,
            "idcsValuePersisted": true,
            "caseExact": true,
            "uniqueness": "none",
            "idcsTargetAttributeName": "I_VC_40_IFLEX_1",
            "name": "subDivision",
            "idcsDisplayName": "Sub Division Office",
            "type": "string",
            "idcsMinLength": 5,
            "idcsMaxLength": 35,
            "description": "SubDivision",
            "multiValued": false,
            "returned": "always",
            "mutability": "readWrite",
            "idcsSearchable": true
        }
    ],
    "meta": {
        "lastModified": "2022-08-15T20:02:04.354Z",
        "resourceType": "TenantSchema",
        "created": "2022-08-15T05:02:13.788Z",
        "location": "https://<domainURL>>/admin/v1/TenantSchemas/urn:ietf:params:scim:schemas:idcs:extension:custom:User"
    },
    "idcsLastModifiedBy": {
        "type": "App",
        "display": "admin",
        "$ref": "https://<domainURL>>/admin/v1/Apps"
    },
    "idcsCreatedBy": {
        "value": "158d625222f442ef8fcc817593701dd9",
        "type": "App",
        "display": "idcssm",
        "$ref": "https://<domainURL>>/admin/v1/Apps/158d625222f442ef8fcc817593701dd9"
    }
}

PATCHを使用したカスタム・ユーザー・スキーマ属性の削除

この項では、カスタム・ユーザー・スキーマ属性を削除する際のPATCH "op":"remove"の使用について説明します。

フィルタでの削除操作の使用

  • この例では、PATCH "remove"操作をフィルタとともに使用して、"subDivision"属性を削除します。
    PATCH  /Schemas/urn:item:params:scam:schemas:ides:extension:custom:User
    {
        "schemas": [
            "urn:ietf:params:scim:api:messages:2.0:PatchOp"
        ],
        "Operations": [{
                "op": "remove",
                "path": "attributes[name eq \"subDivision\"]"
            }]
    }
  • この例では、PATCH "remove"操作をフィルタとともに使用して、"required"プロパティが"false"のすべての属性を削除します。
    Patch  /Schemas/urn:item:params:scam:schemas:ides:extension:custom:User
    {
        "schemas": [
            "urn:ietf:params:scim:api:messages:2.0:PatchOp"
        ],
        "Operations": [{
                "op": "remove",
                "path": "attributes[required eq false]"
            }]
    }

例のJSONレスポンス

{
    "name": "CustomUser",
    "description": "Custom User",
    "id": "urn:ietf:params:scim:schemas:idcs:extension:custom:User",
    "idcsResourceTypes": [
        "User"
    ],
    "schemas": [
        "urn:ietf:params:scim:schemas:core:2.0:Schema"
    ],
    "attributes": [
        {
            "required": true,
            "idcsValuePersisted": true,
            "idcsTargetAttributeName": "I_VC_4K_IFLEX_1",
            "idcsMaxLength": 350,
            "caseExact": true,
            "uniqueness": "none",
            "name": "branchAddress",
            "idcsDisplayName": "Branch Address",
            "type": "string",
            "description": "Branch Office Address",
            "idcsMinLength": 5,
            "multiValued": false,
            "returned": "always",
            "mutability": "readWrite",
            "idcsSearchable": true
        }
    ],
    "meta": {
        "lastModified": "2022-08-15T20:06:53.745Z",
        "resourceType": "TenantSchema",
        "created": "2022-08-15T05:02:13.788Z",
        "location": "https://<domainURL>/admin/v1/TenantSchemas/urn:ietf:params:scim:schemas:idcs:extension:custom:User"
    },
    "idcsLastModifiedBy": {
        "type": "App",
        "display": "admin",
        "$ref": "https://<domainURL>/admin/v1/Apps"
    },
    "idcsCreatedBy": {
        "value": "158d625222f442ef8fcc817593701dd9",
        "type": "App",
        "display": "idcssm",
        "$ref": "https://<domainURL>/admin/v1/Apps/158d625222f442ef8fcc817593701dd9"
    }
}

属性の削除時に実行される検証

カスタム属性を削除するたびに、アイデンティティ・ドメインは特定の検証を実行します。

PUTまたはPATCHを使用してカスタム属性を削除すると、アイデンティティ・ドメインは削除検証を実行して、その属性のデータが以前にデータベースにプロビジョニングされていないことを確認します。データがプロビジョニングされている場合、削除操作は失敗します。

カスタム・ユーザー・スキーマ属性のインポートの有効化

.csvファイルを使用して新しいスキーマ属性にデータをインポートするには、最初に、新しい属性の列名の値を設定する必要があります。

この例では、employeeStatus.という新しいユーザー属性が作成されています。.csvファイルからその属性にデータをインポートできるように、この属性の列名値を設定するには、属性を内部的にidcsCsvAttributeNameMappingsにマップします。

PATCHリクエストの例

次のリクエストの例では、employeeStatus文字列カスタム属性の列名の値を設定する方法を示しています。

PATCH /admin/v1/Schemas/urn:ietf:params:scim:schemas:idcs:extension:custom:User
{
    "schemas": ["urn:ietf:params:scim:api:messages:2.0:PatchOp"],
    "Operations": [
        {
            "op": "add",
            "path": "attributes[name eq \"employeeStatus\"].idcsCsvAttributeNameMappings",
            "value": [
                {
                    "columnHeaderName": "Employee Status"
                }
            ]
        }
    ]
}

従業員ステータスという名前の列(およびデータ)を含む.csvファイルを使用して、データをインポートできます。

次のリクエストの例では、.csvファイルで値がカンマ区切りになるお気に入り色という名前の文字列配列カスタム属性の列名を設定する方法を示しています。

{
    "schemas": ["urn:ietf:params:scim:api:messages:2.0:PatchOp"],
    "Operations": [
        {
            "op": "add",
            "path": "attributes[name eq \"favoriteColors\"].idcsCsvAttributeNameMappings",
            "value": [
                {
                    "columnHeaderName": "Favorite Colors",
                    "multiValueDelimiter": ","
                }
            ]
        }
    ]
}

詳細情報

  • アイデンティティ・ドメインREST APIを使用したユーザー・データのインポートに関するユースケースは、「インポート」を参照してください。