Wie kann ich überprüfen, ob eine bestimmte Domain dem Benutzer gehört?


10

Ich schreibe eine Software, die hauptsächlich von Unternehmen verwendet wird.

Ich hatte dann die Idee, Unternehmen die Möglichkeit zu geben, ihre E-Mail-Domain zu registrieren, damit jeder Benutzer, der sich mit einer E-Mail der angegebenen Domain registriert, automatisch in die Unternehmensgruppe aufgenommen wird.

Ich weiß, dass Slack so etwas macht und es funktioniert, aber es gibt einige Probleme ... zum Beispiel habe ich gerade "live.it" registriert (die italienische Version von live.com von Microsoft).

Ich kann nicht einfach davon ausgehen, dass es sicher ist, jeden Benutzer mit derselben Domain_mail in dieselbe Gruppe zu setzen, wenn ein Benutzer eine E-Mail mit einer bestimmten Domain validiert hat.

Wenn ich mich beispielsweise bei me@gmail.com registriere, möchte ich nicht, dass sich der Benutzer registriert. "Gmail.com" hat eine eigene Domain.

Ich möchte die Verwendung von Methoden wie "Eine HTML-Datei in das Stammverzeichnis der Domäne einfügen" oder "Einen TXT-Datensatz festlegen" vermeiden, also habe ich mich gefragt, wie ich das machen soll.


11
Warum ist es für Sie ein Problem, eine Datei im Stammverzeichnis der Domain abzulegen? Google Webmaster Tools macht genau das. Außerdem müssen Sie nicht nach einer permanenten Datei fragen: Der Benutzer legt sie auf dem Server ab, Sie führen die Überprüfung durch und die Datei kann entfernt werden.
Arseni Mourzenko

9
Wenn Ihr Setup so falsch ist, dass Benutzer von außerhalb Ihre Hauptwebsite nicht erreichen können, sollten Sie sich über das Setup Gedanken machen und Ihren Sysadmins die Schuld geben, anstatt Ihre Website zu den Google Webmaster-Tools hinzuzufügen und Google die Schuld zu geben.
Arseni Mourzenko

1
Anstatt ihnen einen Weg zu geben, der funktioniert und den sie schon oft benutzt haben?
Arseni Mourzenko

6
@FezVrasta: Beachten Sie, dass Sie zwei Ziele haben: den Zugriff auf autorisierte Benutzer zuzulassen und den Zugriff auf nicht autorisierte Benutzer zu verweigern. Wenn Sie es für autorisierte Benutzer einfacher machen, wird es im Allgemeinen auch für nicht autorisierte Benutzer einfacher.
MSalters

4
Wenn Sie sich für DNS-Einträge entscheiden, sollten Sie wahrscheinlich TXT-Einträge verwenden, nicht MX.
Aaron Dufour

Antworten:


20

Datei im Stammverzeichnis

Verwerfen Sie nicht die Möglichkeit, eine Datei in einem Stammverzeichnis der Unternehmenswebsite abzulegen. Es funktioniert gut und ist weit verbreitet: Google Webmaster-Tools sind ein Beispiel für eine solche Technik. Dies macht diesen Ansatz attraktiv: Da die meisten Benutzer ihn bereits kennen, gehen sie nicht verloren. Im Gegensatz zum Ändern von MX-Datensätzen sind keine technischen Kenntnisse erforderlich (die meisten kleinen Unternehmen wissen nicht einmal, was ein MX-Datensatz ist).

Um eine Verschmutzung des Stammverzeichnisses zu vermeiden, sollten Sie nur bei Ihren Überprüfungen nach einer Datei fragen. Sobald Sie die Datei gefunden haben, kann der Benutzer sie möglicherweise entfernen.

Beachten Sie, dass Benutzer, die keine Unternehmenswebsite haben, nicht auf Ihren Service zugreifen können, aber ich glaube, dass es in diesem Fall nicht viele Kunden gibt.

Beachten Sie, dass:

Eine E-Mail senden

