gpt4 book ai didi

php - 使用 Navision 用户(启用 SSL)身份验证通过 PHP 访问 Web 服务

转载 作者:太空宇宙 更新时间:2023-11-03 14:48:06 24 4
gpt4 key购买 nike

我需要访问使用 Navision User + SSL 的 Navision Web 服务。我使用的连接器基于 PHP。

我能够连接到简单的 http 访问并使用 Window 的用户。这是帮助我实现此目标的教程 Navision Web Service PHP弗莱迪写的。

我仍在使用它,但尝试在 curl/请求中添加证书。研究并阅读了很多文章,但我仍然无法实现。

我现在可以使用上面共享的基本 php 连接器(链接)访问它,但是在检索数据时我收到以下详细信息:

... successfully set certificate verify locations:
* CAfile: /Path/Navision.pem
* SSL connection using TLSv1.0 / AES256-SHA
* Server certificate:
...
* SSL certificate verify result: unable to get local issuer certificate (20), continuing anyway.
* Server auth using NTLM with user 'user'
POST Navision Page URL Name HTTP/1.1
Authorization: NTLM TlRMTVNTUAABAAAABoIIAAAAAAAAAAAAAAAAAAAAAAA=
...
Method: POST
Connection: Keep-Alive
User-Agent: PHP-SOAP-CURL
Content-Type: text/xml; charset=utf-8
SOAPAction: "urn:microsoft-dynamics-schemas/page/pda_item_list:ReadMultiple"
...
< HTTP/1.1 401 Unauthorized ...

我通过使用 makecert.exe 使用证书。我有这些文件 2 个 .cer、一个 pvk 和一个 .crl.. 我们使用其中一个 .cer 文件获取指纹将其应用于 navision 服务实例。哪个文件是 php curl 连接器使用的正确文件。

这是我的请求 php 代码:

curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $request);
curl_setopt($ch, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_NTLM);
curl_setopt($ch, CURLOPT_USERPWD, USERPWD);
curl_setopt($ch, CURLOPT_VERBOSE, true);

curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);

curl_setopt($ch, CURLOPT_CAINFO, __DIR__ . '/Navision.pem');

如果我能够通过使用 Navision 用户和 SSL 访问它来使用使用 PHP 连接器的 Navision Web 服务,那么任何相关的链接将不胜感激。

更新

我现在可以使用有效证书并可以正常通过了。它现在仍然不起作用,并返回与上面相同的错误。未经授权的 401。

很可能是因为我的 Navision 设置,或者我只是以错误的方式传递了凭据?我还在研究和玩,所以目前我仍然无法提取数据。

最佳答案

你有两个选择:

  • 具有使用用户名身份验证的第二层服务。这将使 PHP 能够使用 Basic Auth。在这种情况下你需要一个证书

  • 第二个选项是使用相同的服务层,但生成一个 Web 服务 key 以供 PHP 使用。您可以使用相同的用户名使用基本身份验证,但使用 Web 服务 key 作为密码

PHP 不喜欢 NTLM 身份验证...

干杯

关于php - 使用 Navision 用户(启用 SSL)身份验证通过 PHP 访问 Web 服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37067218/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com