ミルビィポータルのSSOオプションについて解説します。お客様保有のシステムとミルビィポータルをSSO連携することで保有システムへの一度の認証でミルビィポータルへログインすることができます。
※連携にはお客様側での事前開発が必要となります。そのため事前の疎通テストを推奨しております。疎通テストにつきましては、カスタマーサクセスへお問い合わせください。
目次
本APIご利用における注意事項
- 本オプションはこれからミルビィポータルを導入される方、すでにお使いいただいている方のどちらもお申し込みいただける機能となります。
- 本オプションを環境へ適用する場合に1時間程度のサービスメンテナンスが発生します。
※メンテナンス時間は10:00-19:00の間で1時間お選びいただきます。その間ログインや動画視聴はできません。 - 一度SSOオプションをお申し込みされた場合は、途中での解約はできません。
- お客様保有システム側での開発が必要となります。
- 本APIの開発にあたり、ミルビィポータルの検証環境上での開発と検証していただいた後、ミルビィポータルの本番環境への適用を推奨しております。
- 検証環境をご検討される場合は、カスタマーサクセスまでご連絡ください。
- 本API開発を弊社で担当する事は致しかねますのでご了承ください。
ログイン/登録/更新の概要イメージ
お客様保有システム側でログイン/登録/更新に必要なアカウント情報を生成し、暗号化した上でログインAPIをコールすることで連携します。
暗号化の仕様について
パラメータ暗号化仕様
文字コード | UTF-8 |
暗号化アルゴリズム | AES |
キー長 | 128bit |
ブロック長 | 128bit |
暗号化利用モード | CBC |
パディング方式 | PKCS#7 |
ソルト(Salt) | 8byteのランダム文字列 |
暗号化パスワード(Key) | ユーザごとに半角英数字32文字をランダム生成(※1) |
初期化ベクトル(IV) |
(("暗号化パスワード" + "ソルト")のmd5ハッシュバイナリ文字列)) + (("暗号化パスワード" + "ソルト")のmd5ハッシュバイナリ文字列)) |
エンコード方式 |
Base64 |
(※1)OpenSSLで以下暗号化を実行したと想定し、複合化を実行します。
openssl enc -e -aes-128-cbc -base64 -k '暗号化パスワード(Key)'
ログイン/登録/更新APIの仕様
通信方式
- プロトコル:HTTPS
- リクエストメソッド:GET
呼び出しURL
- https://(コモンネーム)/(ディレクトリ名)/sso/login.php
- コモンネームとディレクトリ名は、申込時に指定いただいた「ポータル情報設定登録シート」の内容を設定してください。
URLパラメータ
- 論理名:シグニチャID
- パラメータ名:sid
- ログインユーザがポータルで利用する情報を暗号化仕様に基づいて暗号化された文字列
シグニチャID内のパラメータ仕様
パラメータ(論理名) | フォーマット | 備考 | 例 |
ユーザID | 文字型 最大文字数100文字 |
ユーザごとにユニーク指定
ポータルの会員IDに該当 |
userA |
姓 | 文字型 最大文字数40文字 |
エビリー | |
名 | 文字型 最大文字数40文字 |
一郎 | |
メールアドレス | 文字型 最大文字数100文字 |
不要の場合、ブランク指定 | user_a@example.com |
グループ名 |
文字型 最大文字数100文字 |
ポータルに登録されている必要あり | 営業部 |
権限区分 | 数字型(1桁) | 1:管理者、2:視聴者 | 2 |
現在の年月日時分秒 | 数値型(14桁) | 0埋め 複合化した年月日時分秒とポータルにアクセスした日時が1分以上経過している場合は認可エラーとなるため、サーバーでの生成を推奨 |
2022041090807 |
呼び出し処理
-
- 上記「シグニチャID内のパラメータ」を「|」(パイプ)で文字列結合してください。
- 例:userA|エビリー|一郎|user_a@example.com|営業部|1|20220401123456
- 注意:ミルビィポータル側での認証時、現在の年月日時分秒から1分以上経過した場合、SSO可能なユーザでもログイン失敗となります。
- 1で結合した文字列を暗号化仕様に基づいて暗号化してください。
- 2の暗号化によって取得した文字列をURLエンコード後、GETパラメータとして付与して実行してください。
- 例:https://(コモンネーム)/(ディレクトリ名)/sso/login.php?sid=emcrypted_params
- 上記「シグニチャID内のパラメータ」を「|」(パイプ)で文字列結合してください。
ミルビィポータル側のログイン処理フロー
-
- GETパラメータを復号化して、ユーザ情報を取得します。
- ユーザIDの存在チェックを実施します。
- 登録済ユーザの場合
- ログイン状態にて視聴者トップ画面に遷移します。
- 未登録ユーザの場合
- ミルビィポータルにユーザ登録され、ログイン状態にて視聴者トップ画面に遷移します。
- 登録済ユーザの場合
ミルビィポータル側のエラー処理
- 以下エラーパターンに該当する場合、エラー画面に遷移します。
- 復号結果のグループ名がミルビィポータルに登録されていない場合
- 復号結果のグループ名と権限区分がミルビィポータル上のデータと合致していない場合
- 現在の年月日時分秒が遷移前後で1分以上経過している場合
- エラー画面
削除APIの仕様
通信方式
- プロトコル:HTTPS
- リクエストメソッド:POST
呼び出しURL
- https://(コモンネーム)/(ディレクトリ名)/sso/delete.php
- コモンネームとディレクトリ名は、申込時に指定いただいた「ポータル情報設定登録シート」の内容を設定してください。
- POSTパラメータ(JSON形式)
- 論理名:シグニチャID
- パラメータ名:sid
- ポータルで利用する情報を暗号化仕様に基づいて暗号化された文字列
シグニチャID内のPOSTパラメータ仕様
パラメータ(論理名) | フォーマット | 備考 | 例 |
ユーザID | 文字型 最大文字数100文字 |
ユーザごとにユニーク指定
ポータルの会員IDに該当 |
userA |
現在の年月日時分秒 | 数値型(14桁) | 0埋め 複合化した年月日時分秒とポータルにアクセスした日時が1分以上経過している場合は認可エラーとなるため、サーバーでの生成を推奨 |
20220401090807 |
POSTリクエスト結果(JSON形式)
パラメータ(論理名) | パラメータ名 | 備考 |
ステータス | status |
・true(成功) |
エラーコード | errorcode | エラーコード(詳細はエラーコード一覧を参照) |
エラー内容 | error | エラー内容(詳細はエラーコード一覧を参照) |
エラーコード一覧
エラーコード | エラー内容 | 種別 |
1 | SSO機能有効エラー | システムエラー |
2 | 再ログインエラー | システムエラー |
3 | パラメータ復号エラー | パラメータエラー |
4 | パラメータ展開エラー | パラメータエラー |
5 | SID取得エラー | パラメータエラー |
6 | タイムアウトエラー | タイムアウトエラー |
7 | タイムアウト判定エラー | タイムアウトエラー |
8 | パラメータバリデーションエラー | パラメータエラー |
9 | グループ情報エラー | パラメータエラー |
10 | データベースエラー | システムエラー |
11 | ログインエラー | システムエラー |
12 | セッションID生成エラー | システムエラー |
13 | ログインステータス更新エラー | システムエラー |
14 | JSONデコードエラー | システムエラー |
15 | SID生成エラー | システムエラー |
50 | アカウント削除エラー | システムエラー |
98 | アクセスエラー | システムエラー |
99 | その他エラー | システムエラー |