Come verificare l'identità del chiamante di un servizio Web

3

Ho un server che è composto da una pagina e un servizio web. Il servizio Web è destinato all'uso da parte di un'applicazione mobile Windows Phone che svilupperò personalmente.

Ora, la mia domanda è: come posso identificare che la richiesta di servizio web proviene dall'applicazione mobile che ho sviluppato? Nelle normali applicazioni Web, è possibile utilizzare una combinazione di certificati e firme digitali per garantire l'identità del chiamante.

Il problema principale è che Silverlight non consente allo sviluppatore di caricare i certificati installati sul telefono cellulare e ottenere la chiave privata per firmare i dati. Ho pensato di codificare la chiave privata nell'applicazione, tuttavia questo non è affatto sicuro in quanto l'applicazione può essere facilmente smontata e decodificata.

Che altro posso fare per assicurarmi che la richiesta di servizio web provenga dall'applicazione mobile che ho sviluppato piuttosto che da una normale applicazione Web?

    
posta Joe Borg 29.04.2013 - 17:38
fonte

1 risposta

2

Puoi aggiungere un API_key al tuo processo di autenticazione - qualcosa che un utente deve richiedere per prima cosa dal server. Questa richiesta iniziale può contenere informazioni specifiche del dispositivo, informazioni specifiche dell'applicazione e bit di identità utente. Il API_key generato può essere una funzione di hash crittografica di quei dati.

Un server memorizza tutto API_keys e collega una chiave a un utente (se lo desideri).

Solo le richieste con certificato valido e API_key sono autenticate. Puoi quindi consentire un solo accesso simultaneo con una API_key valida per mitigare la condivisione di API_key .

    
risposta data 29.04.2013 - 18:21
fonte

Leggi altre domande sui tag