簡體   English   中英

來自 CreateChannelWithIssuedToken 的 WCF 通道仍在發送“requestsecuritytoken”請求

[英]WCF channel from CreateChannelWithIssuedToken still sending 'requestsecuritytoken' request

使用 .Net 4.5 並使用 WIF 身份類生成 SAML2 令牌並嘗試將其添加到soap 正文請求中,但它被忽略並且生成的soap 請求實際上具有“requestsecuritytoken”soap 請求,該請求將發送到服務器。 我沒有任何STS。

此處的參考代碼“ 在客戶端請求中SAML 令牌后需要簽名”似乎有效。

我在 app.config 中的自定義綁定是

        <customBinding>
          <binding name="AccountDetailsServiceSoap11" >
            <textMessageEncoding messageVersion="Soap11WSAddressing10"/>
            <security includeTimestamp="true">
            </security>
            <httpTransport></httpTransport>
          </binding>
   </customBinding>

生成的肥皂信封是

    <s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" xmlns:a="http://www.w3.org/2005/08/addressing">
<s:Header>
<a:Action s:mustUnderstand="1">http://schemas.xmlsoap.org/ws/2005/02/trust/RST/Issue</a:Action><a:MessageID>urn:uuid:b7ff68ac-df62-4051-a68a-7382b0ec4995</a:MessageID><a:ReplyTo><a:Address>http://www.w3.org/2005/08/addressing/anonymous</a:Address></a:ReplyTo><a:To s:mustUnderstand="1">http://localhost:8888/spring-webservices-sample/endpoints</a:To></s:Header><s:Body><t:RequestSecurityToken Context="uuid-f4007218-af5c-4f84-b800-0e47f102d3b5-1" xmlns:t="http://schemas.xmlsoap.org/ws/2005/02/trust"><t:TokenType>http://schemas.xmlsoap.org/ws/2005/02/sc/sct</t:TokenType><t:RequestType>http://schemas.xmlsoap.org/ws/2005/02/trust/Issue</t:RequestType><t:KeySize>256</t:KeySize><t:BinaryExchange ValueType="http://schemas.xmlsoap.org/ws/2005/02/trust/spnego" EncodingType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0#Base64Binary">YHoGBisGAQUFAqBwMG6gMDAuBgorBgEEAYI3AgIKBgkqhkiC9xIBAgIGCSqGSIb3EgECAgYKKwYBBAGCNwICHqI6BDhOVExNU1NQAAEAAAC3shjiCQAJAC8AAAAHAAcAKAAAAAYBsR0AAAAPQUEzNzMwOUNJTkNPTVNZUw==</t:BinaryExchange></t:RequestSecurityToken></s:Body></s:Envelope>

我想使用來自 .net 客戶端的 Java 中的 SAML 測試安全的 Web 服務。 我在 Visual Studio 2015 中獲得了從 WSDL 生成的服務客戶端,然后從類中獲得了 SAML 斷言,現在嘗試將該令牌與soap請求一起傳遞給java服務。

可以請一些人分享我遺漏或做錯的事情,我是 .net/WCF/WIF 世界的新手嗎?

謝謝

在做了更多的研究之后,發現 WCF 基礎結構在 WCF 客戶端具有“自定義綁定”時首先在后台首先生成一個 RST(requestsecuritytoken) 請求,並且還沒有發現我們是否可以改變該行為。 因此,改為使用帶有簽名選項的“basicHTTPBinding”(客戶端界面上的保護級別設置為簽名),現在正在對soap主體進行簽名並放置時間戳。
現在對於 SAML2 令牌插入使用攔截器,並在從 WIF 類生成它后添加它,並發送具有 SAML 斷言簽名、時間戳和soap 正文簽名的最終soap 請求。 請求在 Spring WS 端處理,安全操作和業務邏輯被調用。 這僅用於開發和測試。 我想對於生產我們仍然需要有一個 STS。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM