126 messaggi dal 14 aprile 2006
salve, ho la necessità di fare una richiesta http ad un webservice, per l'autenticazione in un sito web, ma devo farla con https.

ho una situazione in cui esistono diversi software e siti web, in diverse sedi, che devono autenticarsi su questo webservice in https.

e il webservice è sui server di un sede nazionale. vorrei che questa sede rilasci un certificato SSL a chi richiede un account di accesso, in modo che ogni utente che ha un account si installa il certificato e con user e pass accede all'area riservata.

In caso qualcuno rubi la user e pass non ha il certificato e nn può cmq accedere al webservice.

quindi vorrei sapere come si fa a creare e rilasciare un certificato ssl.

come faccio a verificare che l'utente che naviga il sito e richiede il login, per prima cosa deve avere installato il certificto poi gli viene chiesto user e pass. se l'utente non ha certificato gli viene negata la possibilità di inserire user e pass con un messaggio di errore.

se avete anche link info articoli va bene.. grazie in anticipo
C'è un po' di confusione in quello che vuoi fare.
Per prima cosa è un web service o un normale applicativo web? Se un web service non capisco la parte interattiva che hai descritto:
"come faccio a verificare che l'utente che naviga il sito e richiede il login, per prima cosa deve avere installato il certificto poi gli viene chiesto user e pass. se l'utente non ha certificato gli viene negata la possibilità di inserire user e pass con un messaggio di errore"

Inoltre, un certificato lo puoi usare per ssl, ma per criptare il canale e poi ti affidi all'autenticazione username e password. In questo caso puoi obbligare via iis ad usare per forza https.

Oppure puoi usare il certificato per autenticarti con il servizio mantenendo la comunicazione in chiaro, ma non puoi anche usare username e password (a meno che metti un pin sul certificato). In questo però i webservice asmx non vanno bene, devi usare WCF.

Ciao

Il mio blog
Homepage
176 messaggi dal 04 giugno 2007
Contributi | Blog
Da quello che capisco dalla tua descrizione stai cercando di creare un'infrastruttura in cui un principal si possa collegare al server solo tramite https e solo se sul client e' installato un certificato rilasciato da una CA che e' trusted dal server.

Per fare questo, hai bisogno di due componenti:

1) il certificato sul server (che puo' essere anche rilasciato dalla tua CA, a questo punto dato che controllerai il profilo dei certificate store dei client autorizzati)

2) i certificati sui client.

Per ottenere il tutto, puoi installare sul server una CA (certification authority). In pratica una fabbrica di certificati. E' un componente di Windows Server 2000 o superiore.

Fatto questo,
1) esportera il root certificate della CA e installalo tra i trusted sources di ogni cliente autorizzato (admin privilege required)
2) crea un SSL certificate e installalo sul web server (che puo' essere o no la stessa macchina fisica)
3) emetti un certificato per autenticazione - uno o uno per ogni client, dipende quanto devi essere paranoico -
Il modo piu' semplice per fare il provisioning di un cert diverso per ogni client e fare un enrolment da ogni client quando e' connesso direttamente alla rete interna, per esempio via VPN

Fatto questo, puoi configurare IIS cosi' che il server accetti connessioni solo da client in possesso di un certificato emesso dalla CA interna.


Ho cercato di essere preciso ma conciso, per cui alla fine puo' sembrare piu' complicato di quanto sia in realta'.
Ogni buon libro o articolo sulle PKI dovrebbe darti la teoria che ci sta dietro e farti capire i perche'. In realta' el molto meno complicato di quanto sembra.

Saluti

--Alessandro
Personalmente non mi piace criptare e autenticare a livello di trasporto (in questo caso IIS), ma preferisco a livello di messaggio. Comunque de gustibus

Ciao

Il mio blog
Homepage
126 messaggi dal 14 aprile 2006
AH Fantastico hai compreso appieno la situzione e sei stato chiarissimo.

mi sono anche chiarito molta della confusione sull'argomento. ora mi studio un po' di materiale in riferimento a i tuoi utilissimi suggerimento GRAZIE!
176 messaggi dal 04 giugno 2007
Contributi | Blog
ispirato da questo post, ho appena inaugurato il mio blog con una dissertazione su https e le PKI.
126 messaggi dal 14 aprile 2006
allora se ho capito bene, se installo il certificato sul server e il certificato su ogni client, e configuro iis per accettare connessioni solo da client con certificato, si può accedere solo se uso un client con certificato installato altrimenti esce un errore.


diciamo che invece di installare un certificato sul client, lo dovrei installare il certificato nell'applicativo che fa richiesta, in modo che solo dal sito con certificato sia possibile accedere al servizio.

quindi i client non hanno certificato installato

il server ha certificato installato

i client posso accedere ai servizi del server passando solo da siti certificati.

la mia idea era che quando scrivo il codice di login oltre ad inviare user e pass invio al server anche i dati del certificato (inserisco in qualche modo il certificato nel codice di log-in) non so magari inviando assieme a user e pass la chiave pubblica.

diciamo che così se qualcuno vuola realizzare un sito che usa il mio web service lo può fare solo se io lo autorizzo consegnandoli la chiave pubblica o il certificato.

si può fare una cosa del genere?
126 messaggi dal 14 aprile 2006
AlessC-MSFT il tuo post è molto interessante.. grazie delle dritte.. più che mi avventuro in questi argomenti e più che mi affascinano..

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.