端末の固有情報を取得する回答ではありません。
どのように判定を行うかによって精度が変わりますが、
1ユーザ1アカウントを100%判定するのはほぼほぼ無理かと思います。
質問文からは1端末1ユーザを前提とした文章に読み取れますが、
例えばデスクトップPCでは家族など複数のユーザが同じ端末を使うことがあります。
会社や学校で貸出のタブレット・スマホなどを使うこともありますよね。
そのため、同じ端末から複数ユーザが登録する可能性は普通にあるので
端末の固有情報を1ユーザと特定するのは厳しいと思われます。
また、逆に1人でPCとスマホ、あるいはタブレットなど複数端末を持っていた場合は
複数端末から1人のユーザが複数登録するとも考えられます。
そう考えると端末の固有情報のみを信じるのは厳しいどころか無理があります。
(もちろん端末の固有情報だけで判断するわけではないでしょうけども。)
以下にいくつか案を書きますが、いずれも100%判定はほぼ無理だと思って読んでください。
いまやメールアドレスなんぞいくらでも作れる時代なのでほぼほぼ無意味でしょう。
1アドレスしか持ってないという人だけ防げます。
メールアドレスより精度は上がるかと思いますが、今やスマホ2台持ちとか
普通になっているのでこれもそこまで期待できるものではないかと思います。
信頼性が重要なwebサービスでは結構取り入れてます。
ぐっと精度は上がりますが、画面の向こうの人が本当に本人のものかを
確実に判定する方法はないので100%ではないです。
また、それを登録しなきゃ使えないwebサービスはユーザ目線で気楽に使えないと思います。
- 実店舗など、リアル店舗だけでアカウント登録するようなサービスにする
もちろん個人を証明できるものを持ってきてもらうのが必須ですが、
店員がちゃんと証明書の顔写真の判定もできますし、信頼感はあります。
ただ、店員が100%判定できるわけじゃないのでこれも確実じゃないです。
実際にアカウント登録した人が横流しする可能性もあります。
(ここまで来ると揚げ足取りな気がしてますがご容赦ください。)
完全に1ユーザ1アカウントを判定するのであれば上記以上にがっちりとした対策を練る必要があります。
しかし、それは果てして質問者様の作るwebサービスに合った方法でしょうか?
作成するアプリの目的や規模に応じてできる対策を考えるのが妥当かと思います。
ちなみに今現在結構なwebサービスで複数アカウント禁止のサービスがありますが、
(特に問題に答えるものだったり商品が出るものだったりするサイト)
わかりやすく規約違反である旨を載せることで防ぐことが多いように思います。