OPTiM Store のユーザー企業様が、御社サービスの利用ライセンス数等を変更された場合に行われる、テナント契約変更処理系のAPIです。
御社サービス側に実装頂き、OPTiM Store よりAPIの呼び出しを行います。
Content-Type: application/json
key | type | description |
---|---|---|
contract_statement | String | Contract Statement AttributesのJSONを署名したJWT形式の文字列 |
{
"contract_statement": "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsImtpZCI6Im01ZThpY2lZQ2FoNkNDS3lvSzBrbHBZZnIzNmd1RWRJOHF4QTEwdEFNaG8ifQ.eyJpc3MiOiJodHRwczovL3N0b3JlLm9wdGltLmNvLmpwIiwiYXVkIjoiaHR0cHM6Ly95b3VyLXNlcnZpY2UuZXhhbXBsZS5jb20vY29udHJhY3QvYXBpIiwiY29tcGFueSI6eyJpZCI6ImY0NmY5OTcwYzkxNGFmOWEyMjQ5MTQwMmFhOWVlZGM0YTk2NDVmMmQyYTMwM2EzOTg2N2MzMDRiYTQ2MWM0N2YiLCJuYW1lIjoiIFhYWCIsIndlYnNpdGUiOiJodHRwczovL3h4eC5leGFtcGxlLmNvbSIsImNvbnRhY3QiOiJzeXNhZG1pbkB4eHguZXhhbXBsZS5jb20ifSwibGljZW5jZSI6eyJwb29sIjoxMH0sImNvbnRyYWN0X2p3ayI6eyJraWQiOiIwLUI1SFZJZEhVdThjUE1LU24zandsQTBjdG9mX2FqTlVvYmxuRWpZV3JJIiwia3R5IjoiUlNBIiwiZSI6IkFRQUIiLCJuIjoiNkpOSEZ0bDNhdG9iM3U0NVEyM2ZhdzJtRUFQNGxPWk81UE41aC04UV9OZnFSaTJBRHpIQWRBTTlCU0V6U3dxcGxBV0trcjZZOVBMcldLdnNnRjZxNk4tZjNOSGN6YWEydmZxdDVDVzRHaVdCdlB3MmhaOXkyQjJFekI3NmZJbmdUbjQza0U3MXA1dTZqSVdkZmxrbVRFbUtNVkVtZEM3S1ZSeG9NUVFrWGlHLVFVN1J3X0Zycl9PdEdPblhYaHhUcnoxdHlobTlGam1VMUltSFptMlJpYjVORVg0Z2hBQUlKWnN3Tjh6TjV0RXlKaUdnMWFKNEJmWXJTOUFYRVhRSGFZSlg5S3pidi1VcVlHSWlGSGNQMU1tSzRacVE1S3A4eF9rMElEQTVEVWMzZWNEdzBBeG1fQXJsMUJQOTRZVlBRb2IyRDFYZ3I2cVl0LTJYcDB1eHl3IiwidXNlIjoic2lnIn0sImlhdCI6MTQ2NDA1MzcwNiwiZXhwIjoxNDY0MDU0MzA2fQ.O5FiomvNB6SiSGSlW1TAG4Q_Kesg7s7FfmraAb6G4CIgIq4UHCT8R7CT-ayS8GVT_GB4b40Ruc88Te-baZ2qC0vh3ceIzlNMep8mp4vLhzsxj7MgqGNyKiTjzvaTwLtRLD7Uc_-2-OVPgCha1545BlFxLbcPKRjxaNc5QmmBA6yi0kmCsidk1lfWEKx0vGZZih77g4Wn_k9LMQ4aB4OOkLvpaO0Afi0D-nv91xy2QI-pMDTphNpSqZkZBsNvvtyuEHHbo1qhrUJ81NDdALPUoMcws8TKq7pB5j_NUEY7sfXqgR0FQ5WvBult43Xx7RHvlNqOhpxw9bUQpWBcPstcHQ"
}
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_jwk の kid のみが含まれます。 |
iat | integer | リクエスト生成日時 (issued_at) を示す Unix Timestamp です。 |
exp | integer | リクエストの有効期限 (expires_at) を示す Unix Timestamp です。 |
contract_statement
のJWTの署名検証を行ってください。{
"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
}
御社サービス側でリクエストを承認された場合、下記に従ったレスポンスを返却してください。
200 OK
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 です。 |
{
"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 の運営担当より、御社サービス担当者様に契約内容の修正のご連絡をさせていただきます。