4.0
SCIM

1. SCIMとは

SCIM(System for Cross-domain Identity Management)は、異なるドメイン間でのユーザー・グループ情報の管理を行うための標準規格です。
RESTfulなWebサービスとして提供され、JSON形式でユーザー・グループ情報を取得、登録、更新、削除するためのAPIを提供します。

SCIM 2.0 の詳細については、 ⧉RFC7642 ⧉RFC7643 ⧉RFC7644 を参照してください。

iPLAss では、SCIM 2.0 の API をサポートしており、以下のような機能を提供します。

Identity Provider 機能

SCIM 2.0 に対応する外部サービスより、iPLAss がリクエストを受信します。
受信したリクエストに基づいてユーザー・グループ情報の登録、更新、削除を行います。

Service Provider 機能

SCIM 2.0 に対応する外部サービスに対して、iPLAss がリクエストを送信します。
iPLAss でユーザー・グループ情報の追加・更新・削除が契機となり、リクエストを送信します。

iPLAss で SCIM 機能を利用するためには、AdminConsole でメタデータを定義します。 利用する機能に応じて Service-Config の設定が必要な場合もあります。

2. Identity Provider 機能

Identity Provider 機能では外部のサービスからユーザー・グループ情報の更新を受け付けます。
WebAPI でリクエストを受信し、受信したリクエストに基づいてユーザー・グループ情報の登録、更新、削除を行います。

scim idp
Figure 1. SCIM Identity Provider 機能概要図

① 外部サービスがSCIMリクエストを送信
② WebAPI でリクエストを受信
③ リクエストの内容に沿ってユーザー・グループ情報の登録、更新、削除

2.1. 設定

Identity Provider 機能を利用するためには、以下の設定が必要となります。

Service-Config

  1. ScimIdentityProviderService の設定

    1. Identity Provider 機能の動作を設定します。設定の詳細については 設定(service-config)リファレンス を参照してください。

メタデータ

メタデータは Admin Console で作成します。

Security/SCIM/IdentityProvider

Identity Provider 機能のメタデータは Admin Console メニューの Security > SCIM > Identity Provider から作成します。

scim idp configure metadata menu
Figure 2. Admin Console メニュー(IdentityProvider)

設定画面は、全体設定、リソース設定、リソースプロパティ設定から構成されます。

全体設定

Identity Provider 機能全体の機能の振る舞いを設定します。

リソース設定

リソースタイプに関する振る舞いを設定します。 以下のタブが存在しており、それぞれの設定項目は同じです。

  • User タブ

    • User エンドポイントにリクエストされたときの動作を設定します。

    • mtp.auth.User エンティティに対応します。

  • Group タブ

    • Group エンドポイントにリクエストされたときの動作を設定します。

    • mtp.auth.Group エンティティに対応します。

リソースプロパティ設定

リソースのプロパティに関する設定を行います。
受け付けたリクエストの本文を、該当するエンティティに変換する際の設定を行います。

Section: SCIM Identity Provider Attribute(全体設定)
設定項目 説明

Enable Receive

チェックすることで Identity Provider 機能が有効になり、外部サービスからのリクエストを受信が可能となります。

Endpoint

User, Group などのリクエストを受信するエンドポイントとなります。表示のみの項目です。

Default Display Count

一度に表示するデータの件数のデフォルト値を設定します。初期値は 10 が設定されます。

Max Display Count

一度に表示するデータの件数の最大値を設定します。初期値は 100 が設定されます。

Timezone

日時データをUTCフォーマットに変更する際のタイムゾーンを指定します。初期値はシステムのタイムゾーンが設定されます。

Date Time format

日時データのフォーマットを指定します。初期値は yyyy-MM-dd’T’HH:mm:ss.SSSZ が設定されます。

Use trashbox for delete

削除リクエストを受け付けた際に、データ削除時にゴミ箱を利用するか設定します。チェックすることでゴミ箱を利用します。

Enable Entity Listener

