1. SCIMとは
SCIM(System for Cross-domain Identity Management)は、異なるドメイン間でのユーザー・グループ情報の管理を行うための標準規格です。
RESTfulなWebサービスとして提供され、JSON形式でユーザー・グループ情報を取得、登録、更新、削除するためのAPIを提供します。
iPLAss では、SCIM 2.0 の API をサポートしており、以下のような機能を提供します。
SCIM 2.0 に対応する外部サービスより、iPLAss がリクエストを受信します。
受信したリクエストに基づいてユーザー・グループ情報の登録、更新、削除を行います。
SCIM 2.0 に対応する外部サービスに対して、iPLAss がリクエストを送信します。
iPLAss でユーザー・グループ情報の追加・更新・削除が契機となり、リクエストを送信します。
iPLAss で SCIM 機能を利用するためには、AdminConsole でメタデータを定義します。 利用する機能に応じて Service-Config の設定が必要な場合もあります。
2. Identity Provider 機能
Identity Provider 機能では外部のサービスからユーザー・グループ情報の更新を受け付けます。
WebAPI でリクエストを受信し、受信したリクエストに基づいてユーザー・グループ情報の登録、更新、削除を行います。
① 外部サービスがSCIMリクエストを送信
② WebAPI でリクエストを受信
③ リクエストの内容に沿ってユーザー・グループ情報の登録、更新、削除
2.1. 設定
Identity Provider 機能を利用するためには、以下の設定が必要となります。
Service-Config
-
ScimIdentityProviderService の設定
-
Identity Provider 機能の動作を設定します。設定の詳細については 設定(service-config)リファレンス を参照してください。
-
メタデータ
メタデータは Admin Console で作成します。
Security/SCIM/IdentityProvider
Identity Provider 機能のメタデータは Admin Console メニューの Security > SCIM > Identity Provider
から作成します。

設定画面は、全体設定、リソース設定、リソースプロパティ設定から構成されます。
Identity Provider 機能全体の機能の振る舞いを設定します。
リソースタイプに関する振る舞いを設定します。 以下のタブが存在しており、それぞれの設定項目は同じです。
-
User タブ
-
User エンドポイントにリクエストされたときの動作を設定します。
-
mtp.auth.User エンティティに対応します。
-
-
Group タブ
-
Group エンドポイントにリクエストされたときの動作を設定します。
-
mtp.auth.Group エンティティに対応します。
-
リソースのプロパティに関する設定を行います。
受け付けたリクエストの本文を、該当するエンティティに変換する際の設定を行います。
設定項目 | 説明 |
---|---|
Enable Receive |
チェックすることで Identity Provider 機能が有効になり、外部サービスからのリクエストを受信が可能となります。 |
Endpoint |
User, Group などのリクエストを受信するエンドポイントとなります。表示のみの項目です。 |
Default Display Count |
一度に表示するデータの件数のデフォルト値を設定します。初期値は 10 が設定されます。 |
Max Display Count |
一度に表示するデータの件数の最大値を設定します。初期値は 100 が設定されます。 |
Timezone |
日時データをUTCフォーマットに変更する際のタイムゾーンを指定します。初期値はシステムのタイムゾーンが設定されます。 |
Date Time format |
日時データのフォーマットを指定します。初期値は |
Use trashbox for delete |
削除リクエストを受け付けた際に、データ削除時にゴミ箱を利用するか設定します。チェックすることでゴミ箱を利用します。 |
Enable Entity Listener |
エンティティにレコードの登録・更新・削除を行った際に、当該エンティティに設定されているリスナーを有効にするか設定します。チェックすることでレコードの更新がリスナーに通知されます。 |
Acceptable User |
レコード更新操作を行うユーザーを指定します。指定したユーザーのみがレコードの更新操作を行うことができます。特に指定しない場合は |
設定項目 | 説明 |
---|---|
External ID Store Property Name |
SCIM リクエストを受信した際、リクエストに含まれる外部 ID を保持するプロパティを指定します。 |
Standard properties |
mtp.auth.User, mtp.auth.Group エンティティの標準的なプロパティを設定します。プロパティの設定項目については、Section: SCIM Identity Provider Resource Configuration(リソースプロパティ設定) を参照してください。 SCIM 2.0 のスキーマ仕様については、以下をご確認ください。 |
Extended properties |
mtp.auth.User, mtp.auth.Group エンティティで独自に追加したプロパティを設定します。プロパティの設定項目については、Section: SCIM Identity Provider Resource Configuration(リソースプロパティ設定) を参照してください。 SCIM 2.0 のスキーマ仕様については、以下をご確認ください。 |
Provisioning Handler Class Name |
リクエストによってレコード登録・更新・削除を行う前に、リソース設定によって作成されたエンティティ情報の更新や、拡張操作を実現するための完全修飾クラス名を指定します。 |
Provisioning Script |
リクエストによってレコード登録・更新・削除を行う前に、リソース設定によって作成されたエンティティ情報の更新や、拡張操作を実現するためのスクリプトを指定します。 |
設定項目 | 説明 | ||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Entity Property Name |
mtp.auth.User, mtp.auth.Group エンティティのプロパティ名を設定します。 |
||||||||||||||||||||||||||||||||||||
Default Display |
検索リクエストされた際に、レスポンスに当該プロパティの値をデフォルトで含める場合にチェックを入れます。 |
||||||||||||||||||||||||||||||||||||
Required |
SCIM スキーマの属性の必須を設定します。 選択可能な値は以下の通りです。
|
||||||||||||||||||||||||||||||||||||
Mutability |
SCIM スキーマ属性の可変性を設定します。選択可能な値と設定した値の動作は以下の通りです。
|
||||||||||||||||||||||||||||||||||||
Attribute Path |
SCIM スキーマの属性のパスを設定します。属性パスには以下のようなパターンのパスが指定できます。
|
||||||||||||||||||||||||||||||||||||
Constant Value |
プロパティに値が無い場合、Entity Property Name の設定が無い場合に設定される固定値を指定します。 |

