ABC社とEmployee Aが自分のメールアドレス([email protected]など)でアカウントにサインアップしているとします。ただし、従業員Bが同じ会社でサインアップしたが、自分の電子メール(たとえば、employeeB @ companyabc.comまたは[email protected])を使用しているとします。
私たちのシステムは、従業員Bが所属する会社がすでにサインアップしているため、アカウントを作成できないことを検出できる必要があります。会社ごとに1つのアカウントのみです。
これを防ぐために、登録フォームにどのフィールドを入力する必要がありますか?同じ会社名を異なる方法で入力することもあるので、会社名だけに依存することはできません(たとえば、会社を会社ABCまたは会社abcまたはABCのみと呼ぶ場合もありますが、実際には同じ会社を指します)。
他の人は、この制限を100%強制する技術的な方法はないと述べています。人々は賢いことができ、人々はこれを回避する方法を見つけるでしょう。
1つのアプローチは、サービスにサインアップするときに人々が同意する契約に追加することにより、これを法的に実施することです。
しかし、なぜこの制限を強制したいのですか?同じ会社が誤って複数のアカウントにサインアップして、後でマージする必要がないようにしたいだけですか?
100ユーザーの会社となる可能性のあるログイン資格情報のセットが1つしかない場合、セキュリティの問題になると思いませんか?
要件を元に戻すことを検討しましたか?人々が会社を指定することを許可し、複数のアカウントを許可しても、それらすべてを同じ会社に接続している場合はどうでしょうか? 1つの企業アカウントのみを希望する理由(たとえば、無料の特典を複数回請求することを防ぐなど)に応じて、これは実行可能なアプローチになる場合があります。
なぜこの制限が必要であるかを知らなければ、良い解決策を提案することは困難です。
具体的にあなたに解決策を与えるのではなく、これはあなた自身のためにそれを解決するために使用するプロセスです。
あなたが説明している人間/コンピュータの相互作用の成功した結果を定義します。
たとえば、「システムは、従業員がAPIを怖がらせずに重複したアカウントを作成することを防止します。」
これを100%防ぐことはできません。適用する可能性のある技術的な制限を回避する方法は常にあります。たとえば、@ gmail.comなどを使用して自分の会社に登録できますか?
あとはあとでチェックできると思います。たぶん、ユーザーに登録を許可し、確認後にのみフルアクセスを許可しますか? T&Cを追加することも良い考えです。
サイドノート
会社が誰が会社を登録するかについての会議があったが、あなたが知らないことを望む人もいるかもしれません。あら….
何をすべきか?
あなたができる最善のことは、誰かがあなたが提出したくないものを提出する可能性のあるすべての可能な方法を考え、それを試みて防ぐことです。
私は最初に考えました。
これを防ぐためにドメインをチェックすることができます。
@ companyabc.comは、常にフォームで使用されるアドレスの一部になります。別のアイデアは、会社名を尋ね、それが同じかどうかを確認するためにアドレスで使用されているドメインでそれをチェックすることです。これにより、個人のメールアドレスの使用を防ぐことができます。
このリストに追加してみてください。また、これらすべての人的要因についても考えてください。
重複の可能性を1つずつ減らしましょう。
まず第一に、あなたの要件が重複なしであるならば、メールはあなたの主キーであってはなりません、あなたは携帯電話番号を求めることができます。
非常に少数の人々が2つのアクティブな携帯電話番号を持っているので、それはすでに多くのケースを減らすでしょう。第二に、携帯電話番号で身元を確認する方法はたくさんあります。確認は、通話、OTP、ビデオ通話で行うことができます。すべてはあなたが行きたい確実性のレベルに依存します。
電子メールを使用すると、それがはるかに困難になります。たとえ何らかの方法でそれを引き抜いたとしても、携帯電話番号の検証は常により最適化された方法になります。
たぶんあなたは電子メールと携帯電話番号の組み合わせを使用することができます。この問題に対する新しい解決策のセットを皆さんにお届けしたいと思います。乾杯。