Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ソーシャルログインで会員登録を行わせる際のパスワードの扱い #4764

Open
KentarouTakeda opened this issue Nov 6, 2020 · 2 comments
Labels
improvement 機能改善
Milestone

Comments

@KentarouTakeda
Copy link
Contributor

概要(Overview)

ソーシャルログインで認証だけでなく会員登録も行わせる場合パスワードは特に設定しないのが一般的と思いますが、現在の dtb_customer.password はnot nullのためそれを行うことができません。

この制限を回避するには現状、

▼【EC-CUBE4】ソーシャルログインで会員登録するときパスワード不要で登録させる方法 - あずみ.net
https://a-zumi.net/eccube4-social-login-no-password/

例えばこういった実装(会員登録時にランダムなパスワードを生成)を行う形になりますが、

  • 実装がプラグイン作者や拡張側に委ねられるため、安全でない(自動生成パスワードのエントロピーなど)実装が行われてしまう可能性を排除できない。
  • 「利用している security.encoders を問わず、どのようなパスワードとも絶対に一致しない値」を設定することが出来ればそれが最も安全。

と言った観点より、nullを許容することによる対応が最も確実ではないかと思います。

期待する内容(Expect) or 要望 (Requirement)

dtb_customer.password の not null制約を外したい
https://github.com/EC-CUBE/ec-cube/blob/4.0.5/src/Eccube/Entity/Customer.php#L122

環境 (environment)

  • EC-CUBE: 4.0.x

関連情報 (Ref)

#4664 等により外部との連携も以前より実装しやすい状況になっているため、この辺りのニーズも高まって来ている気がします。

@okazy okazy added the improvement 機能改善 label Nov 9, 2020
@okazy okazy added this to the 4.0.x milestone Nov 9, 2020
@okazy
Copy link
Contributor

okazy commented Nov 9, 2020

確かに dtb_customer.password を利用しないようなカスタマイズは考えられるかと思います。
指摘いただいているように適当な文字列を入れるより、nullを許容して確実に認証を弾いた方が安全かと思いました。
nullを許容した場合に不都合が出るところは私の思い当たる限りありません。
DBの制約を緩くすることに関しては色々意見があるかもしれないので、ご意見があればコメントいただけると嬉しいです。

@okazy
Copy link
Contributor

okazy commented Nov 12, 2020

プルリクをいただきましたが、マイナーバージョンでは取り込めないという判断となりました。
dtb_customer.password を利用しない場合の扱いについては課題が残りますので引き続きこちらのIssueで議論ができればと思います。
#4765 (comment)

@okazy okazy modified the milestones: 4.0.x, 4.x Nov 12, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
improvement 機能改善
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants