SCIM API
OPTiM Store より御社サービスへプロビジョニングを行うためのAPI仕様です。
SCIM Server として御社サービス側に実装して頂く必要のある、SCIM APIについて記載します。
OPTiM Store から、下記の仕様に示すリクエストを送信いたしますので、SCIMの仕様に従って処理・及び処理結果のレスポンスを返却するように実装してください。
エンドポイント
- SCIM APIのエンドポイントは下表のとおりです。
エンドポイント |
内容 |
操作 |
https://your-service.example.com/scim/v1/Users |
利用者情報 |
POST(追加)・GET(検索) |
https://your-service.example.com/scim/v1/Users/:id |
利用者情報 |
PUT(更新)・DELETE(削除) |
API一覧
- 実装頂くSCIM の Users API の一覧は下記になります。
利用者スキーマ情報
- SCIMで利用する、利用者のスキーマ情報は下表のとおりです。
属性名 |
スキーマ |
必須 |
更新 |
一意性 |
備考 |
id |
SCIM標準 |
○ |
参照のみ |
有 |
追加時に独自に生成してください。 システムで一意となる値にする必要があります。 |
externalId |
SCIM標準 |
○ |
不可 |
有 |
- |
name.familyName |
SCIM標準 |
× |
可 |
無 |
- |
name.givenName |
SCIM標準 |
× |
可 |
無 |
- |
displayName |
SCIM標準 |
× |
可 |
無 |
- |
emails.value |
SCIM標準 |
× |
可 |
無 |
- |
active |
SCIM標準 |
× |
可 |
無 |
有効な場合は、属性が存在し何らかの値が格納されます。 無効の場合は、属性が存在しません。 |
created |
SCIM標準 |
× |
不可 |
無 |
- |
lastModified |
SCIM標準 |
× |
不可 |
無 |
- |
department |
SCIM拡張 |
× |
可 |
無 |
- |
externalUserName |
EIWG拡張 |
◯ |
不可 |
有 |
- |
idtokenClaims.subject |
EIWG拡張 |
◯ |
不可 |
有 |
利用者の特定に利用します。 |
idtokenClaims.issuer |
EIWG拡張 |
◯ |
不可 |
無 |
- |
bizBizIdentityCode |
拡張 |
◯ |
可 |
無 |
- |
bizCompanyCode |
拡張 |
◯ |
可 |
無 |
- |
bizSpCompanyCode |
拡張 |
◯ |
可 |
無 |
- |
- 返却情報のうち、OPTiM Storeが使用する属性は、idのみとなります。
- 詳細は、SCIM 仕様を参照してください。
利用者情報検索API(GETメソッド)
Request
Method
Resource URL
- 任意のURL
- 該当URLを、OPTiM Store 登録時にご連絡ください。
- 本章では、https://your-service.example.com/scim/v1/Users として記載致します。
GET /scim/v1/Users/?filter=bizUserId%20eq%20user001%20and%20bizIdentifier%20eq%20BIZ
Accept: application/scim+json;charset=UTF-8
Authorization: Bearer 2YotnFZFEjr1zCsicMWpAA
key |
description |
Authorization |
OAuth 2.0 Bearer として token リクエストで取得したアクセストークンを設定します。 |
Query Parameters
- クエリパラメーターで、検索フィルター・返却属性・ソートキー・ソート順・ページあたりの件数・ページ番号の指定を出来るようにする必要があります(OPTIONAL)。
- 上記のうち、対象者の検索のため、最低限下記の検索フィルターを実装する必要があります。
- ** 「idtokenClaims.subject eq [値] and bizBizIdentityCode eq [値]」 **
Request Parameters
処理内容
- アクセストークンが正しい値であるか確認します。
- アクセストークンから対象のテナントを特定します。
- 対象のテナント内から指定された検索フィルターに従い、情報を取得します。
- 情報をJSON形式に変換し、返却します。id属性は必ず返却してください。その他の属性は省略しても構いません。
Response
下記に従ったレスポンスを返却してください。
Response Code
Content-Type: application/scim+json;charset=UTF-8
Response Parameters
key |
type |
description |
schemas |
array |
[“urn:ietf:params:scim:api:messages:2.0:ListResponse”] 固定です。 |
totalResults |
integer |
Resources の件数を返却してください。 |
Resources |
array |
条件を満たすユーザーのスキーマ情報を返却してください。 |
Sample Body
{
"schemas": [
"urn:ietf:params:scim:api:messages:2.0:ListResponse"
],
"totalResults": 1,
"Resources": [
{
"schemas": [
"urn:x-optim:scim:schemas:extention:cim:1.0:User"
],
"id": "b3603063-2801-4c8c-b602-a142efe7ad6a",
"externalId": "856ab134c84f7b83cd19f456e74384d1af3f061755ca39eebba4050e900f5907",
(中略)
"bizSpCompanyCode": "optim",
"meta": {
"resourceType": "User",
"created": "2014-09-02T05:38:35.114Z",
"lastModified": "2014-10-15T09:12:40.519Z",
"location": "https://your-service.example.com/scim/v1/Users/b3603063-2801-4c8c-b602-a142efe7ad6a"
}
},
]
}
利用者情報追加API(POSTメソッド)
- 指定された情報を元に、利用者情報の追加処理を行ってください。
Request
Method
Resource URL
- 任意のURL
- 該当URLを、OPTiM Store 登録時にご連絡ください。
- 本章では、https://your-service.example.com/scim/v1/Users として記載致します。
POST /scim/v1/Users
Content-Type: application/scim+json;charset=UTF-8
Accept: application/scim+json;charset=UTF-8
Authorization: Bearer MDNhNTlhN2ItYmE1NC00OWQ3LWFkMzQtODliYjhhN2Q0Mjlh
key |
description |
Authorization |
OAuth 2.0 Bearer として token リクエストで取得したアクセストークンを設定します。 |
Query Parameters
Request Parameters
Sample Body
{
"schemas": [
"urn:x-optim:scim:schemas:extention:cim:1.0:User"
],
"externalId": "856ab134c84f7b83cd19f456e74384d1af3f061755ca39eebba4050e900f5907",
(中略)
"bizSpCompanyCode": "optim",
}
処理内容
- アクセストークンが正しい値であるか確認します。
- アクセストークンから対象のテナントを特定します。
- システム内で一意に該当利用者を特定するidを生成します。idはUUID4などで生成してください。
- 指定された属性、値をシステムへ反映します。
- 反映した情報をJSON形式に変換し、返却します。id属性は必ず返却してください。その他の属性は省略しても構いません。
Response
- SCIM仕様上、一意に該当利用者を特定するためのidの生成が必要となります。
- SCIM仕様上、レスポンスにUTCの作成日時(created)を生成する必要がありますが、本仕様上は使用していないため、省略しても構いません。
Response Code
Content-Type: application/scim+json;charset=UTF-8
Location: https://your-service.example.com/scim/v1/Users/8f848134-3f6f-4432-9db7-5599a5263696
Response Parameters
key |
type |
description |
schemas |
array |
[“urn:x-optim:scim:schemas:extention:cim:1.0:User”] 固定です。 |
meta |
array |
作成したユーザーのスキーマ情報を返却してください。 |
Sample Body
{
"schemas": [
"urn:x-optim:scim:schemas:extention:cim:1.0:User"
],
"id": "b3603063-2801-4c8c-b602-a142efe7ad6a",
"externalId": "856ab134c84f7b83cd19f456e74384d1af3f061755ca39eebba4050e900f5907",
(中略)
"bizSpCompanyCode": "optim",
"meta": {
"resourceType": "User",
"created": "2014-10-15T17:50:51.316Z",
"location": "https://your-service.example.com/scim/v1/Users/8f848134-3f6f-4432-9db7-5599a5263696"
}
}
利用者情報更新API(PUTメソッド)
- 利用者情報の更新処理を行なってください。
- PUT リクエストでは、指定がない属性は削除するようにしてください。
- システム上必要な項目が送信されない場合は、エラーとしてください。
- 利用者の削除を行わず、ライセンス状態のみ変更する場合があります。
ライセンス状態の有無をシステム上管理していない場合は、該当属性から判断し、利用者の削除、追加などの処理に対応付けた実装を行う必要があります。
- SCIMの仕様上、レスポンスにUTCの更新日時(lastModified)を含める必要がありますが、本仕様上は使用していないため、省略しても構いません。
- 詳細は、SCIM 仕様を参照してください。
Request
Method
Resource URL
- 任意のURL
- 該当URLを、OPTiM Store 登録時にご連絡ください。
- 本章では、https://your-service.example.com/scim/v1/Users/:id として記載致します。
PUT /scim/v1/Users/8f848134-3f6f-4432-9db7-5599a5263696
Content-Type: application/scim+json;charset=UTF-8
Accept: application/scim+json;charset=UTF-8
Authorization: Bearer MDNhNTlhN2ItYmE1NC00OWQ3LWFkMzQtODliYjhhN2Q0Mjlh
key |
description |
Authorization |
OAuth 2.0 Bearer として token リクエストで取得したアクセストークンを設定します。 |
Query Parameters
Request Parameters
Sample Body
{
"schemas": [
"urn:x-optim:scim:schemas:extention:cim:1.0:User"
],
"externalId": "856ab134c84f7b83cd19f456e74384d1af3f061755ca39eebba4050e900f5907",
(中略)
"bizSpCompanyCode": "optim",
}
処理内容
- アクセストークンが正しい値であるか確認します。
- アクセストークンから対象のテナントを特定します。
- テナント内の情報からidを元に対象の利用者を取得します。
- 指定された属性、値をシステムへ反映します。この時、指定がない属性は削除してください。
- 反映した情報をJSON形式に変換し、返却します。id属性は必ず返却してください。その他の属性は省略しても構いません。
Response
Response Code
Content-Type: application/scim+json;charset=UTF-8
Location: https://your-service.example.com/scim/v1/Users/8f848134-3f6f-4432-9db7-5599a5263696
Response Parameters
key |
type |
description |
schemas |
array |
[“urn:x-optim:scim:schemas:extention:cim:1.0:User”] 固定です。 |
meta |
array |
変更処理を行ったユーザーのスキーマ情報を返却してください。 |
Sample Body
{
"schemas": [
"urn:x-optim:scim:schemas:extention:cim:1.0:User"
],
"id": "b3603063-2801-4c8c-b602-a142efe7ad6a",
"externalId": "856ab134c84f7b83cd19f456e74384d1af3f061755ca39eebba4050e900f5907",
(中略)
"bizSpCompanyCode": "optim",
"meta": {
"resourceType": "User",
"created": "2014-10-15T17:50:51.316Z",
"lastModified ": "2014-10-16T18:10:52.132Z",
"location": "https://your-service.example.com/scim/v1/Users/8f848134-3f6f-4432-9db7-5599a5263696"
}
}
利用者情報削除API(DELETEメソッド)
- 利用者情報の削除処理を行ってください。
- 詳細は、SCIM 仕様を参照してください。
Request
Method
Resource URL
- 任意のURL
- 該当URLを、OPTiM Store 登録時にご連絡ください。
- 本章では、https://your-service.example.com/scim/v1/Users/:id として記載致します。
DELETE /scim/v1/Users/8f848134-3f6f-4432-9db7-5599a5263696
Accept: application/scim+json;charset=UTF-8
Authorization: Bearer MDNhNTlhN2ItYmE1NC00OWQ3LWFkMzQtODliYjhhN2Q0Mjlh
key |
description |
Authorization |
OAuth 2.0 Bearer として token リクエストで取得したアクセストークンを設定します。 |
Query Parameters
Request Parameters
Sample Body
処理内容
- アクセストークンが正しい値であるか確認します。
- アクセストークンから対象のテナントを特定します。
- テナント内の情報からidを元に対象の利用者を特定し、削除処理をします。
- 処理結果のレスポンスを返します。
Response
Response Code
Response Parameters