Tenant Contract Update

OPTiM Store のユーザー企業様が、御社サービスの利用ライセンス数等を変更された場合に行われる、テナント契約変更処理系のAPIです。
御社サービス側に実装頂き、OPTiM Store よりAPIの呼び出しを行います。

Request

Method

  • PUT

Resource URL

  • 任意のURL(Contract Setup APIと共通)
    • 該当URLを、OPTiM Store 登録時にご連絡ください。
  • 本章では、https://your-service.example.com/contract/api として記載致します。

Header Parameters

Content-Type: application/json

Query Parameters

  • なし

Request Parameters

key type description
contract_statement String Contract Statement AttributesのJSONを署名したJWT形式の文字列

Sample Body

{
  "contract_statement": "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsImtpZCI6Im01ZThpY2lZQ2FoNkNDS3lvSzBrbHBZZnIzNmd1RWRJOHF4QTEwdEFNaG8ifQ.eyJpc3MiOiJodHRwczovL3N0b3JlLm9wdGltLmNvLmpwIiwiYXVkIjoiaHR0cHM6Ly95b3VyLXNlcnZpY2UuZXhhbXBsZS5jb20vY29udHJhY3QvYXBpIiwiY29tcGFueSI6eyJpZCI6ImY0NmY5OTcwYzkxNGFmOWEyMjQ5MTQwMmFhOWVlZGM0YTk2NDVmMmQyYTMwM2EzOTg2N2MzMDRiYTQ2MWM0N2YiLCJuYW1lIjoiIFhYWCIsIndlYnNpdGUiOiJodHRwczovL3h4eC5leGFtcGxlLmNvbSIsImNvbnRhY3QiOiJzeXNhZG1pbkB4eHguZXhhbXBsZS5jb20ifSwibGljZW5jZSI6eyJwb29sIjoxMH0sImNvbnRyYWN0X2p3ayI6eyJraWQiOiIwLUI1SFZJZEhVdThjUE1LU24zandsQTBjdG9mX2FqTlVvYmxuRWpZV3JJIiwia3R5IjoiUlNBIiwiZSI6IkFRQUIiLCJuIjoiNkpOSEZ0bDNhdG9iM3U0NVEyM2ZhdzJtRUFQNGxPWk81UE41aC04UV9OZnFSaTJBRHpIQWRBTTlCU0V6U3dxcGxBV0trcjZZOVBMcldLdnNnRjZxNk4tZjNOSGN6YWEydmZxdDVDVzRHaVdCdlB3MmhaOXkyQjJFekI3NmZJbmdUbjQza0U3MXA1dTZqSVdkZmxrbVRFbUtNVkVtZEM3S1ZSeG9NUVFrWGlHLVFVN1J3X0Zycl9PdEdPblhYaHhUcnoxdHlobTlGam1VMUltSFptMlJpYjVORVg0Z2hBQUlKWnN3Tjh6TjV0RXlKaUdnMWFKNEJmWXJTOUFYRVhRSGFZSlg5S3pidi1VcVlHSWlGSGNQMU1tSzRacVE1S3A4eF9rMElEQTVEVWMzZWNEdzBBeG1fQXJsMUJQOTRZVlBRb2IyRDFYZ3I2cVl0LTJYcDB1eHl3IiwidXNlIjoic2lnIn0sImlhdCI6MTQ2NDA1MzcwNiwiZXhwIjoxNDY0MDU0MzA2fQ.O5FiomvNB6SiSGSlW1TAG4Q_Kesg7s7FfmraAb6G4CIgIq4UHCT8R7CT-ayS8GVT_GB4b40Ruc88Te-baZ2qC0vh3ceIzlNMep8mp4vLhzsxj7MgqGNyKiTjzvaTwLtRLD7Uc_-2-OVPgCha1545BlFxLbcPKRjxaNc5QmmBA6yi0kmCsidk1lfWEKx0vGZZih77g4Wn_k9LMQ4aB4OOkLvpaO0Afi0D-nv91xy2QI-pMDTphNpSqZkZBsNvvtyuEHHbo1qhrUJ81NDdALPUoMcws8TKq7pB5j_NUEY7sfXqgR0FQ5WvBult43Xx7RHvlNqOhpxw9bUQpWBcPstcHQ"
}

Contract Statement Attributes

key type description
iss string リクエスト発行者 (issuer) の識別子です。OPTiM Store の URL となります。
aud string リクエスト受信者 (audience) の識別子です。御社サービスの Tenant Contract API Endpoint URL となります。
company object 実際に御社サービスを利用される OPTiM Store ユーザー企業様の情報です。id は普遍ですが、name は更新されている可能性があるので既存の値と比較して、変更があれば適宜変更を反映させてください。
license object 購入ライセンス数等の情報です。現時点ではライセンス数のみを含みます。ライセンス数に変更があれば適宜変更を反映させてください。
contract_jwk object Tenant Contract Setup リクエスト時に OPTiM Store から送信された当該テナント契約に紐づく contract_jwkkid のみが含まれます。
iat integer リクエスト生成日時 (issued_at) を示す Unix Timestamp です。
exp integer リクエストの有効期限 (expires_at) を示す Unix Timestamp です。

Contract Statement Signing Key

  • Contract Setup APIで、OPTiM Storeから御社サービスへ渡した公開鍵に紐づく秘密鍵
    • 御社サービス側では、該当の公開鍵を利用し、contract_statementのJWTの署名検証を行ってください。
    • 署名検証については、JOSE実装チュートリアル を参考にしてください。

Contract Statement Sample JSON

{
  "iss": "https://store-xyz.optim.co.jp",
  "aud": "https://your-service.example.com/contract/api",
  "company": {
    "id": "f46f9970c914af9a22491402aa9eedc4a9645f2d2a303a39867c304ba461c47f",
    "name": "株式会社 XXX"
  },
  "license": {
    "pool": 15
  },
  "contract_jwk": {
    "kid": "0-B5HVIdHUu8cPMKSn3jwlA0ctof_ajNUoblnEjYWrI"
  },
  "iat": 1470112510,
  "exp": 1470112810
}

Response

御社サービス側でリクエストを承認された場合、下記に従ったレスポンスを返却してください。

Response Code

200 OK

Response Parameters

key type description
iss string レスポンス発行者 (issuer) の識別子です。御社サービスの Tenant Contract API Endpoint URL となります。
aud string レスポンス受信者 (audience) の識別子です。OPTiM Store の URL となります。
iat integer レスポンス生成日時 (issued_at) を示す Unix Timestamp です。
exp integer レスポンスの有効期限 (expires_at) を示す Unix Timestamp です。

Sample Body

{
  "iss": "https://your-service.example.com/contract/api",
  "aud": "https://store-xyz.optim.co.jp",
  "iat": 1464053706,
  "exp": 1464054306
}

注意事項

OPTiM Store では、契約ライセンス数以上のライセンス付与済アカウント数が発生しなように Validation を行っていますが、御社サービス側での非同期処理やライセンス剥奪通知処理の失敗等により、ライセンス付与済アカウント数が契約ライセンス数を上回る可能性はゼロではありません。
もしライセンス付与済アカウント数が契約ライセンス数を上回るような状況が発生する場合には、ライセンス数変更通知に対するレスポンスとして 400 エラーを返すようにしてください。

400 エラーを検知した場合、OPTiM Store の運営担当より、御社サービス担当者様に契約内容の修正のご連絡をさせていただきます。