2015-11-09 50 views
2

要設置一點上下文,我們使用Azure AD SAML2 support使用Office365憑據登錄到我們的站點。Azure AD中的SAML2令牌簽名

讀metadatas文檔,我有2個問題:

This document狀態:

阿由天青AD出版聯合元數據文件可以具有多個簽名密鑰,例如當天青AD正準備更新爲簽字證書。當聯合元數據文檔包含多個證書時,驗證令牌的服務應支持文檔中的所有證書。

這是否意味着SAML2身份驗證令牌響應簽名必須針對所有列出的證書進行檢查,並且如果它們中的任何一個匹配,則認爲該簽名有效?

This document狀態:

本主題討論,你需要知道有關在Azure的AD用於簽署安全令牌的公共密鑰是什麼。重要的是要注意,這些密鑰在6周的時間表上滾動。在緊急情況下,鑰匙可能會比6周更早更換。所有使用Azure AD的應用程序都應該能夠以編程方式處理密鑰翻轉過程。

這個6周更新計劃是否關注SAML2令牌簽名?如果是這樣,爲什麼元數據中列出的證書的有效期更長?

回答

1

沒有必要針對所有密鑰驗證簽名,但是如果您這樣做並且簽名有效,那麼它應該被認爲是有效的。

您可以使用ds:KeyInfo內部的ds:Signature來確定要確定使用的密鑰。

+0

好處是,雖然在驗證之前選擇合適的證書可能會有問題,因爲我們測試的C#SAML2庫不會將SAML2令牌解析步驟與簽名驗證步驟分開:/仍在嘗試查找低級別的C#SAML2依賴第三方庫爲SSO和SLO提供令牌(de)序列化和驗證,並生成元數據。 –

+0

這是一個很好的觀察結果,也是我們推遲發佈SAML庫的一個原因。簽名驗證的分離在JWT中是乾淨的,我們希望SAML的簽名驗證相同,但我們需要一些部分,例如EnvelopedSignatureReader等。它在我們的計劃中,但我們還沒有很難約會。 –

相關問題