Come convalidare un determinato dominio è di proprietà dell'utente?


10

Sto scrivendo un software che verrà utilizzato principalmente dalle aziende.

Ho quindi avuto l'idea di dare alle aziende un modo per registrare il loro dominio e-mail in modo tale che ogni utente che si registra con una e-mail del dominio dato venga automaticamente inserito nel gruppo aziendale.

So che Slack fa qualcosa del genere e funziona, ma ci sono alcuni problemi ... per esempio ho appena registrato "live.it" (la versione italiana di live.com di Microsoft).

Non posso solo supporre che se un utente ha convalidato un'email con un dominio specifico, allora è sicuro mettere tutti gli utenti con lo stesso domain_mail nello stesso gruppo.

Ad esempio, se mi registro con me@gmail.com non voglio lasciare che l'utente registri "gmail.com" abbia un proprio dominio.

Vorrei evitare l'uso di metodi come "mettere un file html nella radice del dominio" o "impostare un record TXT", quindi mi chiedevo come avrei dovuto.


11
Perché chiedere di inserire un file nella radice del dominio è un problema per te? Strumenti per i Webmaster di Google fa esattamente questo. Inoltre, non è necessario richiedere un file permanente: l'utente lo mette sul server, si esegue il controllo e il file può essere rimosso.
Arseni Mourzenko,

9
Se la tua configurazione è così sbagliata che gli utenti esterni non possono raggiungere il tuo sito Web principale, dovresti preoccuparti della configurazione e incolpare i tuoi amministratori di sistema, invece di preoccuparti aggiungendo il tuo sito a Strumenti per i Webmaster di Google e incolpando Google.
Arseni Mourzenko,

1
Invece di dare loro un modo che funziona e che hanno già usato molte volte prima?
Arseni Mourzenko,

6
@FezVrasta: tieni presente che hai due obiettivi: consentire l'accesso agli utenti autorizzati e negare l'accesso agli utenti non autorizzati. Renderlo più semplice per gli utenti autorizzati, generalmente lo rende anche più semplice per gli utenti non autorizzati.
Salterio

4
Nel caso in cui segui il percorso del record DNS, probabilmente dovresti utilizzare i record TXT, non MX.
Aaron Dufour,

Risposte:


20

File nella directory principale

Non scartare la possibilità di inserire un file in una directory principale del sito Web aziendale. Funziona bene ed è ampiamente utilizzato: Strumenti per i Webmaster di Google è un esempio di tale tecnica. Questo rende attraente questo approccio: poiché la maggior parte degli utenti lo conosce già, non si perderanno. Inoltre, non richiede alcuna conoscenza tecnica, a differenza della modifica dei record MX (la maggior parte delle piccole aziende non saprà nemmeno cosa sia un record MX).

Per evitare di inquinare la directory principale, dovresti chiedere di mettere un file solo quando esegui i controlli. Una volta trovato il file, l'utente potrebbe essere in grado di rimuoverlo.

Tieni presente che gli utenti che non dispongono di un sito Web aziendale non potranno accedere al tuo servizio, ma in questo caso non credo che ci siano molti clienti.

Nota che:

  • È necessario controllare sia http://example.com/file che http://www.example.com/file , poiché alcuni siti Web sono configurati in modo da non supportare http://example.com/ form.

  • Puoi supportare anche HTTPS, dato che non penso che ci siano molte aziende senza reindirizzamento da HTTP a HTTPS.

  • Non dovresti accettare altri domini di terzo livello come http://mysite.example.com/ , perché ciò renderà possibile per chi ha acquistato domini di terzo livello affermare di essere il proprietario del dominio di secondo livello esempio.com .

Invio di un'e-mail

L'invio di un'e-mail con link segreto è piuttosto problematico. Non puoi farlo su firstname.lastname@example.com, perché una determinata persona potrebbe non avere un indirizzo e-mail aziendale (questo è spesso il caso delle startup, dove le persone preferiscono usare il loro indirizzo personale).

L'uso di e-mail come admin@example.com non funzionerà in alcuni casi.

  • Innanzitutto, ci sono sempre aziende che non hanno postmaster@example.com, admin@example.com ecc., Ma che hanno i loro particolari indirizzi di posta elettronica "di sistema" che non sono stati autorizzati. Considerare società specificamente straniere; ad esempio, in Francia, non è insolito utilizzare "Administrat eu r" invece di "Administrator", anche per indirizzi e-mail e nomi di account.

  • In secondo luogo, molte piccole aziende non accedono e non sanno come accedere alle e-mail di sistema. Pagano nemmeno sapendo di avere abuse@example.com con centinaia di e-mail urgenti in attesa di risposta.

    Per lo stesso motivo, non puoi basarti sui record WHOIS per l'indirizzo e-mail.