Das Senden einer E-Mail mit geheimem Link ist ziemlich problematisch. Sie können dies nicht mit firstname.lastname@example.com tun, da eine bestimmte Person möglicherweise keine Unternehmens-E-Mail-Adresse hat (dies ist häufig bei Startups der Fall, bei denen Personen ihre persönliche Adresse bevorzugen).

Die Verwendung von E-Mails wie admin@example.com funktioniert in einigen Fällen nicht.

  • Erstens gibt es immer Unternehmen, die nicht über postmaster@example.com, admin@example.com usw. verfügen, sondern über ihre speziellen "System" -E-Mail-Adressen, die Sie nicht auf die Whitelist gesetzt haben. Betrachten Sie speziell ausländische Unternehmen; beispielsweise in Frankreich, ist es nicht ungewöhnlich „Administrat zu verwenden eu r“ anstelle von „Administrator“, unter anderem für E-Mail - Adressen und Kontonamen.

  • Zweitens greifen viele kleine Unternehmen nicht auf ihre System-E-Mails zu und wissen nicht, wie sie darauf zugreifen sollen. Sie zahlen nicht einmal, dass sie missbrauch@example.com haben, und Hunderte dringender E-Mails warten auf ihre Antwort.

    Aus dem gleichen Grund können Sie sich nicht auf WHOIS-Datensätze für die E-Mail-Adresse stützen.


Was ist mit dem Senden von Validierungs-E-Mails an Benutzer wie "info @", "Administrator @" "postmaster @"?
Fez Vrasta

@FezVrasta - E-Mail-Adressen sind unglaublich einfach zu fälschen.
Oded

Ich meine "Ich sende eine E-Mail an info @ mit einem Bestätigungslink"
Fez Vrasta

6
@FezVrasta - Einer Domain sind möglicherweise keine E-Mail-Server zugeordnet. In diesem Fall kann nicht garantiert werden, dass eine info@(oder eine lokale Adresse) darauf definiert ist oder dass eine überwachte Sammeladresse vorhanden ist.
Oded

3
"Registrieren Sie ihre E-Mail-Domain, damit jeder Benutzer, der sich mit einer E-Mail der angegebenen Domain registriert, automatisch in die Unternehmensgruppe aufgenommen wird." Sorry, aber die Frage stellt klar , dass Sie können einen E - Mail - Server übernehmen. Diese Alternative setzt einen Webserver voraus, der nicht selbstverständlich ist.
MSalters

17

Die Frage ist in der Tat: „Was bedeutet es , besitzen eine E - Mail - Domain?“.

Der Besitz einer Website wird durch die Möglichkeit definiert, eine Datei im Stammverzeichnis abzulegen . Normale Benutzer können möglicherweise eine Datei einfügen, http://example.com/~user42/validation.txtjedoch nicht http://example.com/validation.txt.

Für E-Mails gibt es keine solche Hierarchie. Die postmasterAdresse ist jedoch etwas Besonderes. (Reserviert gemäß RFC2142 ) Sie können keine erstellen postmaster@gmail.com. Die Möglichkeit zum Erstellen und / oder Zugreifen postmaster@ist somit der Beweis, den Sie für den Besitz einer E-Mail-Domain benötigen.


1
Ist diese Besonderheit Teil einer Spezifikation, einer allgemeinen integrierten Komponente von E-Mail-Servern oder nur einer Konvention?
DougM

8
@DougM: Reserviert gemäß RFC 2142
MSalters

Vielen Dank, so wäre eine zusätzliche Option die Verwendung von Postmaster @, danke
Fez Vrasta

5
@ MSalters: Sie sollten diesen RFC in Ihre Antwort
einfügen

1
Für viele geht postmaster @ domain einfach nicht an die richtige Person oder an jemanden. Obwohl dies technisch gesehen eine Möglichkeit sein könnte, den Domainbesitz zu bestimmen, können Sie dies praktisch nicht verwenden.
James Ryan

10

In Ihren Kommentaren zu sehen, dass Sie möglicherweise nicht die Methode "Datei im Stammverzeichnis der Website" bevorzugen, ist eine Alternative, die möglicherweise funktioniert

Überprüfen Sie den Besitz mit WHOIS

