SAML Service Provider Setup

OPTiM Store へ SAML Service Provider としての登録を行うためのAPIです。
OPTiM Store では、OpenID Connect Client Setup と同じような方法で、SAML SP 登録を受け付けています。

Request

Method

  • POST

Resource URL

  • URLは、OPTiM Store との契約時にご連絡いたします。
  • 本章では、https://store-xyz-api.optim.co.jp/api/idp/saml/register として記載致します。

Header Parameters

Content-Type: application/json

Query Parameters

  • なし

Request Parameters

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

Sample Body

{
  "software_statement": "eyJhbGciOiJSUzI1NiIsImtpZCI6InU2N1BXM1JjMFRvM3RfNGZQejNDd2IwZnV4SUNYWGhJOFN3Qm5hazRDNlEifQ.eyJ0b2tlbl9lbmRwb2ludF9hdXRoX21ldGhvZCI6ImNsaWVudF9zZWNyZXRfYmFzaWMiLCJncmFudF90eXBlcyI6ImNsaWVudF9jcmVkZW50aWFscyIsImNsaWVudF9uYW1lIjoiT3B0aW0gU3RvcmUgQ29udHJhY3QjMTIzNDUifQ.aBu83V3iJrYpH6yZdBdEfERvJxCAdOKtHaIiELLCWVaY9iqNP8yiAfm2sXePG1WaPm2K_RPBc_03s-vJSwDr_opgt8Va5pSLLW90JQ-hLXZIav0yu2NF3ZWCOP0ku5hzpOopOHP2gLXMAA1Bt1FcqQTwH6TBgPWIe1zbvtQe4UgxQncmyllvlvmvGygmrPaUGS0GNMr_kbkP1yccwlb3C30Kea5Ljsc-Y4nsFCw81r90Dm-hoe3Ox8Jrjq9P5KC7Z_Cqj5CGmff3pCQIT3gjU677cSgJr7F-W0Xi15970Xlv_z4rUmNqTKQHOQgkCMj7VxTRO03ajf7KqjtmB8VkJw"
}

Software Statement Attributes

key type description
iss string リクエスト発行者 (issuer) の識別子です。御社サービスの Contract Start API Endpoint URL となります。
aud string リクエスト受信者 (audience) の識別子です。OPTiM Store の SAML Service Provider Registration API Endpoint となります。
entity_id string SP Entity ID です。省略すると後述の callback_urlentity_id として扱います。
nameid_format string persistentemail を指定可能です。ただし Email をユーザー識別子として用いるとセキュリティ上の問題を引き起こしやすくなるため、persistent の利用を強く推奨します。
callback_url string OPTiM Store で認証されたユーザーが御社サービスにリダイレクトされて返される際の Callback Endpoint URL です。
iat integer リクエスト生成日時 (issued_at) を示す Unix Timestamp です。
exp integer リクエストの有効期限 (expires_at) を示す Unix Timestamp です。

Software Statement Signing Key

  • Contract Setup APIで、OPTiM Storeから御社サービスへ渡した公開鍵に紐づく秘密鍵
    • 御社サービス側では、該当の公開鍵で署名検証を行ってください

Contract Statement Sample JSON

{
  "iss": "https://your-service.example.com/contract/api",
  "aud": "https://store-xyz-api.optim.co.jp/api/idp/saml/register",
  "entity_id": "https://your-service.example.com/optim-store",
  "nameid_format": "persistent",
  "callback_url": "https://your-service.example.com/optim-store/callback",
  "iat": 1464053706,
  "exp": 1464054306
}

Response

正常なリクエストである場合、OPTiM Store から下記に従ったレスポンスが返却されます。 idp_metadata には SAML IdP Metadata XML が含まれます。

その他の属性値は idp_metadata に含まれる値と同じなので、無視していただいても構いませんし、IdP Metadata XML を Parse する代わりに JSON から必要なパラメータを取得していただいても構いません。

このレスポンスを元に、御社サービス側テナントを OPTiM Store SAML IdP テナントと関連付けてください。

Response Code

201 Created

Response Parameters

key type description
entity_id string IdP Metadata の entityID の値
single_sign_of_service object IdP Metadata の SingleSignOnService の値
nameid_format string IdP Metadata の NameIDFormat の値
certificate string IdP Metadata の X509Certificate の値
idp_metadata string SAML IdP Metadata (XML形式)

Sample Body

{
  "entity_id": "https://store-xyz-federation.optim.co.jp/saml2/:tenant_id/assertion",
  "single_sign_of_service": {
    "binding": "http_redirect",
    "location": "https://store-xyz-federation.optim.co.jp/saml2/:tenant_id/assertion"
  },
  "nameid_format": "persistent",
  "certificate": "-----BEGIN CERTIFICATE-----\n...\n-----END CERTIFICATE-----\n",
  "idp_metadata": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\n\u003cmd:EntityDescriptor xmlns:md=\"urn:oasis:names:tc:SAML:2.0:metadata\"..."
}