エンティティにレコードの登録・更新・削除を行った際に、当該エンティティに設定されているリスナーを有効にするか設定します。チェックすることでレコードの更新がリスナーに通知されます。

Acceptable User

レコード更新操作を行うユーザーを指定します。指定したユーザーのみがレコードの更新操作を行うことができます。特に指定しない場合は All Users を設定してください。

Section: SCIM Identity Provider Resource Configuration(リソース設定)
設定項目 説明

External ID Store Property Name

SCIM リクエストを受信した際、リクエストに含まれる外部 ID を保持するプロパティを指定します。

Standard properties

mtp.auth.User, mtp.auth.Group エンティティの標準的なプロパティを設定します。プロパティの設定項目については、Section: SCIM Identity Provider Resource Configuration(リソースプロパティ設定) を参照してください。
ここに設定される行はエンティティに定義されている標準的なプロパティのため、Entity Property Name の変更、行の削除はできません。
独自に追加したプロパティは、Extended properties に設定します。

SCIM 2.0 のスキーマ仕様については、以下をご確認ください。

Extended properties

mtp.auth.User, mtp.auth.Group エンティティで独自に追加したプロパティを設定します。プロパティの設定項目については、Section: SCIM Identity Provider Resource Configuration(リソースプロパティ設定) を参照してください。
グリッド下部の Add ボタンで行を追加、 Remove ボタンで選択行を削除します。

SCIM 2.0 のスキーマ仕様については、以下をご確認ください。

Provisioning Handler Class Name

リクエストによってレコード登録・更新・削除を行う前に、リソース設定によって作成されたエンティティ情報の更新や、拡張操作を実現するための完全修飾クラス名を指定します。
設定するクラスは org.iplass.mtp.webapi.scim.ScimProvisioningHandler を実装する必要があります。

Provisioning Script

リクエストによってレコード登録・更新・削除を行う前に、リソース設定によって作成されたエンティティ情報の更新や、拡張操作を実現するためのスクリプトを指定します。
スクリプトは Groovy 言語で記述します。 Provisioning Handler Class name と同時に設定された場合は、スクリプトが優先されます。

Section: SCIM Identity Provider Resource Configuration(リソースプロパティ設定)
設定項目 説明

Entity Property Name

mtp.auth.User, mtp.auth.Group エンティティのプロパティ名を設定します。

Default Display

検索リクエストされた際に、レスポンスに当該プロパティの値をデフォルトで含める場合にチェックを入れます。
チェックが無い場合は、リクエストのクエリパラメータ attributes に属性が設定された場合に表示されます。

Required

SCIM スキーマの属性の必須を設定します。 選択可能な値は以下の通りです。

設定値 説明

auto

エンティティのプロパティ定義を確認し、自動で設定します。

required

属性値は必須です。

optional

属性値は任意です。

Mutability

SCIM スキーマ属性の可変性を設定します。選択可能な値と設定した値の動作は以下の通りです。

設定値 説明 読み取り 新規登録 更新
(null
→ 有効値)
更新
(有効値
→ 有効値)

auto

エンティティのプロパティ定義を確認し、自動で設定します。

-

-

-

-

readOnly

読み取り専用です。

×

×

readWrite

読み書き可能です。

immutable

値が存在している場合は、変更することはできません。

×

writeOnly

書き込み専用です。

×

Attribute Path

SCIM スキーマの属性のパスを設定します。属性パスには以下のようなパターンのパスが指定できます。

設定パターン 設定例

通常属性

name

サブパス

name.familyName

配列(通常)

emails[0].value

配列(条件)

emails[type eq "work"].value

配列(条件)のオペレータは eq のみサポートします。and, or など他のオペレータはサポートしていません。

Constant Value

プロパティに値が無い場合、Entity Property Name の設定が無い場合に設定される固定値を指定します。

scim idp configure metadata configure
Figure 3. SCIM/IdentityProvider設定画面

認証設定