Sie müssten beispielsweise die angeforderte Domain stackexchange.comund eine der in der WHOIS-Ausgabe für diese Domain aufgeführten E-Mails erhalten . (Beachten Sie, dass dies bei geheimen / privaten Registrierungen nicht funktioniert. Wenn es sich bei Ihrem Publikum jedoch um Unternehmen handelt, ist dies normalerweise kein Problem.)

Zum Beispiel:

WHOIS information for stackexchange.com:**
...
Domain Name: STACKEXCHANGE.COM 
Registrar WHOIS Server: whois.name.com 
Registrar URL: http://www.name.com 
Updated Date: 2014-05-14T16:49:02-06:00 

Registrant Name: Sysadmin Team 
...
Registrant Email: sysadmin-team@stackoverflow.com 
Admin Name: Sysadmin Team 
Admin Organization: Stack Exchange, Inc. 
...
Admin Email: sysadmin-team@stackoverflow.com 
Tech Name: Sysadmin Team 
...
Tech Email: sysadmin-team@stackoverflow.com 
Name Server: cf-dns02.stackexchange.com 
Name Server: cf-dns01.stackexchange.com 
DNSSEC: NotApplicable 

Sie können die whoisSuche sogar interaktiv durchführen und eine Dropdown-Liste der gültigen E-Mails bereitstellen (in diesem Fall nur sysadmin-team@stackoverflow.com). Sie würden dann einen Bestätigungscode / Link an die ausgewählte E-Mail senden.


Dies geschieht bei der Validierung bestimmter SSL-Zertifikate. Es ist wahrscheinlich kein automatischer Ansatz. Würde aber eine gute sekundäre Option machen.
Großmeister

@GrandmasterB Ich verstehe nicht, warum es nicht automatisiert werden konnte: whois suchen, die E-Mails abrufen, den Benutzer eine auswählen lassen, Validierungscode per E-Mail senden.
Digital Chris

Ich habe diesen Weg mit zwei meiner größten Kunden getestet und beide haben keine gültige E-Mail im whois (einer hat keine E-Mails, der andere hat die E-Mail des technischen Supports des Domain-Registranten ...
Fez Vrasta

1
Übrigens könnte dieser als Alternative hinzugefügt werden.
Fez Vrasta

6

Bitten Sie Ihre Benutzer, ihrer Domain einen TXT-Eintrag mit einem Verweis auf ihr Benutzerkonto auf Ihrer Site hinzuzufügen (Benutzername, ID oder ein beliebiges Token, das generiert wird, wenn der Benutzer aufgefordert wird, seine Domain zu überprüfen).

Ich erinnere mich, dass ich einen Datensatz hinzugefügt habe, der adn_verification=<my user name>in einem sozialen Netzwerk aufgerufen wurde , um meine Domain als verifiziert anzuzeigen, und ich fand das ziemlich ordentlich und erfordert nicht, dass die Domain auf einen Webserver verweist.


Ein großer Teil der Benutzer weiß nicht, was ein TXT-Datensatz ist, und diejenigen, die ihn kennen, sind nicht unbedingt über ausreichende Kenntnisse, um ihn festzulegen.
Arseni Mourzenko

1
@MainMa es ist immer noch eine gute Funktion zu implementieren.

1
+1. Nur weil Sie eine Domain haben, heißt das nicht, dass ein Webserver darauf läuft (obwohl in diesem speziellen Fall ein Unternehmen wahrscheinlich immer eine Website haben wird :)).
Matt

FWIW, dies ist der Ansatz, den Microsoft verwendet, wenn Sie eine benutzerdefinierte Domäne für Office 365 möchten.
Casey

2

So ergänzen Sie die bereits auf der Seite enthaltenen Vorschläge: Ich empfehle, dem Benutzer Optionen für die Validierung seiner Domain anzugeben. Die anderen Vorschläge auf der Seite sind alle perfekt verwendbar, aber manchmal befinden Sie sich in einer Situation, in der jemand, der seine Domain überprüfen möchte, nur eingeschränkten Zugriff auf seinen Server oder sogar seine Website hat. Beispielsweise kann Ihr Benutzer möglicherweise keine Domäneneinträge oder Dateien im Domänenstamm hinzufügen.

