Italian community of Lazarus and Free Pascal

Programmazione => Generale => Topic aperto da: bonmario - Novembre 09, 2023, 01:27:44 pm

Titolo: THTTPSend e pagina web con utente e password
Inserito da: bonmario - Novembre 09, 2023, 01:27:44 pm
Ciao a tutti,
da anni uso la classe THTTPSend di Synapse per scaricare una pagina web o un file.

Ora avrei bisogno di scaricare una pagina web in locale, per poi analizzarla, come già fatto in passato.
Il problema, stavolta, è che l'url di partenza è un url di SharePoint, e quindi prima di poter scaricare la pagina, mi dovrei autenticare con utente e password.

Avete idea di come si fa?

Grazie, Mario
Titolo: Re:THTTPSend e pagina web con utente e password
Inserito da: DragoRosso - Novembre 09, 2023, 02:18:25 pm
Se basta username e password dovresti poterle inserire nel "pacchetto" di invio tramite le proprietà del pacchetto stesso (dovrebbero esserci UserName e Password che vengono poi inviate in base64).

In alternativa potresti provare ad usare il vecchissimo trucco ed inserire un indirizzo tipo questo (invece del classico):

http://nome:password@URL/

... altrimenti devi prima autenticarti con le funzioni di Synapse (che però non conosco).

Ciao
Titolo: Re:THTTPSend e pagina web con utente e password
Inserito da: nomorelogic - Novembre 09, 2023, 04:03:41 pm
ciao bonmario
ti consiglierei di provare a risolvere prima con curl
una volta identificata la sintassi di curl, adattare la cosa ai vari client http è più facile

ho trovato questo link
vedi se ti può essere utile
https://sharepoint.stackexchange.com/questions/268112/connect-to-sharepoint-online-rest-api-using-curl
Titolo: Re:THTTPSend e pagina web con utente e password
Inserito da: bonmario - Novembre 09, 2023, 05:33:37 pm
@DragoRosso: purtroppo il tuo trucco non mi funziona.

@nomorelogic: partendo dal link che mi hai consigliato, ho provato il comando seguente:
Codice: [Seleziona]
curl -X GET --ntlm -u <email>:<password>  https://mycompany.sharepoint.com/<URL> 

La prima volta l'ho lanciato volutamente con la password sbagliata, e mi ha restituito l'errore 403
La seconda volta ho messo la password corretta, ma così facendo, non succede niente: non mi da errori, e mi torna al prompt di DOS senza fare niente

P.S. Non avevo mai usato il comando "curl", quindi non so come interpretare questo risultato. Se non ho capito male, avrebbe dovuto scaricarmi la pagina, giusto?

Grazie, Mario
Titolo: Re:THTTPSend e pagina web con utente e password
Inserito da: bonmario - Novembre 09, 2023, 05:44:42 pm
Rilanciando aggiungendo il parametro "-v", mi restituisce più informazioni.

Forse il problema è questo?
Codice: [Seleziona]
< HTTP/1.1 401 Unauthorized

Grazie, Mario
Titolo: Re:THTTPSend e pagina web con utente e password
Inserito da: DragoRosso - Novembre 09, 2023, 07:54:16 pm
Il link proposto da @nomorelogic propone le credenziali sotto forma di API, ed è proprio ciò che mi aspetterei da servizi come SharePoint.

Devi seguire passo passo ciò che dice il link, con le tipiche righe di comando criptiche dei linuxiani (che ha un pò di ... marziani ...  ;) ).

Dovresti poter effettuare ciò anche a codice.

Ciao
Titolo: Re:THTTPSend e pagina web con utente e password
Inserito da: nomorelogic - Novembre 10, 2023, 06:50:31 am
Ciao
Leggendo in fondo al link, c'è n'è un altro
Here's slightly different solution

Da quel che leggo sembra che per usare le api bisogna registrare l'app ed ottenere in paio di id.

Poi lo script Linux (dove i curli sono 2) che mette insieme il tutto e fa una richiesta.

Probabilmente devi seguire il secondo link (che pare più articolato ma forse è l'unico modo).

Titolo: Re:THTTPSend e pagina web con utente e password
Inserito da: DragoRosso - Novembre 10, 2023, 09:09:18 am
Ciao
Leggendo in fondo al link, c'è n'è un altro
Here's slightly different solution
Da quel che leggo sembra che per usare le api bisogna registrare l'app ed ottenere in paio di id.
Poi lo script Linux (dove i curli sono 2) che mette insieme il tutto e fa una richiesta.
Probabilmente devi seguire il secondo link (che pare più articolato ma forse è l'unico modo).

Avere l'ID per l'APP è necessario, ed è ciò che il nuovo modo di accesso ai servizi vuole. Tieni presente che un singolo ID (anche se non è consigliato, e addirittura vietato per qualche servizio)  può essere usato da più APP. Occhio ad usarle in contemporanea, stanno diventando stringenti anche controlli di questo tipo, legati alla sicurezza.

OAUTH2, ID per APP, critografia, doppia identificazione, oltre alle immancabili password e ora anche ai nuovi PID Microsoft ..... ma quanto era bello una volta ai tempi delle sole username e password ?

Buon lavoro
Titolo: Re:THTTPSend e pagina web con utente e password
Inserito da: quack - Novembre 10, 2023, 12:05:33 pm
Se non ho capito male anche Microsoft permette l'accesso alle app meno sicure, basta abilitare la verifica in due passaggi e creare la password dedicata all'app che si vuole abilitare.

Non so se è una soluzione applicabile al tuo caso.
Titolo: Re:THTTPSend e pagina web con utente e password
Inserito da: bonmario - Novembre 10, 2023, 01:12:41 pm
Grazie a tutti per le risposte.
Provo a vedere cosa riesco a tiare fuori !!

Grazie, Mario