認証設定
リクエストを受け付けるための認証設定が必要となります。以下の認証方法をサポートしています。
GEM(TopView) - アプリの管理 を参照し個人アクセストークンを発行してください。
発行した個人アクセストークンは、リクエストヘッダーの Authorization
に Bearer
トークンとして設定してください。
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 |
利用可能なリソースのタイプ(ユーザーやグループなど)を検出します。 |
以下の資料も合わせて確認ください。
以下の操作はサポートされていません。
|
検索
ユーザー・グループのリソースエンドポイントに対して 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スキーマの属性名を設定します。右辺は属性に対応する値をダブルクオートで囲み設定します。
|
|
||
sortBy |
ソート列を指定します。条件にはSCIMスキーマの属性名を1つだけ設定します。未設定の場合は id 属性でソートされます。 |
|
||
sortOrder |
ソート順を指定します。昇順は |
|
||
startIndex |
一覧取得時の開始位置を指定します。1から始まる整数値を設定してください。未設定の場合は先頭(1)から取得します。 |
|
||
count |
一覧取得時の取得件数を指定します。1から始まる整数値を設定してください。 |
|
||
attributes |
一覧に表示する属性を指定します。Section: SCIM Identity Provider Resource Configuration(リソースプロパティ設定) の Mutability が writeOnly もしくは auto で writeOnly に設定される属性を表示することはできません。 attributes は複数の値を設定することができます。複数値を設定する場合は、カンマ区切りで複数指定してください。 |
|
||
excludedAttributes |
一覧から除外する属性を指定します。常に表示する属性(id など)は除外できません。 excludedAttributes は複数の値を設定することができます。複数値を設定する場合は、カンマ区切りで複数指定してください。 |
|
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 機能では当システムのユーザー・グループ情報の更新を外部サーバーへ連携します。
変更した情報をサーバー内で記録しておき、定期的に外部サービスへリクエストを送信します。
① ユーザー・グループ情報の変更を記録する
② 記録された変更情報を確認し、変更情報が処理する
③ 変更情報に従って外部サービスへリクエストする
3.1. 設定
Service Provider 機能を利用するためには、以下の設定が必要となります。
Service-Config
-
ScimServiceProviderService の設定
-
Service Provider 機能の動作を設定します。設定の詳細については 設定(service-config)リファレンス を参照してください。
-
-
スケジューラの有効化
-
配信機能は スケジューラ を利用します。スケジューラの機能を有効化するために RdbQueueService の useQueue を true にする必要があります。
-
メタデータ
Security/SCIM/ServiceProvider
Service Provider 機能のメタデータは Admin Console メニューの Security > SCIM > Service Provider
から作成します。