Mit Troy Hunt können Benutzer beispielsweise in seiner Datenbank mit gefährdeten Konten nach einer gesamten Domain suchen. Sie müssen dies jedoch zuerst überprüfen. Er gibt dem Benutzer die Wahl zwischen 4 Methoden:

  1. Per Email;
  2. durch ein Meta-Tag;
  3. Ein Datei-Upload;
  4. ein TXT-Datensatz.

In allen vier Fällen muss der Benutzer irgendwo einen bestimmten Wert eingeben, anhand dessen er überprüft.

Die Erklärung finden Sie unter http://www.troyhunt.com/2014/01/im-pwned-youre-pwned-were-all-pwned.html .


Danke, aber wie funktioniert die E-Mail-Bestätigung? Wie können sie mich daran hindern, eine Domain "gmail.com" oder "hotmail.com" zu validieren? (oder besser, ein unbekannter kostenloser Webmail-Dienst).
Fez Vrasta

Unabhängig davon, was Sie tun, besteht die Möglichkeit, dass der Webmail-Anbieter seine eigene Domain registriert, und Sie können nicht viel dagegen tun, es sei denn, Sie sagen ausdrücklich "Diese Adressen können NIEMALS validiert werden". Sie können nur verhindern, dass einige Domains vollständig validiert werden. Sie müssen nicht die Validierung von mailprovider.com verhindern, sondern nur verhindern, dass joe.shmuck@mailprovider.com es schafft, die gesamte mailprovider.com-Domain unter seinem Namen zu validieren.
Nzall

ok, aber ich kann nicht wissen, ob eine E-Mail Teil eines Unternehmens oder eines kostenlosen Webmail-Dienstes ist.
Fez Vrasta

1
Ich fürchte, Sie müssen dafür eine Whitelist führen. Eine andere Möglichkeit ist, dass jede Domain von einem Menschen genehmigt werden muss. Ich weiß, dass dies für neue Bewerber problematischer ist, aber eine Genehmigung muss nur einmal erfolgen. Danach wissen Sie, dass diese Domain genehmigt ist und kein kostenloser Webmail-Dienst.
Nzall

0

Können Sie es sich leisten, die Verwendung kostenloser Webmails für die Registrierung zu vermeiden?

Das ist , was Brium ist: Sie können nicht-Anmelde mit einem @gmail.com, @live.cometc E-Mail - Sie haben Ihre eigenen verwenden.

Und es gruppiert dich dadurch.

Wenn Sie auf Unternehmen abzielen, sollte dies ein guter Weg sein.

Sie könnten immer noch das Problem haben, zu wissen, wer der Chef ist (z. B. der Administrator dieser Gruppe), aber es ist möglicherweise nicht so wichtig - der Chef sollte wahrscheinlich über die Werkzeuge verfügen, um jedem Mitarbeiter zu sagen, dass er das Eigentum auf ihn übertragen soll, vorausgesetzt, jemand vor dem Chef registriert.


3
Wie würden Sie überprüfen, ob eine Domain eine kostenlose Webmail ist? Es gibt mindestens Hunderte von ihnen.
Svick

Ich habe das gleiche geschrieben :)
Fez Vrasta

Hier ist ein nicht so aktives Projekt, in dem einige aufgeführt sind: github.com/tarr11/Webmail-Domains . Ist es so wichtig, dass einer von ihnen ausrutscht? Reicht es nicht aus, die große Mehrheit der Nutzer (Google Mail, Live, Yahoo und dergleichen) abzudecken? Ich weiß nicht, was Ihre Software tut, aber - wird es für jemanden nützlich sein, diese Einschränkung zu vermeiden? Wäre die Software nützlich, wenn er alleine in einer Gruppe ist - oder ohne seine Kollegen?
mgarciaisaia

Dies würde einen grundlegenden Zugriff auf die auf meine Software hochgeladenen Informationen ermöglichen, sodass ein unerwünschter Benutzer in der falschen Gruppe Probleme verursachen könnte. Übrigens könnte es eine Lösung sein, da es ein Problem des Inhabers der Daten sein wird, wenn er eine Domain registriert, die nicht
Eigentum ist
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.