本仕様書では、OPTiM Store に登録される SaaS サービス事業者様向けの、OPTiM Store 連携の全体フロー概要を説明します。
実際の実装にあたりましては、OpenID ファウンデーション・ジャパン の Enterprise Identity WG にて公開されております、下記のガイドラインも合わせてご参照ください。
OPTiM Store と御社サービスとの連携は、以下の5つの Step に大別されます。
Step 1-3 はユーザー企業様が御社サービスを利用開始される初回のみ実行される処理で、この処理を OPTiM Store API を使って自動化することで、ユーザー企業様が待ち時間なくスムーズに御社サービスを利用開始できるようになります。
この処理の自動化実装はオプションであり、実装しない場合は OPTiM Store と御社サービスとの間の初期設定が書面やメールベースで行われます。
Step 4-5 はそれ以降継続的に実施される処理であり、この部分は御社サービス側でも必ず実装していただく必要があります。
上記の全体フローは以下の図のようになります。それぞれの詳細については後述します。
OPTiM Store 上でユーザー企業の担当者様が御社サービスを購入すると、OPTiM Store から御社サービス側に、契約開始リクエストが送信されます。
この契約開始リクエストは、ユーザー企業ごとに、初回の1回ずつ発行されます。このリクエストを受け取りましたら、御社サービス側で当該ユーザー企業様向けテナントをご用意ください。
契約開始処理についての詳細は Tenant Contract Setup をご覧ください。
Contract API の利用が困難な場合には、契約開始処理は書面ベースやメールベースで行うことも可能ですが、その場合ユーザー企業様は購入してからサービス利用開始まで数営業日待つことになりますので、できる限り Contract API を利用した契約開始処理の自動化を推奨します。
プロビジョニングとは、OPTiM Store 側でユーザー企業担当者様がライセンス付与作業を行った場合に、当該ユーザー様に関するライセンスの追加・変更イベントを御社サービス側に通知する仕組みです。
また、ライセンス情報だけでなく、Email アドレス等のユーザープロフィールの変更についても、プロビジョニングによって御社サービス側に通知されます。
OPTiM Store では SCIM というプロトコルを用いてプロビジョニングを行います。
契約開始直後に OPTiM Store から御社サービス側に SCIM Client 登録リクエストを投げますので、御社サービス側には SCIM Client 登録用の API を提供していただく必要があります。
このプロビジョニング初期設定処理については SCIM Client Setup をご覧ください。
なお契約開始処理を自動化されない場合は、こちらの処理についても書面 or メールベースで行うことになります。
エンドユーザー様が OPTiM Store アカウントで御社サービスにログインするためには、御社サービス側で OPTiM Store との ID 連携処理を行っていただく必要があります。
ID 連携のための仕組みとして、OPTiM Store では OpenID Connect と SAML 2.0 という2つの仕組みを提供します。
OpenID Connect プロトコルに従って ID 連携を行うには、OpenID Connect Client 登録が必要になります。OPTiM Store では OpenID Connect Client 登録用の API を提供しています。
契約開始直後に、この OpenID Connect Client 登録 API を用いて、ID 連携初期設定を行ってください。
この ID 連携初期設定処理については OpenID Connect Client Setup をご覧ください。
なお契約開始処理を自動化されない場合は、こちらの処理についても書面 or メールベースで行うことになります。
OpenID Connect の代わりに SAML を利用する場合は、SAML Service Provider Setup をご覧ください。
※ 既にマルチテナントな SAML SP を実装しているサービス事業者様を除き、基本的には OpenID Connect の利用を推奨します。
プロビジョニング初期設定および ID 連携初期設定が完了すると、ユーザー企業担当者様はエンドユーザー様へのライセンス付与処理が可能になります。
ライセンス付与が行われると、その都度御社サービス側に SCIM プロトコルにしたがってユーザー追加・更新・削除通知が送られます。
御社サービス側は、この通知を受けとるための SCIM API Server を実装し、受け取ったユーザー情報を該当する御社サービス側のテナントに反映させてください。
SCIM API Server 実装方法については SCIM Provisioning をご覧ください。
契約開始処理を自動化されない場合でも、こちらの処理の実装は必須です。
プロビジョニングが完了すると、OPTiM Store アカウントで御社サービスにログインすることが可能な状態になります。
OpenID Connect や SAML を利用すると、OPTiM Store に認証されたユーザーの認証情報を、署名付きデータとして受け取ることができます。
御社サービス側では、受け取ったデータを検証し、そこに含まれる御社側テナント情報および OPTiM Store ユーザー識別子を確認することで、当該ユーザーを御社サービス側のアカウントにログインさせることができます。
ID 連携の実装方法については OpenID Connect Federation をご覧ください。
また Web アプリ, Native アプリそれぞれの OpenID Connect 対応のためのチュートリアルもご用意しておりますので、こちらも合わせてご覧ください。
契約開始処理を自動化されない場合でも、こちらの処理の実装は必須です。
Step 3. ID 連携初期設定 (SAML Service Provider Setup) もしくは問い合わせベースでの SAML SP 登録後に OPTiM Store から払い出される IdP Metadata を元に、SAML 連携を行ってください。
OpenID Connect 利用時と異なり、御社側のテナント毎に OPTiM 側の SAML IdP テナントが分割されるため、テナント毎に SAML IdP Metadata も異なることに注意してください。
なお、SAML 連携機能は既にマルチテナントな SAML SP を実装しているサービス事業者様を想定しているため、本ドキュメントでは SAML プロトコルに関する説明は省略します。