リクエストを受け付けるための認証設定が必要となります。以下の認証方法をサポートしています。

個人アクセストークン(Bearer トークンによる認証)

GEM(TopView) - アプリの管理 を参照し個人アクセストークンを発行してください。
発行した個人アクセストークンは、リクエストヘッダーの AuthorizationBearer トークンとして設定してください。

BASIC認証

service-config の設定を行い、BASIC認証を有効化する必要があります。
設定方法については AuthService - IdPasswordAutoLoginHandler を参照してください。

2.2. 利用方法

エンドポイント

メタデータを作成することで、エンドポイントが作成されます。
エンドポイントのベースは以下のようになります。

(http|https)://<host><:port>/<context>/<tenant>/api/scim/v2/<metaName>

構成要素の説明
  • <host>: ホスト名

  • <:port>: ポート番号 (省略可能)

  • <context>: アプリケーションコンテキスト。サーバー構築時の設定により異なります。

  • <tenant>: テナント名。テナント構築時に設定したテナント名を指定します。

  • <metaName>: Identity Provider メタデータ作成時の名前を指定します。

リソースタイプに応じたエンドポイントは以下のような形式となります。

エンドポイントの説明
リソースタイプ URL 対応メソッド 説明

User

(http|https)://<host><:port>/<context>/<tenant>/api/scim/v2/<metaName>/Users

GET, POST, PUT, DELETE

ユーザーリソースを操作します。

Group

(http|https)://<host><:port>/<context>/<tenant>/api/scim/v2/<metaName>/Groups

GET, POST, PUT, DELETE

グループリソースを操作します。

ServiceProviderConfig

(http|https)://<host><:port>/<context>/<tenant>/api/scim/v2/<metaName>/ServiceProviderConfig

GET

利用可能なSCIM仕様機能を取得します。

Schema

(http|https)://<host><:port>/<context>/<tenant>/api/scim/v2/<metaName>/Schemas

GET

サポートするリソーススキーマに関する情報を取得します。

ResourceType

(http|https)://<host><:port>/<context>/<tenant>/api/scim/v2/<metaName>/ResourceTypes

GET

利用可能なリソースのタイプ(ユーザーやグループなど)を検出します。

以下の資料も合わせて確認ください。

以下の操作はサポートされていません。

  • PATCH メソッドを利用した更新

  • /bulk エンドポイントを利用した操作

ユーザー・グループのリソースエンドポイントに対して GET メソッドを実行することで、情報を取得することができます。
検索は、一覧検索と詳細検索があります。

一覧検索

リソースエンドポイントに対して GET リクエストを行います。

リクエスト例
GET https://example.com/iplass/tenant/api/scim/v2/idpMetaName/Users
content-type: application/scim+json;charset=UTF-8
 :
 :
レスポンス例
HTTP/1.1 200 OK
content-type: application/scim+json;charset=UTF-8
 :
 :

{
    "schemas": [
        "urn:ietf:params:scim:api:messages:2.0:ListResponse"
    ],
    "totalResults": 100,
    "resources": [
        {
            "id": "1"
        },
        :
        :
        :
        {
            "id": "99999"
        }
    ]
}

一覧検索では、検索オプションを設定することができます。
検索オプションは、クエリパラメータとしてリクエストに含めます。

検索オプション
オプション名 説明 クエリーパラメータ例

filter

検索時の条件を設定します。左辺はSCIMスキーマの属性名を設定します。右辺は属性に対応する値をダブルクオートで囲み設定します。

検索条件オペレータは eq のみサポートしています。and, or など他のオペレータはサポートしていません。

?filter=name.familyName eq "ユーザー"

sortBy

ソート列を指定します。条件にはSCIMスキーマの属性名を1つだけ設定します。未設定の場合は id 属性でソートされます。

?sortBy=userName

sortOrder

ソート順を指定します。昇順は ascending 、降順は descending を設定します。未設定の場合は昇順でソートされます。
本オプションは sortBy と合わせて設定してください。

