OTRS 通用接口剩余认证

OTRS generic interface rest authentication

我正在尝试使用 OTRS 通用接口。其余服务由导入功能创建。我在这里 Consuming OTRS TicketConnector from .NET apps

找到了导入所需的文件

我的问题是当我尝试使用例如 curl 命令使用界面时

curl http://<user>:<password>@<server-ip>:<port>/otrs/nph-genericinterface.pl/Webservice/GenericTicketConnectorREST/Ticket/<Ticket-id> -X GET

命令的结果是

{"Error":{"ErrorCode":"TicketGet.AuthFail","ErrorMessage":"TicketGet: Authorization failing!"}}

我尝试了所有对我有意义的 user/password 组合。我尝试了 otrs 管理员帐户、代理帐户、客户帐户、服务器的根帐户,一切!我在文档中找不到说明需要哪种帐户类型的信息。

以下是网络服务调试器打印出来的一些信息

通信序列开始

$VAR1 = {
  'DOCUMENT_ROOT' => '/srv/www/htdocs',
  'GATEWAY_INTERFACE' => 'CGI/1.1',
  'HTTP_ACCEPT' => '*/*',
  'HTTP_HOST' => '<server-name>',
  'HTTP_USER_AGENT' => 'curl/7.39.0',
  'MOD_PERL' => 'mod_perl/2.0.4',
  'MOD_PERL_API_VERSION' => '2',
  'PATH' => '/sbin:/usr/sbin:/usr/local/sbin:/root/bin:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/X11R6/bin:/usr/games:/usr/lib/mit/bin:/usr/lib/mit/sbin',
  'PATH_INFO' => '/Webservice/GenericTicketConnectorREST/Ticket/<ticket-id>',
  'PATH_TRANSLATED' => '/srv/www/htdocs/Webservice/GenericTicketConnectorREST/Ticket/<ticket-id>',
  'QUERY_STRING' => '',
  'REMOTE_ADDR' => '<server-ip>',
  'REMOTE_PORT' => '56065',
  'REQUEST_METHOD' => 'GET',
  'REQUEST_URI' => '/otrs/nph-genericinterface.pl/Webservice/GenericTicketConnectorREST/Ticket/<ticket-id>',
  'SCRIPT_FILENAME' => '/opt/otrs/bin/cgi-bin/nph-genericinterface.pl',
  'SCRIPT_NAME' => '/otrs/nph-genericinterface.pl',
  'SERVER_ADDR' => '<server-ip>',
  'SERVER_ADMIN' => '<admin-account>',
  'SERVER_NAME' => '<server-name>',
  'SERVER_PORT' => '80',
  'SERVER_PROTOCOL' => 'HTTP/1.1',
  'SERVER_SIGNATURE' => '<address>Apache/2.2.12 (Linux/SUSE) Server at <server-name> Port 80</address>
',
  'SERVER_SOFTWARE' => 'Apache/2.2.12 (Linux/SUSE)'
};

检测到 TicketGet 操作

No data provided

映射前传入数据

$VAR1 = {
  'RequestMethod' => 'GET',
  'TicketID' => '<ticket-id>'
};

TicketGet.AuthFail

TicketGet: Authorization failing!

映射前的传出数据

$VAR1 = {
  'Error' => {
    'ErrorCode' => 'TicketGet.AuthFail',
    'ErrorMessage' => 'TicketGet: Authorization failing!'
  }
};

长话短说:otrs 期望使用什么类型的身份验证或用户类型来访问通用接口?

发现我的错误。我将登录凭据传递给服务的方式是错误的。

在我的例子中,用户是代理用户。

这是我的服务的有效 curl 命令:

curl http://<server-ip>:<port>/otrs/nph-genericinterface.pl/Webservice/GenericTicketConnectorREST/Ticket/<ticket-id>?UserLogin=<username>\&Password=<password> -X GET