2016-11-14 22 views
0

我不斷收到「AADSTS75005:請求不是有效的Saml2協議消息」。當我嘗試將AuthnRequest發送到Azure AD/idp時。將AuthnRequest更正爲Azure AD/idp

在壓縮之前,XML看起來像這樣,轉換爲base64string並對郵件進行url編碼。

<samlp:AuthnRequest xmlns="urn:oasis:names:tc:SAML:2.0:metadata" ID="ide13dd575-3f6c-4131-9b9d-e12c644cf18f" Version="2.0" IssueInstant="2016-11-14T14:28:27.5450323Z" xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol"><Issuer xmlns="urn:oasis:names:tc:SAML:2.0:assertion">{homepage url registered in azure app registrations}</Issuer></samlp:AuthnRequest> 

用戶被{從端點SAML-P登錄端點在天青應用}重定向到https://login.microsoftonline.com//SAML2?SAMLRequest = {編碼SAML請求除去}

相同的作品當我發送它的其他SAML2 IDP(使用SimpleSAMLphp)

web瀏覽器將被重定向到https://login.windows.net/ {端點ID}/SAML2?SAMLRequest = jZBLasMwFEW3YjRXbKny72EbAqVgaCkkbQedBEVWiKktuXrP%2faytgy6pW6hJhoXQ6YV7OPf%2bfH1XqMdhgvVMR7exr7NFij7GwWHN5uDAa%2bwRnB4tAhnYru9uQa4SGC3pTpNmUXtds77rrCjy9KB4LpXian%2bV8aJLUl6Wpdknytg0y1n0ZAP23tVsQSxNxNm2Dkk7 WqJEZFwILtSDlCBSkHIlZCbLtHhmZyU4uV4Wm4Inb%2fzAmurED%2f9ZoxFtoMWMNUeiCSGOx8%2fHTbu78WG3JW1e7t9sOAz%2bvYrP1KaK%2fx7X%2fAI%3D

+0

你是怎麼壓縮它的?您是手動構建此請求還是使用第三方庫來處理它?你能否提供編碼請求的樣本? – Steve

+0

你提到了一個主頁URL,但是這應該是應用程序ID URI。確保這是正確的,如果這是正確的,那麼您提交請求的方式可能有問題。 – juunas

+0

Steve:我使用DeflateStream(output,CompressionMode.Compress)來壓縮它。我手動構建請求,不使用任何庫。將用編碼後的請求更新問題。 Juumas:我嘗試過不同的URI。應用程序ID(這只是一個Guid),主頁URL(我猜這是認證響應的發佈地點)。我只是用查詢字符串參數發送的請求。 –

回答

0

我發現這個問題了這一點。我在新的Azure門戶中創建了該應用程序。這表明端點是https://login.windows.net/ {身份識別碼}/SAML2

我創造了老門戶的新應用程序,現在它顯示端點是https://login.microsoftonline.com/ {身份識別碼}/SAML2

如果我看的這兩個應用如果我在新門戶中執行相同操作,則會顯示https://login.windows.net/ {myid}/saml2這兩個選項都是在新門戶中創建的(一個在新門戶中,另一個在舊門戶中),它顯示https://login.microsoftonline.com/ {myid}/saml2。 APS。

因此,我的代碼沒有任何錯誤,但Azure AD門戶報告了新門戶中的無效端點。

enter image description here

0

正如@Steve上面已經提到的,這個問題似乎是與正在放氣的方式/編碼鑑權請求。假設您使用.NET(您提到了DeflateStream),請嘗試使用示例代碼https://stackoverflow.com/a/25155050/983244

我也清楚了命名空間聲明,以使您的AuthnRequest看起來像

<samlp:AuthnRequest xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol" 
        xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion" 
        ID="ide13dd575-3f6c-4131-9b9d-e12c644cf18f" 
        Version="2.0" 
        IssueInstant="2016-11-14T14:28:27.5450323Z"> 
    <saml:Issuer>{homepage url registered in azure app registrations}</saml:Issuer> 
</samlp:AuthnRequest> 
+0

如果我使用在線解碼器https://idp.ssocircle.com/sso/toolbox/samlDecode.jsp並在問題中使用示例,它解碼得很好,所以我不認爲它應該與解壓縮/編碼請求相關...以及它的縮小/編碼方式與您提及的鏈接以及我之前提到的相同。相同的代碼適用於其他SAML2身份提供商。它可能是與查詢字符串參數的名稱的東西? ?SAMLRequest = xxx我找不到任何有關參數名稱的信息。如果更改參數名稱,我會得到相同的錯誤消息。 –