Come connettersi all'API con l'autenticazione di Windows/NTLM/LDAP?Ciao utenti jmp,
Provo a connettermi ai nostri servizi interni/api in JMP/JSL (JMP14) con il metodo di richiesta HTTP
Piace
url = "http://192.168.1.1/api/getsomedata;
request = New HTTP Request(
URL( url ),
Method( "Post" ),
Form(
Fields([[
"maxLimit" => "100"
]])
)
);
json = request << Send();
jsl_json = Parse JSON( json );
L'URL richiede l'autenticazione di Windows (Ldap, NTLM).
Qualcuno conosce un modo per fornire le credenziali di Windows [nome utente, password] per accedere a quella risorsa tramite il metodo di richiesta HTTP?
Le domande correlate sono discusse ad esempio qui:
Richiesta http con autenticazione tramite identità Windows
Iniziare con REST in JMP
Importazione di dati di servizi Web: la nuova richiesta HTTP in JMP® 14 (US 2018 231)
grazie diz
Accesso ai datiRi: Come connettersi all'API con l'autenticazione di Windows/NTLM/LDAP?Grazie!
Ri: Come connettersi all'API con l'autenticazione di Windows/NTLM/LDAP?Ciao Bryan,
grazie per l'aggiornamento! Questa soluzione funziona ed è la vera soluzione! L'ho contrassegnato come soluzione.
meglio, diz
Ri: Come connettersi all'API con l'autenticazione di Windows/NTLM/LDAP?Basato su modulo è un'opzione.
Di base è un altro.
In poche parole (esempi da seguire), basato su moduli invia coppie chiave/valore al tuo servizio web in modo molto simile all'accesso con un modulo di una pagina web.
L'autenticazione di base si trova nell'intestazione (opzione Richiesta HTTP << Intestazioni), dove si trova l'autenticazione
nomeutente:password (codificata Base 64). Puoi anche usare:
richiesta << Nome utente("il mio nome utente");
richiesta << Password("la mia password");
invece di impostare le informazioni dell'intestazione direttamente per Basic.
Vorresti che entrambi, se possibile, fossero su https.
In genere, il tuo servizio web imposta un cookie per gestire le richieste successive.
Se utilizzi Basic, non sarebbe necessario purché imposti le informazioni sull'intestazione con ciascuna richiesta.
Se scegli l'opzione Passport per il servizio web, Passport funge da mediatore, può digerire moduli e Basic (e altri) ed eseguire l'autorizzazione back-end desiderata.
La maggior parte dei servizi Web, come Office 365, Google, Spotify e JMP Live, utilizzano OAuth2 (non basato su moduli o Basic), ma ciò è dovuto alla visibilità esterna dei siti (che aggiunge complessità). Se si tratta di un servizio interno dietro il firewall, ecc., l'utilizzo di base o basato su moduli https è l'opzione più semplice, secondo me.
Ri: Come connettersi all'API con l'autenticazione di Windows/NTLM/LDAP?Ciao, grazie per il suggerimento! Bene, questa opzione potrebbe funzionare, ma non è quello che stavo cercando originariamente. Ad ogni modo, poiché sono state fornite alcune soluzioni alternative, contrassegnerò questa discussione come risolta! Grazie Diz
Ri: Come connettersi all'API con l'autenticazione di Windows/NTLM/LDAP?Oauth2 sarebbe un'opzione? JMP 15 lo contiene nell'indice degli script.
Names Default To Here( 1 );
/*
https://docs.microsoft.com/en-us/azure/active-directory/develop/v2-oauth2-auth-code-flow
*/
/*
Note: the "code" parameter is set automatically after the redirect occurs
*/
auth_url = "https://login.microsoftonline.com/common/oauth2/v2.0/authorize";
token_url = "https://login.microsoftonline.com/common/oauth2/v2.0/token";
redirect_url = "http://localhost/myapp/";
client_id = "6731de76-14a6-49ae-97bc-6eba6914391e";
client_secret = "JqQX2PNo9bpM0uEihUPzyrh";
scope = "openid offline_access https://graph.microsoft.com/user.read";
auth_fields = [=> ];
token_fields = [=> ];
oauth2 = New OAuth2();
oauth2 << Grant Type( "Authorization Code" );
oauth2 << Auth URL( auth_url );
oauth2 << Token URL( token_url );
oauth2 << Redirect URL( redirect_url );
auth_fields["scope"] = scope;
auth_fields["client_id"] = client_id;
token_fields["client_secret"] = client_secret;
oauth2 << Auth Fields( auth_fields );
oauth2 << Token Fields( token_fields );
auth_header = oauth2 << Get Auth Header();
request = New HTTP Request(
URL( "https://graph.microsoft.com/v1.0/me" ),
Headers( {auth_header} ),
Method( "GET" )
);
data = request << Send;
Ri: Come connettersi all'API con l'autenticazione di Windows/NTLM/LDAP?Ciao Bryan, grazie per queste informazioni, è buono a sapersi!
Esiste un esempio o uno snipplet di codice nella documentazione JSL su come utilizzare l'autenticazione http di base basata su modulo con jmp? Questo mi piacerebbe provarlo, prima di cambiare qualcosa nel software del server.
grazie ancora diz
Ri: Come connettersi all'API con l'autenticazione di Windows/NTLM/LDAP?La richiesta HTTP non esegue l'autenticazione direttamente con NTLM/LDAP.
Ti consigliamo di utilizzare qualcosa come Passport http://www.passportjs.org/
nel tuo servizio web, quindi utilizza l'autenticazione basata su moduli o l'autenticazione di base su https.
-Bryan