?sortBy=userName&sortOrder=descending

startIndex

一覧取得時の開始位置を指定します。1から始まる整数値を設定してください。未設定の場合は先頭(1)から取得します。

?startIndex=1

count

一覧取得時の取得件数を指定します。1から始まる整数値を設定してください。
未設定時には Section: SCIM Identity Provider Attribute(全体設定) の Default Display Count で設定した件数が表示されます。 Section: SCIM Identity Provider Attribute(全体設定) の Max Display Count で設定した件数を超える値は設定できません。
本オプションを startIndex と合わせて設定することでページネーションできます。

?startIndex=401&count=200

attributes

一覧に表示する属性を指定します。Section: SCIM Identity Provider Resource Configuration(リソースプロパティ設定) の Mutability が writeOnly もしくは auto で writeOnly に設定される属性を表示することはできません。 attributes は複数の値を設定することができます。複数値を設定する場合は、カンマ区切りで複数指定してください。

?attributes=userName,displayName

excludedAttributes

一覧から除外する属性を指定します。常に表示する属性(id など)は除外できません。 excludedAttributes は複数の値を設定することができます。複数値を設定する場合は、カンマ区切りで複数指定してください。

?excludedAttributes=userName,displayName

リクエスト例
GET https://example.com/iplass/tenant/api/scim/v2/idpMetaName/Users?sortBy=userName&sortOrder=descending&startIndex=2&count=10&attributes=userName,displayName
content-type: application/scim+json;charset=UTF-8
 :
 :
レスポンス例
HTTP/1.1 200 OK
content-type: application/scim+json;charset=UTF-8
 :
 :

{
    "schemas": [
        "urn:ietf:params:scim:api:messages:2.0:ListResponse"
    ],
    "totalResults": 100,
    "itemsPerPage": 10,
    "startIndex": 2,
    "resources": [
        {
            "displayName": "ユーザー ネーム99998",
            "id": "99998",
            "userName": "username99998"
        },
        :
        :
        :
        {
            "displayName": "ユーザー ネーム1",
            "id": "1",
            "userName": "username1"
        }
    ]
}

リソースの検索エンドポイントに POST リクエストすることでも検索が可能です。
検索エンドポイントは /.search をリソースエンドポイントに追加します。
検索エンドポイントを利用する場合は、検索オプションは JSON をボディとしてリクエストに含めます。
検索オプションの内容は、上記の検索オプションと同様です。

リクエスト例(上述のリクエスト例と同等のリクエスト)
POST https://example.com/iplass/tenant/api/scim/v2/idpMetaName/Users/.search
content-type: application/scim+json;charset=UTF-8
 :
 :

{
    "schemas": [
        "urn:ietf:params:scim:api:messages:2.0:SearchRequest"
    ],
    "sortBy": "userName",
    "sortOrder": "descending",
    "startIndex": 2,
    "count": 10,
    "attributes": ["userName", "displayName"]
}
詳細検索

リソースエンドポイントに続けて、末尾に id を指定して GET リクエストを行います。

リクエスト例
GET https://example.com/iplass/tenant/api/scim/v2/idpMetaName/Users/1
content-type: application/scim+json;charset=UTF-8
 :
 :
レスポンス例
HTTP/1.1 200 OK
content-type: application/scim+json;charset=UTF-8
 :
 :

{
    "schemas": [
        "urn:ietf:params:scim:schemas:core:2.0:User"
    ],
    "id": "1",
    "userName": "username1",
    "displayName": "ユーザー ネーム1",
    "name": {
        "givenName": "ネーム1",
        "familyName": "ユーザー"
    },
    "emails": [
        {
            "type": "work",
            "value": "username1@example.com"
        }
    ],
    "meta": {
        "resourceType": "User",
        "created": "2025-02-13T12:25:02Z",
        "lastModified": "2025-02-13T12:25:02Z",
        "location": "https://example.com/iplass/tenant/api/scim/v2/idpMetaName/Users/1"
    }
}