設定画面は、全体設定、リソース設定、リソースプロパティ設定から構成されます。
Service Provider 機能全体の機能の振る舞いを設定します。
リソースタイプに関する振る舞いを設定します。 以下のタブが存在しており、それぞれの設定項目は同じです。
-
User タブ
-
User リソースに対応するエンティティが更新された際の動作を設定します。
-
-
Group タブ
-
Group リソースに対応するエンティティが更新された際の動作を設定します。
-
リソースのプロパティに関する設定を行います。
エンティティが更新された場合に、SCIM サービスプロバイダへリクエストへ変換する際の設定を行います。
設定項目 | 説明 | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Endpoint URL without Resource Type |
SCIM リクエストを行うURLを設定します。設定するURLには、リソースタイプを含めない形式で設定します。 ユーザーリソースエンドポイントが、 |
|||||||||||||||
Authorization Type |
エンドポイントへリクエストを行う際の認可設定を行います。選択可能な値は以下の通りです。
|
|||||||||||||||
Timezone |
日時データをUTCフォーマットに変更する際のタイムゾーンを指定します。初期値はシステムのタイムゾーンが設定されます。 |
|||||||||||||||
Date Time format |
日時データのフォーマットを指定します。初期値は |
|||||||||||||||
Request Interval(millis) |
バックグラウンドでリクエストを実行する際に、リクエストを実行する間隔を指定します。単位はミリ秒です。初期値は 150(ミリ秒) が設定されます。 |
|||||||||||||||
Maintenance Retention Period(days) |
配信時のエンティティメッセージの経過期間を指定します。指定された期間を過ぎた場合にエンティティに登録されているデータを消します。単位は日です。初期値は 90(日) が設定されます。 |
設定項目 | 説明 |
---|---|
Bearer Token |
Authorization ヘッダーに設定するアクセストークンを設定します。エンドポイントから指定された値を設定してください。 |
設定項目 | 説明 |
---|---|
Token Endpoint |
Client Credentials Flow でアクセストークンを取得する為のエンドポイントを設定します。 |
Client ID |
Client Credentials Flow の client_id パラメータに設定する値です。トークン取得先から発行された値を設定します。 |
Client Secret |
Client Credentials Flow の client_secret パラメータに設定する値です。トークン取得先から発行された値を設定します。 |
Token Refresh Interval(minute) |
トークンを再取得するまでの間隔を指定します。単位は分です。 |
設定項目 | 説明 |
---|---|
User ID |
ベーシック認証で利用するユーザーIDを設定します。 |
Password |
ベーシック認証で利用するパスワードを設定します。 |
設定項目 | 説明 |
---|---|
Class Name |
カスタム処理を実装した完全修飾クラス名を設定します。クラスは |
Parameter |
Class Name に設定したクラスの初期化に利用されるパラメータを設定します。 |
Secret |
Class Name に設定したクラスの初期化に利用されるシークレットを設定します。 |
設定項目 | 説明 | ||||||||
---|---|---|---|---|---|---|---|---|---|
Enable Distribute |
チェックすることで、Entity Definition Name に設定したエンティティを更新した際に、サービスプロバイダへリクエストを送信します。 |
||||||||
Endpoint Path |
Section: SCIM Service Provider Attribute(全体設定) の Endpoint URL without Resource Type に続くパスを設定します。 |
||||||||
Resource Schema |
User, Group のリクエスト実行時に、リクエスト本文の |
||||||||
Entity Definition Name |
User, Group のリソース変更を検知するエンティティ名を指定します。 |
||||||||
ID Store Property Name |
SCIM 登録リクエストを送信後のレスポンスに含まれる ID を保持するプロパティを指定します。 |
||||||||
Update Method |
エンティティの更新時に、サービスプロバイダへリクエストを送信する方法を指定します。選択可能な値は以下の通りです。
|
||||||||
Attribute Mapping |
サービスプロバイダへリクエストを送信する際の、リクエスト本文を作成するための設定を行います。マッピングの設定項目については、Section: SCIM Service Provider Resource Configuration(リソースプロパティ設定) を参照してください。 SCIM 2.0 のスキーマ仕様については、以下をご確認ください。 |
||||||||
Provisioning Handler Class Name |
エンティティの更新によってサービスプロバイダへ登録・更新・削除のリクエストを行う前に、リソース設定によって作成されたリクエスト本文の更新や、拡張操作を実現するための完全修飾クラス名を指定します。 |
||||||||
Provisioning Script |
エンティティの更新によってサービスプロバイダへ登録・更新・削除のリクエストを行う前に、リソース設定によって作成されたリクエスト本文の更新や、拡張操作を実現するためのスクリプトを指定します。 |
設定項目 | 説明 | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Attribute Path |
SCIM スキーマの属性のパスを設定します。属性パスには以下のようなパターンのパスが指定できます。
|
||||||||||||
Entity Property Name |
Entity Definition Name で設定したエンティティのプロパティ名を設定します。 |
||||||||||||
Constant Value |
プロパティに値が無い場合、Entity Property Name の設定が無い場合に設定される固定値を指定します。 |
||||||||||||
Value Type |
Constant Value を利用し、Entity Property Name の指定が無い(常に固定値を設定)する場合、Constant Value のデータ型を設定します。
|