Che dire di inviare e-mail di convalida agli utenti come "info @", "amministratore @" "postmaster @"?
Fez Vrasta,

@FezVrasta: gli indirizzi email sono incredibilmente facili da falsificare.
Oded,

Intendo "Mando un'email a info @ con un link di conferma al suo interno"
Fez Vrasta,

6
@FezVrasta: un dominio potrebbe non avere alcun server di posta elettronica ad esso associato e, in tal caso, non vi è alcuna garanzia che un info@(o qualsiasi indirizzo locale) verrà definito su di esso o che avrà un indirizzo catch-all monitorato.
Oded,

3
msgstr "registra il loro dominio di posta elettronica in modo tale che ogni utente che si registra con un messaggio di posta elettronica di un determinato dominio venga automaticamente inserito nel gruppo di società". Siamo spiacenti, ma la domanda chiarisce che puoi assumere un server di posta elettronica. Questa alternativa presuppone un server Web, che non è un dato di fatto.
Salterio

17

La domanda è in effetti: "Cosa significa possedere un dominio e-mail?".

Possedere un sito Web è definito dalla possibilità di mettere un file nella radice . Gli utenti ordinari possono essere in grado di mettere un file http://example.com/~user42/validation.txtma non su http://example.com/validation.txt.

Per la posta elettronica, non esiste una gerarchia del genere. Tuttavia, l' postmasterindirizzo è speciale. (Riservato per RFC2142 ) Non sarai in grado di creare postmaster@gmail.com. Pertanto, la capacità di creare e / o accedere postmaster@è la prova necessaria per la proprietà del dominio e-mail.


1
Questa particolarità fa parte di una specifica, un componente integrato comune dei server di posta elettronica o solo una convenzione?
DougM,

8
@DougM: riservato per RFC 2142
MSalters

Grazie, quindi
un'opzione

5
@MSalters: dovresti inserire quell'RFC nella tua risposta
Bergi,

1
Per molti postmaster @ domain semplicemente non vanno alla persona giusta o a nessuno. Anche se tecnicamente potrebbe essere un modo per determinare la proprietà del dominio, non puoi praticamente usarlo.
JamesRyan,

10

Vedendo nei tuoi commenti che potresti non preferire utilizzare il metodo file-in-root-of-website, un'alternativa che potrebbe funzionare è quella di

Verifica la proprietà utilizzando WHOIS

Dovresti ottenere il dominio richiesto (ad esempio stackexchange.com) e una delle e-mail elencate nell'output WHOIS per quel dominio . (Nota che questo non funzionerà per le registrazioni segrete / private, ma se il tuo pubblico è corporativo di solito non è un problema)

Per esempio:

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 

Potresti persino effettuare la whoisricerca in modo interattivo e fornire un elenco a discesa delle e-mail valide (in questo caso, solo sysadmin-team@stackoverflow.com). Invieresti quindi un codice / link di verifica all'email scelta.


Questo è ciò che viene fatto durante la convalida di determinati certificati SSL. Probabilmente non è un approccio automatico. Ma farebbe una buona opzione secondaria.
GrandmasterB,

@GrandmasterB Non vedo perché non possa essere automatizzato: whois lookup, grep le e-mail, consenti all'utente di sceglierne una, inviare un codice di convalida via e-mail.
Digital Chris,