登録

ユーザー・グループのリソースエンドポイントに対して POST メソッドを実行することで、登録することができます。

リクエスト例
POST https://example.com/iplass/tenant/api/scim/v2/idpMetaName/Users
content-type: application/scim+json;charset=UTF-8
 :
 :

{
    "schemas": [
        "urn:ietf:params:scim:schemas:core:2.0:User"
    ],
    "externalId": "XXX",
    "userName": "usernameXXX",
    "displayName": "ユーザー ネームXXX",
    "name": {
        "givenName": "ネームXXX",
        "familyName": "ユーザー"
    },
    "emails": [
        {
            "type": "work",
            "value": "usernameXXX@example.com"
        }
    ]
}
レスポンス例
HTTP/1.1 201 Created
content-type: application/scim+json;charset=UTF-8
 :
 :

{
    "schemas": [
        "urn:ietf:params:scim:schemas:core:2.0:User"
    ],
    "id": "10321",
    "externalId": "XXX",
    "userName": "usernameXXX",
    "displayName": "ユーザー ネームXXX",
    "name": {
        "givenName": "ネームXXX",
        "familyName": "ユーザー"
    },
    "emails": [
        {
            "type": "work",
            "value": "usernameXXX@example.com"
        }
    ],
    "meta": {
        "resourceType": "User",
        "created": "2025-03-14T09:03:44Z",
        "lastModified": "2025-03-14T09:03:44Z",
        "location": "https://example.com/iplass/tenant/api/scim/v2/idpMetaName/Users/10321"
    }
}

更新

ユーザー・グループのリソースエンドポイントの末尾に id 属性の値を設定し、PUT メソッドを実行することで、削除することができます。

リクエスト例
PUT https://example.com/iplass/tenant/api/scim/v2/idpMetaName/Users/10321
content-type: application/scim+json;charset=UTF-8
 :
 :

{
    "schemas": [
        "urn:ietf:params:scim:schemas:core:2.0:User"
    ],
    "id": "10321",
    "externalId": "XXX",
    "userName": "usernameXXX",
    "displayName": "利用者 名前XXX",
    "name": {
        "givenName": "名前XXX",
        "familyName": "利用者"
    },
    "emails": [
        {
            "type": "work",
            "value": "usernameXXX@example.com"
        }
    ]
}
レスポンス例
HTTP/1.1 201 Created
content-type: application/scim+json;charset=UTF-8
 :
 :

{
    "schemas": [
        "urn:ietf:params:scim:schemas:core:2.0:User"
    ],
    "id": "10321",
    "externalId": "XXX",
    "userName": "usernameXXX",
    "displayName": "利用者 名前XXX",
    "name": {
        "givenName": "名前XXX",
        "familyName": "利用者"
    },
    "emails": [
        {
            "type": "work",
            "value": "usernameXXX@example.com"
        }
    ],
    "meta": {
        "resourceType": "User",
        "created": "2025-03-14T09:03:44Z",
        "lastModified": "2025-03-14T12:55:20Z",
        "location": "https://example.com/iplass/tenant/api/scim/v2/idpMetaName/Users/10321"
    }
}

削除

ユーザー・グループのリソースエンドポイントの末尾に id 属性の値を設定し、DELETE メソッドを実行することで、削除することができます。

リクエスト例
DELETE https://example.com/iplass/tenant/api/scim/v2/idpMetaName/Users/10321
content-type: application/scim+json
 :
 :
レスポンス例
HTTP/1.1 204 No Content
content-type: application/scim+json
 :
 :

3. Service Provider 機能

Service Provider 機能では当システムのユーザー・グループ情報の更新を外部サーバーへ連携します。
変更した情報をサーバー内で記録しておき、定期的に外部サービスへリクエストを送信します。

scim sp
Figure 4. SCIM Service Provider 機能概要図

