如何使用 Windows 身份驗證/NTLM/LDAP 連接到 API?jmp的用戶您好,
我嘗試使用 HTTP 請求方法連接到 JMP/JSL (JMP14) 中的我們的內部服務/api
喜歡
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 );
URL 需要 Windows 身份驗證(Ldap、NTLM)。
有人知道如何提供[用戶名,密碼] Windows 憑據以通過 HTTP 請求方法訪問該資源嗎?
相關問題在這裡討論:
使用 Windows 身份驗證的 http 請求
JMP 中的 REST 入門
導入 Web 服務數據:JMP® 14 中的新 HTTP 請求 (US 2018 231)
謝謝迪茲
數據存取回复:如何使用 Windows 身份驗證/NTLM/LDAP 連接到 API?謝謝!
回复:如何使用 Windows 身份驗證/NTLM/LDAP 連接到 API?嗨布萊恩,
感謝更新! 這個解決方案有效並且是真正的解決方案! 我將此標記為解決方案。
最好的,迪茲
回复:如何使用 Windows 身份驗證/NTLM/LDAP 連接到 API?基於表單是一種選擇。
基本的是另一個。
簡而言之(下面的示例),基於表單將鍵/值對發送到您的 Web 服務,就像使用網頁表單登錄一樣。
基本身份驗證位於標頭中(HTTP 請求 << Headers 選項),其中身份驗證為
用戶名:密碼(Base 64 編碼)。 您還可以使用:
請求 << 用戶名("我的用戶名");
請求 << 密碼("我的密碼");
而不是直接為Basic設置頭信息。
如果可能的話,您希望兩者都通過 https 進行。
通常,您的 Web 服務會設置一個 cookie 來管理後續請求。
如果使用Basic,則不需要,只要為每個請求設置標頭信息即可。
如果您選擇 Web 服務的 Passport 選項,Passport 將充當中介者,它可以消化表單和 Basic(以及其他)並執行您想要的後端授權。
大多數網絡服務(例如 Office 365、Google、Spotify、JMP Live)都使用 OAuth2(不是基於表單或基本的),但這是由於網站的外部可見性(這增加了複雜性)。 在我看來,如果它位於防火牆等內部,那麼使用 https 進行基本或基於表單的操作是最簡單的選擇。
回复:如何使用 Windows 身份驗證/NTLM/LDAP 連接到 API?你好,謝謝你的建議! 很好,這個選項可以工作,但這不是我最初想要的。 無論如何,由於給出了一些解決方法,我將將此討論標記為已解決! 謝謝迪茲
回复:如何使用 Windows 身份驗證/NTLM/LDAP 連接到 API?Oauth2 是一個選擇嗎? JMP 15 的腳本索引中有此內容。
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;
回复:如何使用 Windows 身份驗證/NTLM/LDAP 連接到 API?嗨,布萊恩,謝謝您提供的信息,很高興知道這一點!
JSL 文檔中是否有關於如何通過 jmp 使用基於表單的 http 基本身份驗證的示例或代碼片段? 在更改服務器軟件中的某些內容之前,我想嘗試一下。
再次感謝迪茲
回复:如何使用 Windows 身份驗證/NTLM/LDAP 連接到 API?HTTP 請求不直接通過 NTLM/LDAP 進行身份驗證。
您想要使用諸如 Passport 之類的東西http://www.passportjs.org/
在您的 Web 服務中,然後使用基於表單的身份驗證或基於 https 的基本身份驗證。
-布萊恩