[IIB SOAP用户密码在提供者端进行身份验证

问题描述 投票:0回答:1

我正在跟踪SOAP Web服务使用者的链接https://www.ibm.com/developerworks/websphere/library/techarticles/1505_kumar/1505_kumar.html。我正在申请SOAP Web服务提供者的相同方法。我想在esql中访问用户名和密码以验证使用者和提供者。有什么方法可以从ESQL中的SecurityProfiles可配置服务访问提供者的用户名和密码,以便可以使用使用者凭证进行验证。用户名和密码是计划文本。

我已经完成了以下操作1.制定的政策2.创建的绑定3.创建的用户ID和安全配置文件

mqsisetdbparms SBBROK -n SecurityID -u sbuser -p sb.123456mqsicreateconfigurableservice SBBROK -c安全配置文件-oWSSecurityProfile -n“传播,idToPropagateToTransport,transportPropagationConfig” -v“ TRUE,STATIC ID,SecurityID”

  1. SOAPInput节点上的已配置Bar文件和集(策略,绑定和安全配置文件)。
  2. 部署我的流程

[此后,我假设在这些提供者策略上具有约束力,个人资料。提供者可以验证消费者的用户名和密码。

我正在使用IIB版本10.0.0.15。

web-services authentication soap messagebroker ibm-integration-bus
1个回答
1
投票

我不确定我是否完全理解这个问题。

我只能告诉您以下内容:由调用您的服务的人提供的凭据将存储在此位置:紧随输入节点之后的Properties / IdentitySourcePassword和Properties / IdentitySourceToken。

如果未设置为静态,则您正在执行的SOAP请求也将在此位置使用凭据。否则,它将在mqsisetdbparms命令中使用定义的用户密码。

因此您可以像这样访问ESQL代码中的输入凭据:

SET callerUser=InputRoot.Properties.IdentitySourceToken;
SET callerPassword=InputRoot.Properties.IdentitySourcePassword;

对于通过mqsisetdbparms存储的凭据,我不知道有什么访问方法,老实说,我看不出要点。

一种解决方案,如果您确实需要此解决方案,那就是通过动态的方式更改您的静态用户名/密码,然后在类似这些位置的ESQL中直接设置它:

SET myUser = 'Username'
SET myPassword = 'Password123'
SET callerUser=InputRoot.Properties.IdentitySourceToken;
SET callerPassword=InputRoot.Properties.IdentitySourcePassword;
##The comparison you want to do here
SET OutputRoot.Properties.IdentitySourcePassword = myPassword 
SET OutputRoot.Properties.IdentitySourceToken= myUser 

当然,对用户/密码进行硬编码不是正确的解决方案,它只是一个示例,但是您可以轻松地将其存储在数据库中,并从ESQL中进行检索

© www.soinside.com 2019 - 2024. All rights reserved.