① ユーザー・グループ情報の変更を記録する
② 記録された変更情報を確認し、変更情報が処理する
③ 変更情報に従って外部サービスへリクエストする

3.1. 設定

Service Provider 機能を利用するためには、以下の設定が必要となります。

Service-Config

  1. ScimServiceProviderService の設定

    1. Service Provider 機能の動作を設定します。設定の詳細については 設定(service-config)リファレンス を参照してください。

  2. スケジューラの有効化

    1. 配信機能は スケジューラ を利用します。スケジューラの機能を有効化するために RdbQueueService の useQueue を true にする必要があります。

メタデータ

Security/SCIM/ServiceProvider

Service Provider 機能のメタデータは Admin Console メニューの Security > SCIM > Service Provider から作成します。

scim sp configure metadata menu
Figure 5. Admin Console メニュー(ServiceProvider)

設定画面は、全体設定、リソース設定、リソースプロパティ設定から構成されます。

全体設定

Service Provider 機能全体の機能の振る舞いを設定します。

リソース設定

リソースタイプに関する振る舞いを設定します。 以下のタブが存在しており、それぞれの設定項目は同じです。

  • User タブ

    • User リソースに対応するエンティティが更新された際の動作を設定します。

  • Group タブ

    • Group リソースに対応するエンティティが更新された際の動作を設定します。

リソースプロパティ設定

リソースのプロパティに関する設定を行います。
エンティティが更新された場合に、SCIM サービスプロバイダへリクエストへ変換する際の設定を行います。

Section: SCIM Service Provider Attribute(全体設定)
設定項目 説明

Endpoint URL without Resource Type

SCIM リクエストを行うURLを設定します。設定するURLには、リソースタイプを含めない形式で設定します。

ユーザーリソースエンドポイントが、 https://example.com/scim/v2/Users の場合、 https://example.com/scim/v2/ を設定します。

Authorization Type

エンドポイントへリクエストを行う際の認可設定を行います。選択可能な値は以下の通りです。

設定値 説明 選択時の入力項目説明

OAuth Bearer

Authorization ヘッダーに Bearer トークンを設定します。

Section: SCIM Service Provider Attribute(全体設定 OAuth Bearer 選択時の入力項目)

OAuth 2.0 Client Credentials

Client Credentials Flow で認可を行います。

Section: SCIM Service Provider Attribute(全体設定 OAuth 2.0 Client Credentials 選択時の入力項目)

HTTP Basic

BASIC 認証を行います。

Section: SCIM Service Provider Attribute(全体設定 HTTP Basic 選択時の入力項目)

Custom

任意のカスタム処理を行います。

Section: SCIM Service Provider Attribute(全体設定 Custom 選択時の入力項目)

Timezone

日時データをUTCフォーマットに変更する際のタイムゾーンを指定します。初期値はシステムのタイムゾーンが設定されます。

Date Time format

日時データのフォーマットを指定します。初期値は yyyy-MM-dd’T’HH:mm:ss.SSSZ が設定されます。

Request Interval(millis)

バックグラウンドでリクエストを実行する際に、リクエストを実行する間隔を指定します。単位はミリ秒です。初期値は 150(ミリ秒) が設定されます。

Maintenance Retention Period(days)

配信時のエンティティメッセージの経過期間を指定します。指定された期間を過ぎた場合にエンティティに登録されているデータを消します。単位は日です。初期値は 90(日) が設定されます。

Section: SCIM Service Provider Attribute(全体設定 OAuth Bearer 選択時の入力項目)
設定項目 説明

Bearer Token

Authorization ヘッダーに設定するアクセストークンを設定します。エンドポイントから指定された値を設定してください。

Section: SCIM Service Provider Attribute(全体設定 OAuth 2.0 Client Credentials 選択時の入力項目)
設定項目 説明

Token Endpoint

Client Credentials Flow でアクセストークンを取得する為のエンドポイントを設定します。

Client ID

Client Credentials Flow の client_id パラメータに設定する値です。トークン取得先から発行された値を設定します。

