Autenticazione sul mio sito web utilizzando altre credenziali

1

Supponiamo che ci siano 2 siti web: example.com Non possiedo e example2.com Possiedo. Voglio estendere la funzionalità di example.com in qualche modo.

example.com non ha alcuna API. Voglio che gli utenti di example.com possano accedere a example2.com usando i loro login e password di example.com . Tuttavia, dal momento che example.com non ha API, non è facile da fare, forse è addirittura impossibile.

Senza dubbio nessuno accetterebbe di inserire le proprie credenziali di example.com a example2.com a causa di molte ovvie ragioni.

Quindi, esiste un modo per autenticare gli utenti di example.com in example2.com (o altrove) utilizzando le loro credenziali originali?

    
posta Oskar K. 05.10.2013 - 15:33
fonte

2 risposte

2

Per quanto ne so, hai bisogno di una (o più) delle seguenti cose per fare il single sign-on:

  • Un dominio condiviso a livello di root, ad es. tutti i siti sono sottodomini di example.com. Possono condividere un cookie in questo modo, presupponendo che entrambi i siti comprendano il formato.

  • Un database di credenziali condiviso (SQL, LDAP, ecc.) con entrambi i siti che sanno come convalidare le credenziali (ad esempio il tipo di hashing utilizzato nelle password).

  • Un sistema di fiducia come WS-Federation supportato da tutti i siti partecipanti.

  • Un'API di autenticazione supportata da almeno uno dei siti partecipanti (come OAuth ).

Dalla tua descrizione piuttosto vaga, sembra che tu manchi di quanto sopra, quindi la risposta è no, non puoi farlo - non senza ingannare gli utenti in modo essenzialmente criminale.

    
risposta data 05.10.2013 - 17:56
fonte
1

In questo caso, devi chiedere al proprietario di example.com di condividere con te il suo metodo di autenticazione con te (se è un tuo amico o un partner, altrimenti è molto improbabile che accetti di condividere qualcosa di così sensibile con voi).

Supponendo che il proprietario di example.com utilizzi un database MySQL con una tabella specifica per utenti e password e che è disposto ad aiutarti con questo, ecco un esempio di cosa fare:

  • ha bisogno di creare per te un utente MySQL remoto con accesso in lettura alla tabella utenti da example2.com (ad esempio auth%[ip.of.example2.com] );
  • ha anche bisogno di consentire la connessione remota al suo database MySQL (firewall -preferibilmente con ip filtering- e my.cnf);
  • quindi, deve fornirti il modo in cui memorizza la password (algoritmo hash, metodo salt ...);
  • a questo punto, quando un utente tenta di accedere a example2.com , devi solo creare una connessione MySQL al suo server e controllare le credenziali ...

Anche se tutto ciò è veramente discutibile, spero che questo possa aiutare un po '.

    
risposta data 05.10.2013 - 19:36
fonte

Leggi altre domande sui tag