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 ID を使用した認証による http リクエスト
JMP での REST 入門
Web サービス データのインポート: JMP® 14 の新しい HTTP リクエスト (US 2018 231)
ありがとうディズ
データアクセスRe: Windows 認証 / NTLM / LDAP で API に接続するにはどうすればよいですか?ありがとう!
Re: Windows 認証 / NTLM / LDAP で API に接続するにはどうすればよいですか?こんにちは、ブライアンさん
更新していただきありがとうございます! この解決策は機能し、本当の解決策です。 これを解決策としてマークしました。
最高だよ、ディズ
Re: Windows 認証 / NTLM / LDAP で API に接続するにはどうすればよいですか?フォームベースもオプションの 1 つです。
基本は別です。
簡単に言うと (例は後述します)、フォーム ベースとは、Web ページ フォームでログインするのと同じように、キーと値のペアを Web サービスに送信することです。
基本認証はヘッダー (HTTP リクエスト << ヘッダー オプション) で見つかります。認証は次のとおりです。
ユーザー名:パスワード (Base 64 エンコード)。 次のものも使用できます。
request << ユーザー名("私のユーザー名");
request << Password("私のパスワード");
Basic にヘッダー情報を直接設定する代わりに。
可能であれば両方とも https を超えるようにする必要があります。
通常、Web サービスは後続のリクエストを管理するために Cookie を設定します。
Basic を使用する場合、各リクエストでヘッダー情報を設定する限り、これは必要ありません。
Web サービスの Passport オプションを選択すると、Passport はメディエーターとして機能し、フォームと Basic (およびその他) をダイジェストし、必要なバックエンド認証を実行できます。
Office 365、Google、Spotify、JMP Live などのほとんどの Web サービスは OAuth2 (フォームベースまたはベーシックではない) を使用しますが、これはサイトの外部からの可視性 (これにより複雑さが増します) が原因です。 ファイアウォールの内側などの社内の場合は、https を使用する基本またはフォームベースが最も簡単なオプションだと思います。
Re: Windows 認証 / NTLM / LDAP で API に接続するにはどうすればよいですか?こんにちは、その提案をありがとうございます! このオプションが機能するのは良いことですが、私が当初探していたものはそうではありませんでした。 とにかく、いくつかの回避策が示されているので、この議論は解決済みとしてマークします。 ありがとうディズ
Re: 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;
Re: Windows 認証 / NTLM / LDAP で API に接続するにはどうすればよいですか?こんにちは、ブライアン、情報ありがとうございます、これは知っておくと良いです!
jmp でフォームベースの http Basic 認証を使用する方法について、JSL ドキュメントにサンプルまたはコード スニプレットはありますか? サーバー ソフトウェアで何かを変更する前に、これを試してみたいと思います。
もう一度ありがとうディズ
Re: Windows 認証 / NTLM / LDAP で API に接続するにはどうすればよいですか?HTTP リクエストは NTLM/LDAP で直接認証されません。
パスポートのようなものを使用するとよいでしょうhttp://www.passportjs.org/
Web サービスでは、フォームベースの認証または https 経由の基本認証を使用します。
-ブライアン