Client Secret

Client Credentials Flow の client_secret パラメータに設定する値です。トークン取得先から発行された値を設定します。

Token Refresh Interval(minute)

トークンを再取得するまでの間隔を指定します。単位は分です。

Section: SCIM Service Provider Attribute(全体設定 HTTP Basic 選択時の入力項目)
設定項目 説明

User ID

ベーシック認証で利用するユーザーIDを設定します。

Password

ベーシック認証で利用するパスワードを設定します。

Section: SCIM Service Provider Attribute(全体設定 Custom 選択時の入力項目)
設定項目 説明

Class Name

カスタム処理を実装した完全修飾クラス名を設定します。クラスは org.iplass.mtp.webapi.scim.ScimAuthorizationApplier を実装する必要があります。
パラメータ、シークレットを受け付ける必要がある場合、 org.iplass.mtp.webapi.scim.ScimAuthorizationApplierParameterAware を実装してください。

Parameter

Class Name に設定したクラスの初期化に利用されるパラメータを設定します。

Secret

Class Name に設定したクラスの初期化に利用されるシークレットを設定します。

Section: SCIM Service Provider Resource Configuration(リソース設定)
設定項目 説明

Enable Distribute

チェックすることで、Entity Definition Name に設定したエンティティを更新した際に、サービスプロバイダへリクエストを送信します。
サービスプロバイダへリクエストを送信するためには、エンティティリスナーを設定する必要があります。こちらを参照してください。

Endpoint Path

Section: SCIM Service Provider Attribute(全体設定) の Endpoint URL without Resource Type に続くパスを設定します。
初期値として User タブは /Users 、 Group タブは /Groups が設定されます。

Resource Schema

User, Group のリクエスト実行時に、リクエスト本文の schemas 属性に設定する値を指定します。
初期値として User タブは urn:ietf:params:scim:schemas:core:2.0:User 、 Group タブは urn:ietf:params:scim:schemas:core:2.0:Group が設定されます。
カンマ区切りで複数設定することが可能です。

Entity Definition Name

User, Group のリソース変更を検知するエンティティ名を指定します。
初期値として User タブは mtp.auth.User 、 Group タブは mtp.auth.Group が設定されます。
指定したエンティティに対して、イベントリスナーを追加する必要があります。詳しくは Entity (Event Listener) を参照してください。

ID Store Property Name

SCIM 登録リクエストを送信後のレスポンスに含まれる ID を保持するプロパティを指定します。
Entity Definition Name で設定したエンティティに独自にプロパティを追加し、追加したプロパティ名を設定してください。

Update Method

エンティティの更新時に、サービスプロバイダへリクエストを送信する方法を指定します。選択可能な値は以下の通りです。

選択値 説明

PUT

Attribute Mapping の設定に従ってリクエスト本文作成し、PUT リクエストを送信します。

GET_BASE_PUT

先にサービスプロバイダへ GET リクエストを送信し、取得した情報をベースに PUT リクエストを送信します。
エンティティで更新されたプロパティを GET リクエストで取得した情報に適用し、PUT 時のリクエスト本文とします。

PATCH メソッドを利用した更新はサポートしていません。

Attribute Mapping

サービスプロバイダへリクエストを送信する際の、リクエスト本文を作成するための設定を行います。マッピングの設定項目については、Section: SCIM Service Provider Resource Configuration(リソースプロパティ設定) を参照してください。
グリッド下部の Add ボタンで行を追加、 Remove ボタンで選択行を削除します。

SCIM 2.0 のスキーマ仕様については、以下をご確認ください。

Provisioning Handler Class Name

エンティティの更新によってサービスプロバイダへ登録・更新・削除のリクエストを行う前に、リソース設定によって作成されたリクエスト本文の更新や、拡張操作を実現するための完全修飾クラス名を指定します。
設定するクラスは org.iplass.mtp.webapi.scim.ScimProvisioningHandler を実装する必要があります。

