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で利用する、利用者のスキーマ情報は下表のとおりです。
属性名 スキーマ 必須 更新 一意性 備考
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

  • GET

Resource URL

  • 任意のURL
    • 該当URLを、OPTiM Store 登録時にご連絡ください。
  • 本章では、https://your-service.example.com/scim/v1/Users として記載致します。

Header Parameters

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

  • なし

処理内容

  1. アクセストークンが正しい値であるか確認します。
  2. アクセストークンから対象のテナントを特定します。
  3. 対象のテナント内から指定された検索フィルターに従い、情報を取得します。
  4. 情報をJSON形式に変換し、返却します。id属性は必ず返却してください。その他の属性は省略しても構いません。

Response

下記に従ったレスポンスを返却してください。

Response Code

200 OK

Header Parameters

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

  • POST

Resource URL

  • 任意のURL
    • 該当URLを、OPTiM Store 登録時にご連絡ください。
  • 本章では、https://your-service.example.com/scim/v1/Users として記載致します。

Header Parameters

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",
}

処理内容

  1. アクセストークンが正しい値であるか確認します。
  2. アクセストークンから対象のテナントを特定します。
  3. システム内で一意に該当利用者を特定するidを生成します。idはUUID4などで生成してください。
  4. 指定された属性、値をシステムへ反映します。
  5. 反映した情報をJSON形式に変換し、返却します。id属性は必ず返却してください。その他の属性は省略しても構いません。

Response

  • SCIM仕様上、一意に該当利用者を特定するためのidの生成が必要となります。
  • SCIM仕様上、レスポンスにUTCの作成日時(created)を生成する必要がありますが、本仕様上は使用していないため、省略しても構いません。

Response Code

201 Created

Header Parameters

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

  • PUT

Resource URL

  • 任意のURL
    • 該当URLを、OPTiM Store 登録時にご連絡ください。
  • 本章では、https://your-service.example.com/scim/v1/Users/:id として記載致します。

Header Parameters

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",
}

処理内容

  1. アクセストークンが正しい値であるか確認します。
  2. アクセストークンから対象のテナントを特定します。
  3. テナント内の情報からidを元に対象の利用者を取得します。
  4. 指定された属性、値をシステムへ反映します。この時、指定がない属性は削除してください。
  5. 反映した情報をJSON形式に変換し、返却します。id属性は必ず返却してください。その他の属性は省略しても構いません。

Response

Response Code

200 OK

Header Parameters

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

  • DELETE

Resource URL

  • 任意のURL
    • 該当URLを、OPTiM Store 登録時にご連絡ください。
  • 本章では、https://your-service.example.com/scim/v1/Users/:id として記載致します。

Header Parameters

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

処理内容

  1. アクセストークンが正しい値であるか確認します。
  2. アクセストークンから対象のテナントを特定します。
  3. テナント内の情報からidを元に対象の利用者を特定し、削除処理をします。
  4. 処理結果のレスポンスを返します。

Response

Response Code

204 No Content

Response Parameters

  • レスポンスは空となります。