Ho provato in questo modo con due dei miei più grandi clienti ed entrambi non hanno un indirizzo email valido in whois (uno non ha email, l'altro ha l'e-mail del supporto tecnico del registrante di dominio ...
Fez Vrasta

1
A proposito, questo potrebbe essere aggiunto come alternativa.
Fez Vrasta,

6

Chiedi ai tuoi utenti di aggiungere un record TXT al loro dominio con un riferimento al loro account utente sul tuo sito (nome utente, ID o token arbitrario generato quando chiedi all'utente di verificare il loro dominio).

Ricordo di aver aggiunto un record chiamato adn_verification=<my user name>su un social network per visualizzare il mio dominio come verificato, e ho pensato che fosse abbastanza pulito e non richiedesse che il dominio puntasse a un server web.


Gran parte degli utenti non saprà quale record TXT è, e quelli che lo sanno non saranno necessariamente sufficientemente informati per impostarlo.
Arseni Mourzenko,

1
@MainMa è ancora una buona funzionalità da implementare.

1
+1. Solo perché hai un dominio, non significa che hai un web server in esecuzione su di esso (anche se in questo caso particolare, un'azienda avrà probabilmente sempre un sito Web :)).
Matt,

FWIW, questo è l'approccio utilizzato da Microsoft se si desidera un dominio personalizzato per Office 365.
Casey,

2

Per aggiungere ai suggerimenti già presenti nella pagina: ti consiglio di dare all'utente le opzioni su come convalida il suo dominio. Gli altri suggerimenti sulla pagina sono tutti perfettamente utilizzabili, ma a volte ti trovi nella situazione in cui qualcuno che desidera verificare il proprio dominio ha un accesso limitato al proprio server o addirittura al proprio sito Web. Ad esempio, l'utente potrebbe non essere in grado di aggiungere record o file di dominio nella radice del dominio.

Ad esempio, Troy Hunt consente agli utenti di cercare un intero dominio nel suo database di account compromessi, ma è necessario prima verificarlo. Dà all'utente la scelta di 4 metodi:

  1. Via Posta Elettronica;
  2. attraverso un meta tag;
  3. Un caricamento di file;
  4. un record TXT.

In tutti e 4 questi casi, richiede all'utente di immettere un valore specifico in un punto da verificare.

La spiegazione è disponibile all'indirizzo http://www.troyhunt.com/2014/01/im-pwned-youre-pwned-were-all-pwned.html .


grazie ma come funziona la verifica dell'email? Come possono impedirmi di convalidare un dominio "gmail.com" o "hotmail.com"? (o meglio, qualche servizio di webmail gratuito sconosciuto).
Fez Vrasta,

Indipendentemente da ciò che fai, a meno che tu non dica esplicitamente "che questi indirizzi non possono MAI essere convalidati", esiste sempre la possibilità che il provider di webmail registri il proprio dominio e non c'è molto che tu possa davvero fare al riguardo. L'unica cosa che puoi fare è impedire che alcuni domini vengano completamente convalidati. Non è necessario impedire la convalida di mailprovider.com, è sufficiente impedire che joe.shmuck@mailprovider.com riesca a convalidare l'intero dominio mailprovider.com a suo nome.
Nzall,

ok ma non ho modo di sapere se un'e-mail fa parte di un'azienda o di un servizio di webmail gratuito.
Fez Vrasta,

1
Dovrai mantenere una lista bianca per quello, temo. un'altra opzione è che ogni dominio deve essere approvato da un essere umano. So che questo rende più problematico per i nuovi candidati, ma un'approvazione deve avvenire solo una volta. Successivamente, sai che quel dominio è stato approvato e non un servizio di webmail gratuito.
Nzall,

0

Potresti permetterti di evitare l'uso di webmail gratuite per la registrazione?

Questo è ciò che Brium fa: non si può firmare-in con @gmail.com, @live.comecc e-mail - è necessario utilizzare il proprio.

E ti raggruppa per questo.

Se stai prendendo di mira le aziende, dovrebbe essere una buona strada da percorrere.

Potresti ancora avere il problema di sapere chi è il capo (diciamo, l'amministratore di quel gruppo), ma potrebbe non essere così importante - il capo dovrebbe probabilmente avere gli strumenti per dire a qualsiasi dipendente di trasferire la proprietà a lui, a condizione che qualcuno registrato davanti al capo.


3
Come verifichi che un dominio è una webmail gratuita? Ce ne sono almeno centinaia.
svick,

Stavo scrivendo la stessa cosa :)
Fez Vrasta,

Ecco un progetto non così attivo che ne elenca alcuni: github.com/tarr11/Webmail-Domains . E ' che critica avendo nessuno di loro scivolare? Non è sufficiente a coprire la stragrande maggioranza degli utenti (Gmail, Live, Yahoo e simili)? Non so che cosa fa il tuo software, ma - sarà utile per qualcuno provare a evitare questa limitazione? Il software sarebbe utile se fosse solo in un gruppo - o senza i suoi colleghi?
Margarciaisaia,

Consentirebbe un accesso di base alle informazioni caricate sul mio software, quindi avere un utente indesiderato nel gruppo sbagliato potrebbe causare problemi. A proposito, potrebbe essere una soluzione perché sarà un problema per il proprietario dei dati se registra un dominio non proprio ... Penso
Fez Vrasta,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.