我們目前擁有安裝了修補程序2彙總的ADFS 2.0,並且可以使用SAML身份驗證作爲多個外部信任方的身份提供者正常工作。本週,我們嘗試添加新的依賴方,但是,當客戶端提交來自新方的身份驗證請求時,ADFS只會返回帶有引用號的錯誤頁面,並且不會提示客戶端輸入憑據。ADFS 2.0未處理SAML AuthnRequest中的'Extension'標記 - 拋出異常MSIS7015
我檢查了參考號的服務器ADFS 2.0事件日誌,但它不存在(搜索相關性ID列)。我啓用了ADFS跟蹤日誌,重新執行身份驗證嘗試,並提出了這樣的信息:
Failed to process the Web request because the request is not valid. Cannot get protocol message from HTTP query. The following errors occurred when trying to parse incoming HTTP request:
Microsoft.IdentityServer.Protocols.Saml.HttpSamlMessageException: MSIS7015: This request does not contain the expected protocol message or incorrect protocol parameters were found according to the HTTP SAML protocol bindings.
at Microsoft.IdentityServer.Web.HttpSamlMessageFactory.CreateMessage(HttpContext httpContext)
at Microsoft.IdentityServer.Web.FederationPassiveContext.EnsureCurrent(HttpContext context)
由於消息表示該請求沒有得到很好的形成,我繼續跑通過xmlsectool請求並驗證它對SAML協議XSD(http://docs.oasis-open.org/security/saml/v2.0/saml-schema-protocol-2.0.xsd),它回來了乾淨:
C:\Users\ebennett\Desktop\xmlsectool-1.2.0>xmlsectool.bat --validateSchema --inFile metaauth_kld_request.xml --schemaDirectory . --verbose
INFO XmlSecTool - Reading XML document from file 'metaauth_kld_request.xml'
DEBUG XmlSecTool - Building DOM parser
DEBUG XmlSecTool - Parsing XML input stream
INFO XmlSecTool - XML document parsed and is well-formed.
DEBUG XmlSecTool - Building W3 XML Schema from file/directory 'C:\Users\ebennett\Desktop\xmlsectool-1.2.0\.'
DEBUG XmlSecTool - Schema validating XML document
INFO XmlSecTool - XML document is schema valid
所以,我在想,ADFS不打完全符合SAML規範。爲了驗證,我手動檢查了提交的AuthnRequest,並發現我們的供應商正在使用'Extensions'元素來嵌入他們的自定義屬性(根據SAML規範,這是有效的)(注意:「下面的ns33」正確的namspaces「甕:綠洲:名稱:TC:SAML:2.0:協議」的請求的其他地方)
<ns33:Extensions>
<vendor_ns:fedId xmlns:vendor_ns="urn:vendor.name.here" name="fedId" value="http://idmfederation.vendorname.org"/>
</ns33:Extensions>
如果我從AuthnRequest刪除以前的元素,並將其重新提交給ADFS,一切都順順當當。事實上,我可以離開'Extensions'容器並簡單地編輯供應商命名空間元素,並且ADFS成功。
現在,我想我有3個問題:
- 爲什麼參考號碼沒有記錄到日誌ADFS?這真的會幫助我的早期調試
- ADFS的SAML處理程序無法處理在Extensions元素中定義的自定義元素是否是已知問題,如果有,是否有方法添加支持(或至少在處理時不會崩潰它)?我的供應商提供了更改生成的SAML AuthnRequest來忽略該標籤,但表示它可能需要一些時間 - 我們都知道這意味着什麼...
- 有沒有人認爲安裝ADFS修補程序彙總3將解決這種情況?我沒有看到文檔中的任何內容表明肯定。
感謝您的反饋。
re:#2 - ADFS是符合SAML 2.0 IDP Lite和SP Lite的。但是,我期望ADFS不會處理自定義擴展,無論版本如何。基本上,僅僅因爲在規範中允許某種擴展,並不意味着每個廠商都必須支持它才能符合規範。 – Ian
啊,我之前並沒有意識到「精簡版」的操作模式。感謝您提供的信息 - 我認爲這會給我一個關注我調查的方向。而且,是的,我幾乎沒有希望ADFS能夠對供應商擴展做任何有用的事情 - 但是我曾預料在給出這些額外信息時它不會崩潰。畢竟,ADFS確實接受擴展容器作爲AuthnRequest的一部分而不會炸燬......爲什麼不優雅地忽略容器的內容?再次感謝您的輸入。 – ebennett00