227 messaggi dal 08 marzo 2012
flaviovb ha scritto:
È una domanda?


Sì era per spiegare meglio lo scenario. Mi sembra di capire che non esiste una soluzione semplice.
Banalmente mi viene anche da pensare che se il WS venisse richiamato da un javascript allora l'IP ottenuto non sarebbe neanche quello del server ma quello del client (browser) che effettua la richiesta.
349 messaggi dal 13 novembre 2009
Non è proprio così. L’indirizzo ip è quello del getaway ovvero di come mi presento al web. Se la navigazione avviene da mobile ad esempio è quello del provider della sim o del Wi-Fi a cui sono connesso.
Quindi in particolare e mi ripeto come riconosco che è effettivamente la mia app mobile che sta chiamando il mio web service?
227 messaggi dal 08 marzo 2012
flaviovb ha scritto:
Non è proprio così. L’indirizzo ip è quello del getaway ovvero di come mi presento al web. Se la navigazione avviene da mobile ad esempio è quello del provider della sim o del Wi-Fi a cui sono connesso.
Quindi in particolare e mi ripeto come riconosco che è effettivamente la mia app mobile che sta chiamando il mio web service?


Esatto, sono d'accordo. Con indirizzo IP del browser intendo proprio quello con il quale mi presento su internet tramite il provider.
Credo che non ci sia un modo di riconoscere chi sta chiamando.
699 messaggi dal 13 novembre 2008
Contributi
ciao, dalla domanda iniziale


ho un'applicazione web in Asp.NET Core che mette a disposizione un set di servizi.
I servizi per autenticarsi accetto un token ma vorrei inserire anche un blocco del dominio chiamante.

Ovvero accettare le chiamate solo il chiamante arriva da uno specifico dominio internet, altrimenti rifiutare.


e poi


la mia architettura è basata su .NET Core, è una web application o meglio un set di servizi esposti tramite WebApi.
Devo poter configurare a database ogni dominio quali controller e quali metodi più chiamare, diversamente devo rifiutare la chiamata come non autorizzata


deduco, correggimi se sbaglio, che esponi una webApi cui ci si autentica con token, chiamata da domini specifici che conosci, es.

webapi.com/api/servizi

chiamata da

dominio1.com
dominio2.com
dominio3.com


oppure c'è altro, cioè ad es. un'app mobile che fa richieste all'api?
349 messaggi dal 13 novembre 2009
Si c’è anche una app mobile. Ma il fatto che si rilasci un token dopo autenticazione è ininfluente.
Essendo l’utente in possesso delle grant come faccio a verificare che la chiamata avvenga solo con certi strumenti?
Ad esempio Prendi postman come faccio a sapere che non sia postman a chiamare il mio servizio. Piuttosto quindi come faccio a sapere che non sia un sito web di terzi che chiami il mio servizio se le grant sono giusti e a quelle ho rilasciato un token?
Il concetto è che il mio web service deve essere utilizzabile solo dal mio sito a dalla app mobile pubblicata
227 messaggi dal 08 marzo 2012
flaviovb ha scritto:
Si c’è anche una app mobile. Ma il fatto che si rilasci un token dopo autenticazione è ininfluente.
Essendo l’utente in possesso delle grant come faccio a verificare che la chiamata avvenga solo con certi strumenti?
Ad esempio Prendi postman come faccio a sapere che non sia postman a chiamare il mio servizio. Piuttosto quindi come faccio a sapere che non sia un sito web di terzi che chiami il mio servizio se le grant sono giusti e a quelle ho rilasciato un token?
Il concetto è che il mio web service deve essere utilizzabile solo dal mio sito a dalla app mobile pubblicata


Esatto, penso che purtroppo non sia fattibile.
Speravo, stupidamente, che il web server conoscesse implicitamente qual è il dominio chiamante semplicemente ispezionando l'http header...invece ahimè così non è.

Non saprei onestamente...se vi viene in mente qualcosa ben venga!
699 messaggi dal 13 novembre 2008
Contributi
dai normali http header posso solo cercare dei dati raggruppabili ma nessuna certezza sull'univocità; provo a rigirare il problema, se qualcuno si connette alla mia api privata che rilascia dati è perché ottiene un token, escludendo il furto quel token lo ottiene da un mio qualche servizio cui può accedere quando paga l'accesso all'api dati, a meno che non pubblico ufficialmente i metodi che utilizzo per creare il token, ma allora qui sto sbagliando io.

A questo punto posso fornire un codice univoco a chi ha comprato il servizio e dirgli di allegarlo alle richieste verso la mia api dati come header specifico; in questo modo almeno riconosco il cliente. A livello commerciale venderò dei pacchetti di richieste, supponiamo 200r/gg, che il mio cliente utilizzi postman o altro poco importa, ha comprato un servizio, se il collegamento all'api dati avviene tramite un suo sito web però posso accorgermene dall'Origin, X-Forwarded, ecc. corretto?

Se poi il mio scopo è fornire dati diversi a seconda che sia un'app o un sito, mi sembra fosse un altro problema indicato nel thread, con quanto sopra dovrei già essere in grado di capire --> sitoWeb cliente.com/altro; l'alternativa è mettere su due servizi api diversi e lasciare all'utilizzatore la decisione su quale utilizzare.
Modificato da teo prome il 24 aprile 2020 09:12 -

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.