Qual è il modo migliore per scambiare file tramite un servizio web autenticato?

1

Non sono tanto alla ricerca di codice (anche se mi piacerebbe collegarmi ai tutorial sarebbe apprezzato) mentre sto provando a farmi un'idea di cosa fanno le persone che sanno. Il nostro sistema è scritto in PHP.

Come parte di un sistema di cartelle cliniche elettroniche, devo essere in grado di saldamente scambiare documenti (Word, PDF, ecc.) con i partner commerciali. Devo anche trasmettere le informazioni identificative con i documenti (nome del paziente, numero di cartella clinica, ecc.)

Se io scambio di file con Google in un servizio web, mi viene data una serie di informazioni su una varietà di metodi. Ma quello che non è facile vedere è quanti anni hanno le informazioni, quanto comunemente i metodi sono usati, e se c'è qualcosa là fuori che se solo sapessi cosa stavo cercando, mi avrebbe fatto saltare le calze.

TLDR - Se avessi intenzione di utilizzare un servizio Web per scambiare file e il tuo sistema fosse scritto in PHP, come faresti a farlo e perché?

    
posta Amy Anuszewski 25.08.2011 - 21:48
fonte

2 risposte

2

Utilizza https e REST. È sicuro, testato e funziona su qualsiasi piattaforma. Abbiamo due formati che utilizzano un'estensione di file .xml o .json per un facile utilizzo, quando si esegue una richiesta POST o GET. abbiamo intestazioni http che identificano se POST è una richiesta PUT, POST o DELETE effettiva poiché non tutti i client / server / firewall consentono / riconoscono PUT e / o DELETE.

Un trucco con l'utilizzo di REST è la definizione di un'API. La tendenza naturale è quella di utilizzare uno stile uri che riproduca lo stile RPC familiare. Devi lavorare all'indietro, e definire il tuo uri con l'oggetto (i) che viene messo in atto per primo, e usare i verbi (GET, PUT, POST, DELETE) per le tue operazioni.

SOAP in confronto ha più funzioni, ma circa il 95% (una misura che ho tirato fuori aria) delle funzionalità non viene mai usato. Complifica la sua comprensione e aggiunge un sovraccarico allo sviluppo. Ti consiglio di usarlo solo se REST non ti ha fornito tutto ciò di cui hai bisogno.

    
risposta data 25.08.2011 - 22:08
fonte
1

Sebbene sia possibile proteggere qualsiasi servizio, SOAP è davvero l'unica specifica che in realtà ha un modello di sicurezza integrato, configurabile e integrato, ovvero WS-Security. I servizi garantiti in questo modo non saranno facili da utilizzare come servizi REST, ma il supporto è disponibile per tutte le principali piattaforme, tra cui .NET, Java e C ++. Il supporto PHP è disponibile anche tramite Apache Rampart / C .

Per quanto riguarda gli allegati, hai due opzioni: la prima e l'opzione preferita è MTOM . Alcune ricerche su Google fanno apparire alcune librerie / framework per PHP che apparentemente lo supportano, ma non posso parlare per esperienza diretta. L'altra opzione, se non riesci a far funzionare MTOM, è la codifica Base64 della vecchia scuola. È rozzo, ma fa il lavoro.

Ovviamente, WS-Security funziona su SSL se lo si desidera, sebbene SSL non sia effettivamente necessario perché la specifica fornisce la crittografia a livello di messaggio. La maggior parte delle persone che usano SSL per i servizi SOAP lo fa semplicemente perché è più facile da configurare e amministrare rispetto all'autorizzazione reciproca (ad esempio), che di solito richiede una PKI.

Lo svantaggio di SOAP e WS-Security è che è molto difficile da usare in linguaggi / piattaforme che non hanno il supporto integrato per esso (ad es. JavaScript). Ovviamente devi sapere chi saranno i tuoi clienti.

    
risposta data 26.08.2011 - 01:59
fonte

Leggi altre domande sui tag