Entity (Event Listener)
Section: SCIM Service Provider Resource Configuration(リソース設定) のメタデータ設定時に User タブ、Group タブで指定したエンティティに対して、イベントリスナーを追加する必要があります。
追加するイベントリスナーは JavaClass タイプで、クラス名は org.iplass.mtp.impl.webapi.scim.distribute.ScimServiceProviderDistributeEntityEventListener
を設定します。
イベントリスナーについては データ管理 - 高度な設定 - EventListener を参照してください。

ScheduledTask
サービスプロバイダへのリクエストを実行するには、スケジューラでタスクを有効化する必要があります。 標準で以下の SCIM 用タスクを提供します。
エンティティの更新内容に沿って、サービスプロバイダへリクエストを送信します。
標準タスクでは 60 分間隔でメッセージキューに登録されたメッセージを送信します。
配信時のエンティティメッセージの保存期間を超えたメッセージを削除します。
標準タスクでは日次で20:00にメンテナンス処理が実行されます。
スケジュールを独自に設定する場合は、標準タスクの設定を修正し保存してください。
スケジューラについては スケジューラ を参照してください。

Service Provider 機能 - 設定 - Service-Config が未設定の場合は、タスクの実行設定ができないのでご注意ください。 |
3.2. 利用方法
情報を更新する
Section: SCIM Service Provider Resource Configuration(リソース設定) の Entity Definition Name で設定したエンティティを更新することで、サービスプロバイダへ送信する為の情報が作成されます。
作成された情報をもとに、スケジューラで定期的にサービスプロバイダへリクエストを送信します。
リクエストの状況確認
リクエストの状況は Admin Console の Tools > EntityExplorer > mtp.scim.v2.ScimServiceProviderDistributeTarget
から確認してください。
配信状況は distributeState 列の値で確認できます。
値 | 説明 |
---|---|
READY |
リクエストを送信する準備ができています。 |
IN_PROCESS |
リクエストを送信中です。 |
REQUESTED |
完了ステータスです。リクエストを送信が完了しました。 |
NOREQUEST |
完了ステータスです。リクエストを送信する必要がありませんでした。 |
FAILED |
完了ステータスです。リクエストの送信に失敗しました。 |