对需要NTLM Auth IIB的服务执行SOAP请求

时间:2017-07-02 22:06:29

标签: soap ntlm ibm-integration-bus

我正在开发一个操作,我必须对SQL报告服务执行SOAP请求,我已经获得了WSDL来调用soap req并且我构建了所需的Outputroot,但是当我使用以下内容调用服务时授权参数:

    SET OutputRoot.Properties.IdentitySourceType        = 'usernameAndPassword';
    SET OutputRoot.Properties.IdentitySourceToken       = 'User';
    SET OutputRoot.Properties.IdentitySourcePassword    = 'Password';
    SET OutputRoot.Properties.IdentitySourceIssuedBy    = 'Domain';

我从跟踪

中收到以下消息

2017-07-01 20:45:18.789668 19826 UserTrace BIP3719I:节点'SubflowSUB.SOAP请求操作'通过传输'HTTP'('gg20154')发送SOAP请求,用于'request-response'类型的操作'Operation' 。有关此请求的成功或失败消息以及任何特定于传输的消息,请参阅后续消息。无需执行任何操作。

2017-07-01 20:45:18.792716 19826 UserTrace BIP3633I:节点'SubflowSUB.SOAP请求操作'将HTTP数据发送到主机'gg20154'(端口80)的URL'/ReportServer/ReportExec2005.asmx'。代理使用URL'/ReportServer/ReportExec2005.asmx'通过HTTP将数据发送到主机'gg20154'(端口80)的远程服务器。有关此请求的成功或失败消息,请参阅后续消息。无需任何操作。

2017-07-01 20:45:18.794458 19826 UserTrace BIP3634I:节点'SubflowSUB.SOAP请求操作'从主机'gg20154'接收到HTTP数据,状态代码为401.代理通过HTTP从远程服务器接收数据在主机'gg20154'上,HTTP状态代码为401.以2开头的状态代码表示成功;其他人暗示客户端或服务器中的错误。无需任何操作。

我正在使用正确的凭据,因为我已经看到在直接调用服务时如何加载soapui但是当它被IIB调用时它会抛出401是否有人遇到过这种问题?以及如何解决?。

先谢谢你们。

2 个答案:

答案 0 :(得分:0)

对于具有基本身份验证的凭据,您应创建具有基本默认值的安全配置文件,并使用 mqsisetdbparms 命令将用户和密码分配给此配置文件。在BAR生成的SOAP请求流中,您必须分配创建的安全配置文件:

mqsisetdbparms $BRKCORP -n NAME_CRED -u <user> -p <password>
mqsicreateconfigurableservice $BRKCORP -c SecurityProfiles -o SEG_NAME_CRED -n "propagation,idToPropagateToTransport,transportPropagationConfig" -v "TRUE,STATIC ID,NAME_CRED"

答案 1 :(得分:0)

这应该适用于 SOAP 和 Rest 服务:

DECLARE _AUTH CHAR 'Basic ' || BASIC64ENCODE(CAST('<username>' || ':' || '<password>' AS BLOB CCSID InputRoot.Properties.CodedCharSetId));

SET OutputRoot.HTTPRequestHeader."Authentication" = _AUTH;