Provisioning Script

エンティティの更新によってサービスプロバイダへ登録・更新・削除のリクエストを行う前に、リソース設定によって作成されたリクエスト本文の更新や、拡張操作を実現するためのスクリプトを指定します。
スクリプトは Groovy 言語で記述します。 Provisioning Handler Class name と同時に設定された場合は、スクリプトが優先されます。

Section: SCIM Service Provider Resource Configuration(リソースプロパティ設定)
設定項目 説明

Attribute Path

SCIM スキーマの属性のパスを設定します。属性パスには以下のようなパターンのパスが指定できます。

設定パターン 設定例

通常属性

name

サブパス

name.familyName

配列(通常)

emails[0].value

配列(条件)

emails[type eq "work"].value

配列(条件)のオペレータは eq のみサポートします。and, or など他のオペレータはサポートしていません。

Entity Property Name

Entity Definition Name で設定したエンティティのプロパティ名を設定します。

Constant Value

プロパティに値が無い場合、Entity Property Name の設定が無い場合に設定される固定値を指定します。

Value Type

Constant Value を利用し、Entity Property Name の指定が無い(常に固定値を設定)する場合、Constant Value のデータ型を設定します。
設定可能な値は以下の通りです。

設定値 説明

string

Constant Value を文字列として設定します。

number

Constant Value を数値として設定します。

boolean

Constant Value を真理値として設定します。

scim sp configure metadata configure
Figure 6. SCIM/IdentityProvider設定画面
Entity (Event Listener)

Section: SCIM Service Provider Resource Configuration(リソース設定) のメタデータ設定時に User タブ、Group タブで指定したエンティティに対して、イベントリスナーを追加する必要があります。
追加するイベントリスナーは JavaClass タイプで、クラス名は org.iplass.mtp.impl.webapi.scim.distribute.ScimServiceProviderDistributeEntityEventListener を設定します。

イベントリスナーについては データ管理 - 高度な設定 - EventListener を参照してください。

scim sp configure metadata entity
Figure 7. Entity のイベントリスナー設定画面
ScheduledTask

サービスプロバイダへのリクエストを実行するには、スケジューラでタスクを有効化する必要があります。 標準で以下の SCIM 用タスクを提供します。

mtp.scim.v2.ScimServiceProviderDistributeTask

エンティティの更新内容に沿って、サービスプロバイダへリクエストを送信します。
標準タスクでは 60 分間隔でメッセージキューに登録されたメッセージを送信します。

mtp.scim.v2.ScimServiceProviderMessageMaintenanceTask

配信時のエンティティメッセージの保存期間を超えたメッセージを削除します。
標準タスクでは日次で20:00にメンテナンス処理が実行されます。

スケジュールを独自に設定する場合は、標準タスクの設定を修正し保存してください。
スケジューラについては スケジューラ を参照してください。

scim sp configure metadata scheduled task
Figure 8. 標準 SCIM 用タスク
Service Provider 機能 - 設定 - Service-Config が未設定の場合は、タスクの実行設定ができないのでご注意ください。

3.2. 利用方法

情報を更新する

Section: SCIM Service Provider Resource Configuration(リソース設定) の Entity Definition Name で設定したエンティティを更新することで、サービスプロバイダへ送信する為の情報が作成されます。
作成された情報をもとに、スケジューラで定期的にサービスプロバイダへリクエストを送信します。

リクエストの状況確認

リクエストの状況は Admin Console の Tools > EntityExplorer > mtp.scim.v2.ScimServiceProviderDistributeTarget から確認してください。
配信状況は distributeState 列の値で確認できます。

distributeState の状況
説明

READY

リクエストを送信する準備ができています。

IN_PROCESS

リクエストを送信中です。

REQUESTED

完了ステータスです。リクエストを送信が完了しました。

NOREQUEST

完了ステータスです。リクエストを送信する必要がありませんでした。

FAILED

完了ステータスです。リクエストの送信に失敗しました。