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

对需要NTLM Auth IIB的服务执行SOAP请求,soap,ntlm,ibm-integration-bus,Soap,Ntlm,Ibm Integration Bus,我正在开发一个操作,在该操作中,我必须对SQL reporting服务执行SOAP请求,我已经获得了调用SOAP req的WSDL,并构建了所需的Outputroot,但当我使用以下授权参数调用服务时: SET OutputRoot.Properties.IdentitySourceType = 'usernameAndPassword'; SET OutputRoot.Properties.IdentitySourceToken = 'User';

我正在开发一个操作,在该操作中,我必须对SQL reporting服务执行SOAP请求,我已经获得了调用SOAP req的WSDL,并构建了所需的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”)为“请求响应”类型的操作“Operation”发送SOAP请求。有关此请求的成功或失败消息以及任何特定于传输的消息,请参阅后续消息。无需执行任何操作

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,有人遇到过这种问题吗?怎么解决呢


提前感谢各位。

对于具有基本身份验证的凭据,您应该使用基本默认值创建一个安全配置文件,并使用mqsisetdbparms命令将用户和密码分配给此配置文件。在生成工具栏的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"
mqsisetdbparms$BRKCORP-n NAME\u CRED-u-p
mqsicreateconfigurableservice$BRKCORP-c SecurityProfiles-o SEG_NAME_CRED-n“传播,idtopropagateTransport,传输传播配置”-v“TRUE,STATIC ID,NAME_CRED”

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

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

SET OutputRoot.HTTPRequestHeader."Authentication" = _AUTH;
声明_authchar'Basic'| | BASIC64ENCODE(强制转换为BLOB CCSID InputRoot.Properties.CodedCharSetId)(“| |:”);
设置OutputRoot.HTTPRequestHeader。“身份验证”=\u AUTH;