2015-05-29 21 views
0

我們目前擁有安裝了修補程序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個問題:

  1. 爲什麼參考號碼沒有記錄到日誌ADFS?這真的會幫助我的早期調試
  2. ADFS的SAML處理程序無法處理在Extensions元素中定義的自定義元素是否是已知問題,如果有,是否有方法添加支持(或至少在處理時不會崩潰它)?我的供應商提供了更改生成的SAML AuthnRequest來忽略該標籤,但表示它可能需要一些時間 - 我們都知道這意味着什麼...
  3. 有沒有人認爲安裝ADFS修補程序彙總3將解決這種情況?我沒有看到文檔中的任何內容表明肯定。

感謝您的反饋。

+0

re:#2 - ADFS是符合SAML 2.0 IDP Lite和SP Lite的。但是,我期望ADFS不會處理自定義擴展,無論版本如何。基本上,僅僅因爲在規範中允許某種擴展,並不意味着每個廠商都必須支持它才能符合規範。 – Ian

+0

啊,我之前並沒有意識到「精簡版」的操作模式。感謝您提供的信息 - 我認爲這會給我一個關注我調查的方向。而且,是的,我幾乎沒有希望ADFS能夠對供應商擴展做任何有用的事情 - 但是我曾預料在給出這些額外信息時它不會崩潰。畢竟,ADFS確實接受擴展容器作爲AuthnRequest的一部分而不會炸燬......爲什麼不優雅地忽略容器的內容?再次感謝您的輸入。 – ebennett00

回答

1

當面對MSIS7015 ADFS錯誤時,最好的啓動地點是啓用ADFS跟蹤。以管理員身份登錄到ADFS服務器並運行以下命令。如果你有一個非常繁忙的ADFS服務器,當服務器不是很忙的時候可能是明智的做法。

C:\Windows\System32\> wevtutil sl 「AD FS Tracing/Debug」 /L:5 
C:\Windows\System32\> eventvwr.msc 

在事件查看器中選擇「應用程序和服務日誌」,單擊鼠標右鍵,選擇「查看 - 顯示分析和調試日誌」 轉到AD FS跟蹤 - 調試,單擊鼠標右鍵,選擇「啓用日誌」開始跟蹤調試。

處理您的ADFS登錄/註銷步驟,並在完成後轉到事件查看器mmc找到子樹AD FS跟蹤 - 調試,右鍵單擊並選擇「禁用日誌」以停止跟蹤調試。

查找EventID 49 - 傳入的AuthRequest - 並且驗證值未與CAP值一起發送。例如,在我的情況,這是我收到以下值:IsPassive = 「假」,ForceAuthn = 「錯誤

在我的情況下,爲解決這一問題,所有我需要做的是創建傳入的聲明轉換規則 - 用於不同的端點。

Edit Claim Rule GUI

Claim Rule Editor

一旦通行證轉化爲小寫真假,認證開始工作。

相關問題