gpt4 book ai didi

web-services - 使用WS-UsernameToken认证的SOAP请求示例

转载 作者:行者123 更新时间:2023-12-03 11:52:49 24 4
gpt4 key购买 nike

我正在尝试使用WS-UsernameToken规范对SOAP请求进行身份验证,但是目标设备始终拒绝访问。我的无效请求看起来像这样。 (我要哈希的密码是system。)

<?xml version="1.0" encoding="UTF-8"?>
<Envelope xmlns="http://www.w3.org/2003/05/soap-envelope">
<Header>
<Security xmlns="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">
<UsernameToken>
<Username>root</Username>
<Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordDigest">EVpXS/7yc/vDo+ZyIg+cc0fWdMA=</Password>
<Nonce>tKUH8ab3Rokm4t6IAlgcdg9yaEw=</Nonce>
<Created xmlns="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">2010-08-10T10:52:42Z</Created>
</UsernameToken>
</Security>
</Header>
<Body>
<SomeRequest xmlns="http://example.ns.com/foo/bar" />
</Body>
</Envelope>

我正在寻找的是类似的请求示例,但具有实际起作用的身份验证 token 。例如,如果您有使用这些 token 的gSOAP应用程序,并且可以生成一个请求并将结果发布到此处,我将不胜感激。

最佳答案

核心是为 namespace 定义前缀,并使用它们来强化每个标签-您正在混合3个 namespace ,并且通过尝试破解默认值而无法实现。确切地使用standard do c中使用的前缀也是很好的-以防万一对方有点草率。

最后但并非最不重要的一点是,最好尽可能使用默认类型的字段-因此对于密码,必须列出类型,因为Nonce已经是Base64了。

通过XML发送生成的 token 之前,请确保检查生成的 token 是否正确,并且不要忘记wsse:Password的内容是Base64(SHA-1(nonce + created + password))和wsu中的日期时间:创建的内容很容易将您弄乱。因此,一旦您修复了前缀和 namespace ,并验证了SHA-1在没有XML的情况下是否可以正常工作(假设您正在验证请求并进行SHA-1计算的服务器端),您还可以执行创建的真实操作,甚至没有Nonce。 Oh和Nonce可以使用不同的编码,因此,如果您真的想强制使用另一种编码,则必须进一步研究wsu命名空间。

<S11:Envelope xmlns:S11="..." xmlns:wsse="..." xmlns:wsu= "...">
<S11:Header>
...
<wsse:Security>
<wsse:UsernameToken>
<wsse:Username>NNK</wsse:Username>
<wsse:Password Type="...#PasswordDigest">weYI3nXd8LjMNVksCKFV8t3rgHh3Rw==</wsse:Password>
<wsse:Nonce>WScqanjCEAC4mQoBE07sAQ==</wsse:Nonce>
<wsu:Created>2003-07-16T01:24:32</wsu:Created>
</wsse:UsernameToken>
</wsse:Security>
...
</S11:Header>
...
</S11:Envelope>

关于web-services - 使用WS-UsernameToken认证的SOAP请求示例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3448498/

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