EC-CUBE / EC-CUBE/TwoFactorAuthCustomer42

本人認証プラグインの仕様概要について

Open
#18 0 comments 0 reactions 0 assignees View on GitHub
documentation
Dominant language
PHP
Stars
2
Forks
7
PR merge metrics
No merged PRs in 30d

Description

仕様についてまとめた資料を作成致しました。
加筆修正する項目などあれば、よろしくお願いします。

---
# 本人認証プラグイン 仕様概要

## 認証機能別概要

### SMS認証

- アクティベーション時に「デバイス認証」済みの会員の場合、[デバイス認証済み]電話番号へトークン送信
- 「デバイス認証」がなされていない会員の場合、トークン送信先電話番号を入力 > トークン送信
- 送信先電話番号は会員情報と紐づけて管理する
- 一度電話番号を紐づけた場合、現時点では会員側から「紐づけ」を解除する事は不可。
- 管理 > 顧客管理 > 顧客編集からショップ側からは解除可能。

### 【アプリ認証】
- 現時点ではGoogle Authenticator / Authy が利用可能
- 初回認証時はアプリ登録用のQRコードを表示+秘密鍵を生成
- 二回目以降の認証時はQRコードは非表示
- → 生成した秘密鍵は会員情報と紐づけて管理する
- 現時点では会員側から「紐づけ」を解除する事は不可
- 管理 > 顧客管理 > 顧客編集からショップ側からは解除可能。

## 新規会員登録(会員登録時のデバイス認証)

### 【目的】
ダミーアカウントの複数作成防止(但し、EC-CUBEの仕様上、仮会員データはdtb_customerには作成される)

### 【機能要件】
- 仮会員登録後、SMS認証をクリアしないと正会員として登録できないようにする
- アクティベーションした電話番号は会員情報と紐づける
- 会員情報と紐づけられた電話番号は他会員のアクティベーション時には使用不可
- エラーメッセージは特に出力せず、「トークン送信した」という内容でトークン入力画面を表示。

### 【ユーザーシナリオ】
![img_2](https://user-images.githubusercontent.com/121000728/224669968-47182683-dae0-4299-b5fd-8b973d3fb5a9.png)

### 画面の例

携帯電話の番号を入力して、認証コードを送信を押す
![image](https://user-images.githubusercontent.com/121000728/224672199-61208a79-b3de-4714-b80f-4a5eca56fdec.png)
携帯のSMSに届いた認証コードを入力する
![image](https://user-images.githubusercontent.com/121000728/224671836-4647d129-3f7f-4a74-8fd6-c82fdc28e6c9.png)

## 管理画面での2段階認証設定
twillioの登録情報をこちらに入力する。
![image](https://user-images.githubusercontent.com/121000728/224672892-34132a2f-9f2b-4c56-8d2a-7a5b4bc748a9.png)

## ログイン時・重要操作時の本人認証
### 【目的】
- 本人であることを認証することで、アカウントの悪用を防ぐ

### 【機能要件】
- プラグイン有効化後より、ログイン時 または [重要操作]として指定したルーティングにアクセスされた場合に機能する
- 多要素認証方式が[未選択]の場合、インストール・有効化されている「多要素認証」より「どれを利用するか?」を選択させる。選択以降、現時点では方式変更は不可とする。
- [重要操作 - ログイン認証済みでも再認証]させるルーティングはプラグイン管理画面より設定可能とする。
- ログイン/重要操作時のCookieはログインCookieとは別で発行する。各Cookieの有効期限は設定ファイルで変更可能とする。

#### ルーティング設定例
![img_6](https://user-images.githubusercontent.com/121000728/224669984-8be8e692-7104-4694-84ad-09dd41fcf323.png)

## ログイン時・重要操作時の多要素認証
### 【ユーザーシナリオ】
![img_7](https://user-images.githubusercontent.com/121000728/224669987-8c0e30bb-78e4-4d77-a7df-a40ae85a66a4.png)

### 画面の例
認証方式を選択し、「設定」を押す
![image](https://user-images.githubusercontent.com/121000728/224674034-9aee847d-1928-49f6-880c-11ff721dba3b.png)

認証用アプリでQRコードをスキャンし、表示された6桁の数字を入力後、「認証」を押す
![image](https://user-images.githubusercontent.com/121000728/224674109-32b10f9b-9bd2-43a4-b98b-dbe1bf552e63.png)

## 設定パラメータの説明
### 管理画面>会員登録(編集)の項目
![image](https://user-images.githubusercontent.com/121000728/224675329-fb8e9248-b168-40cb-86db-575f0a1b44fc.png)

| 項目名 | 説明 |
|--------------|-----------------------|
| デバイス認証 | 本会員登録時のSMS認証が完了しているか |
| デバイス認証済み電話番号 | 本会員登録時に使用した電話番号 |
| 二段階認証方式 | 会員が選択した認証方式 |
| 秘密鍵 | APP認証を選択した場合、保存される |
| 2段階認証電話番号 | SNS認証を選択場合、電話番号が保存される |

### 管理画面>設定>店舗設定>基本設定
#### 会員設定
![image](https://user-images.githubusercontent.com/121000728/224675158-2e82a7c7-faa4-424f-bc75-361d531df60d.png)

| 項目名 | 説明 |
|-----------|-------------|
| 本会員時の本人認証 | 本人認証の有効・無効 |
| 2段階認証機能 | 2段階認証の有効・無効 |

*2段階認証機能を無効にしても、本会員登録時の2段階認証は行われる。

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.